taliiq
App
Taliiq

Contacts

Org-wide contact book for widget visitors, outbound, and CRM sync

Contacts is your organization's shared contact book under Operate → Contacts. One person record can link widget conversations, outbound campaign callees, and future CRM sync — available on all subscription plans when billing is active.

What is a Contact?

A Contact represents a person in your organization:

FieldPurpose
Phone / email / external IDMatch keys — at least one is required when creating manually
Name & companyDisplay and search
Statuslead, customer, unqualified, or do not contact
NotesFree-form operator notes

Taliiq deduplicates on phone → email → external ID. Uploads and API writes merge into an existing row when a key matches; empty fields are never invented.

Dashboard workflow

Open Operate → Contacts to browse, search, and filter by status.

Click New Contact to add someone manually, or import via an Outbound campaign CSV (see below).

Open a row to edit profile fields or change status.

From an outbound campaign (draft or scheduled), use Add from Contacts to pull people from the book into the dial list.

Statuses

StatusTypical use
LeadNew or unqualified interest
CustomerActive or paying relationship
UnqualifiedNot a fit — kept for history
Do not contactOpt-out or compliance hold

Outbound and CSV import

When you upload a contact CSV on an outbound campaign:

  • Without Zero Data Retention: each row upserts into the Contact book and links the campaign callee to that Contact. A source event records outbound_upload.
  • With Zero Data Retention (ZDR): campaign rows import as before, but no new Contact writes occur. Existing book entries stay visible read-only.

Campaign detail shows a View contact link when a callee is linked to the book.

Zero Data Retention

When Zero Data Retention is enabled, Contact writes are blocked (create, update, delete, CSV upsert, inbound CRM sync). The hub stays available for read and search on existing records. Outbound dial from Contacts still works — session logs use existing ZDR scrub rules and do not write new Contact PII to Observe.

CRM sync (webhook destination)

Connect a Contact sync webhook under Manage → Integrations to push Contact changes to an external system and accept inbound upserts from your CRM or automation tool (Zapier-shaped).

Open Manage → Integrations and connect Contact sync webhook.

Optional: set a Push webhook URL (HTTPS). Taliiq POSTs a contact.upsert payload when a Contact is created or updated (skipped when ZDR blocks writes).

Copy the auto-generated Inbound webhook secret. Send CRM records to POST /api/contacts/sync/inbound/ with header Authorization: Bearer <secret>.

Include at least one of phone_e164, email, or external_id. Optional Idempotency-Key header prevents duplicate rows on retries.

Open Operate → Contacts, confirm the synced person appears with source CRM sync.

Inbound payload (example)

{
  "external_id": "crm-12345",
  "phone_e164": "+201001234567",
  "email": "name@example.com",
  "first_name": "Sara",
  "last_name": "Hassan",
  "company": "Acme",
  "status": "lead"
}

Under ZDR, inbound sync returns 403 — no new Contact rows are created.

Dial from Contacts

From a Contact detail page, use Call to place a one-off outbound call through a registered SIP trunk. Pick a voice-capable, active, non-draft agent (trunk default is prefilled when eligible).

Ensure the Contact has a phone number and is not marked Do not contact.

Open the Contact and click Call. Choose an outbound trunk and an eligible assistant.

The attempt appears in Contact history (pending, then Observe) and in Logs. Under ZDR, customer phone fields in Observe stay scrubbed.

Sources and history

Each Contact keeps durable source events (widget, collect form, CRM sync, outbound dial, and more). Interaction history (calls/chats) comes from Observe ClickHouse and follows org retention — it can expire even while the Contact row remains.

Collect Contact (agent tool)

Agents can capture details during a conversation with the Collect Contact built-in tool:

  • Chat — inline form in the widget or Agent Console; submit upserts a Contact
  • Voice — agent gathers the same fields by speech and confirms email/phone
  • Callback intent — when the visitor explicitly asks for a call, owners/admins get a Notification Center alert

Captured people appear here with source events (collect_form, widget_chat, or agent_console). Observe → Logs shows collection events with a link to the Contact detail page.

Zero Data Retention blocks Collect Contact creation and writes. Manual CSV import under ZDR still creates campaign callees only — see Outbound.

Setup and Agent Console test steps: Collect Contact.