Platform · Contacts

One contact record across calls, texts, and chat.

Assistable resolves every phone number, email, and web visitor to a single contact, so agents on every channel work from the same customer record. Import, tag, and act on lists at scale from one table.

Start free

Get started for free. Pay as you go. Or talk to sales

What it does

One identity across every channel

Inbound calls, texts, and web chats resolve to a single contact record. Resolved addresses are stored per contact, so the next message from the same sender is one indexed lookup. Phone lookups try multiple format candidates, so formatting differences do not split records.

  • Phone, email, and visitor ids map to one record
  • Resolved addresses stored for one-lookup matching
  • Voice and messaging share the same contact identity

CSV import with dedupe built in

Upload a CSV, review auto-mapped columns with a preview, pick a dedupe key, and run it. Phones are stored in E.164 with the same normalizer the dialer uses and matched on the last 10 digits, so +1 (555) 111-2222 and 5551112222 are one contact. Matched contacts are tagged, never mutated.

  • Headers auto-map across 40 recognized aliases
  • Dedupe by phone, email, or none
  • Matched contacts get tagged, never mutated
  • Up to 5,000 rows per file

Bulk actions verified server side

Select up to 1,000 contacts and tag, untag, set status, set DND, move to a folder, archive, unarchive, or delete in one call. The server verifies every id belongs to your account before acting and reports any it dropped. Deletes are soft archives, so nothing disappears silently.

  • 8 bulk actions on up to 1,000 contacts per call
  • Ownership checked per id; invalid ids reported
  • Delete archives instead of destroying

Tags that drive campaigns and agents

Tags are an account-level pool with unique names enforced. Filter by up to 25 tags, apply tags on import, and enroll campaigns from a filter on search, status, and tags. Active-tag rules pair a tag with an assistant on chosen channels, with priority and active-hour settings.

  • Campaign enrollment reuses the list's filter query
  • Apply up to 10 tags during import
  • Rules bind a tag to an assistant per channel

DND that outbound systems obey

Do-not-disturb is one flag on the contact. The outbound call API refuses to dial a DND contact, and the campaign engine skips them at dial time. If a contact opts out mid-campaign, the reconcile pass treats them as opted out and stops further attempts.

  • Outbound API blocks DND contacts before dialing
  • Campaign dialer skips DND at dial time
  • Mid-campaign opt-outs are honored on reconcile

Custom fields, folders, and the drawer

Define custom fields once at the account level with types, options, and ordering; they render on every contact in the edit drawer alongside identity, address, tags, and the DND switch. Folders and status tabs keep large lists workable, with live counts computed by grouped aggregates.

  • Field definitions set once, rendered on every contact
  • Folder and status counts stay live
  • Tags attach and detach instantly from the drawer

At scale

Built for the agent lifecycle.

01 · Deploy

Import your list in one pass: auto-mapped columns, dedupe by phone or email, tags and a folder applied on entry. Phones land in E.164 with dialer parity, so imported contacts are dialable immediately.

02 · Test

Contacts carry an environment column, so production and non-production records stay separated. Keep test contacts in their own folder or tag and inspect exactly what an agent will see in the drawer.

03 · Scale

Server-side pagination, per-account indexes, 500-row import batches, and bulk actions on 1,000 contacts per call. Counts come from grouped aggregate queries, never page scans.

04 · Observe

Every import records created, matched, and skipped counts, with the last 20 kept as history. Status tabs, per-folder counts, and DND and source filters show the shape of your list at a glance.

Under the hood

  • IDENTITY

    Phone, email, and web visitor ids resolve to one contact record across channels

  • IMPORT

    Up to 5,000 rows and 3 MB per CSV; 40 header aliases auto-map; dedupe by phone or email

  • PHONES

    Stored E.164 with the same normalizer the dialer uses; matched on last 10 digits

  • BULK

    8 server-side actions on up to 1,000 contacts per call; every id ownership-checked

  • DND

    One flag blocks the outbound call API and skips the contact in campaign dialing

  • FIELDS

    Account-level custom field definitions with types, options, and required flags

  • AUDIT

    Each import logs created, matched, and skipped counts; last 20 kept as history

FAQ

How does Assistable unify identity across channels?

Every inbound message resolves the sender to a contact: an indexed channel-identity lookup first, then phone, email, or web visitor fallbacks. The match is stored per contact, so the next message from that address is a single lookup. Client-supplied hints can prefill a new record but never match to an existing contact.

What are the import and bulk limits?

CSV imports accept up to 5,000 rows and 3 MB per file, with up to 10 tags applied on import. Bulk actions cover up to 1,000 contacts per call, and list pages return up to 100 contacts. Larger jobs run as multiple passes; imports insert in 500-row batches server side.

Will importing a CSV overwrite my existing contacts?

No. Rows that match an existing contact by your chosen dedupe key are never mutated; they only receive the tags you selected for the import. New rows are created, in-file duplicates drop first-occurrence-wins, and the result reports created, matched, and skipped counts.

What does the DND flag actually stop?

Outbound calls placed through the API are refused for DND contacts, and the campaign engine skips DND contacts at dial time. If someone opts out mid-campaign, the reconcile pass marks them opted out and stops further attempts.

What does this cost to try?

Signup is free pay-as-you-go. Contacts, tags, folders, custom fields, and imports are part of the platform; you pay for usage at $0.07 per minute of voice and $0.02 per message.

The end of one
conversation at a time.

Sign up today and get a free local number, $10 in calling credit, and your first assistant built for you. Or book a 30-minute walkthrough tailored to your stack.

Get started for free · Pay as you go · Voice from $0.07/min