Skip to content
Try Free →

The Contacts page

Last updated: · 4 min read

What a contact is

A contact record is created the first time a visitor's interaction carries an identity signal — an email address (captured by a skill, or passed via identify()) or a verified external_id from your own system. A fully anonymous visitor who never provides either doesn't get a contact record; their conversation exists, but isn't linked to a contact.

Once a contact exists, AskVault keeps deduplicating against it:

  1. Email match. Same email = same contact.
  2. External ID match. Same verified external_id (from identity verification) = same contact.

New display fields (name, phone, plan) fill in empty slots on the existing record, and custom attributes merge in (new keys win on conflict) rather than overwriting the whole profile.

What the Contacts page shows

A searchable list with:

  • Name and email.
  • Plan. From your own system, if you pass it.
  • Conversation count. Total linked conversations.
  • First seen / last seen. Timestamps.

Search matches name, email, or external_id. You can also filter by a saved segment (see below).

Contact detail view

Click any contact to see:

  • Profile. Name, email, phone, plan, and any custom attributes passed via identify() or the API.
  • Linked conversations. Every conversation tied to this contact, across every channel, most recent first — each row shows the channel, status, message count, and last-message time.

Editing a contact from this view lets you update name, phone, and plan.

Saved segments

A segment is a named, reusable filter over your contact list, evaluated live (not a static snapshot) — so a segment's membership is always current. A segment can combine:

  • Plan equals X.
  • Email contains X.
  • A custom attribute key/value.
  • Last seen within N days.
  • Minimum conversation count.

Useful for building a working list — e.g., "plan=enterprise, last seen within 30 days" — without re-typing the filter every time.

Custom attributes

Whatever you pass via identify() or the API lands in the contact's attribute set and merges across interactions (a later call adding a new key doesn't erase earlier ones). There's no type-validated schema for these today — they're stored as-is.

Privacy

AskVault stores only what a workspace's own integration passes in — email, name, phone, plan, and whatever custom attributes you choose to send. There's no third-party enrichment. For account- and workspace-level data deletion, see account deletion; there isn't a dedicated per-contact delete endpoint on this page today.

Planned features (on the roadmap)

Documented for accuracy — none of the following exist yet:

  • Contact-level tags, separate from conversation tags.
  • CRM sync status (synced/pending/error) shown per contact.
  • A manual merge action for contacts that didn't auto-deduplicate.
  • Bulk operations (bulk tag, bulk export, bulk CRM re-sync) from the contact list.
  • A dedicated contact-deletion endpoint for per-contact GDPR erasure requests.
  • CSV import of contacts.

Limits

  • Contacts per workspace. No hard cap.
  • List page size. Up to 200 contacts per request.
  • Linked conversations shown. Up to 100 most recent per contact.

Common pitfalls

Duplicate contacts for the same person. Neither interaction carried a matching email or external_id, so AskVault had nothing to link them on. There's no manual merge today — the duplicates stay separate.

Contact missing expected fields. Only what you actively pass via identify() or the API gets stored — AskVault doesn't infer or enrich fields on its own.

Anonymous visitor doesn't show up here. Expected — a contact record only exists once an email or verified external_id is captured.

FAQ

What's the difference between a contact and a lead?

A contact is the durable, cross-channel person record. A lead is captured sales intent tied to a conversation. They can refer to the same person without being the same record.

Can I import contacts from a CSV?

Not today. Contacts are created automatically as visitors identify themselves, or via the API.

Do anonymous visitors show as contacts?

No — a contact is only created once an email or a verified external_id is available. Until then, the conversation exists without a linked contact.

Can I bulk-edit or bulk-delete contacts?

Not from this page today.

Does AskVault store sensitive customer attributes?

Only what you pass. There's no enrichment from third-party sources — if you don't send a field, it isn't stored.

Was this page helpful?