Customer Profiles

Every conversation tells a story. Keep the whole story.

One record per person, built from every channel they have used, every order they have placed and everything your own product knows about them — open before you type the first word.

  • Builds itself
  • Custom attributes
  • Export or delete per contact
Team Inbox · All channels
18 openSLA 2 due
Mine 6Unassigned 4All
Sarah Chen1m
My order hasn't arrived yet…
WhatsApp
2
David Okafor6m
Is there a team plan?
Website
Alex Rivera12m
Do you restock the black one?
Instagram
1
Jane Whitfield40m
Invoice for March, please
Email
Marco Bianchi1h
Thanks, that solved it 🙏
Messenger
Sarah Chen
WhatsApp · +65 •••• 4417
Today
Hi, my order #10428 hasn't arrived yet. It's been 9 days.
09:12
Hi Sarah — I can see #10428 shipped on the 4th and is at the local depot. Latest tracking says delivery tomorrow.
⚡ AI · 09:12
Can I get it redirected to my office instead?
09:14
Internal note · Marco — carrier allows one redirect. Sarah is a repeat buyer, let's just do it.
Reply as Chatdrill Support…
The record

It builds itself while you work.

Nobody has time to maintain a customer database by hand, so Chatdrill does not ask you to. Every message, order, ticket and page view attaches itself to the right person as it happens.

NameEmailPhoneCompanyLocationLanguageTagsFirst seenLast seenPrevious conversationsOrdersTicketsInternal notesActivity timeline
See it inside the inbox

Emma Hart

emma@northwind.co · +44 •••• 4417 · English

Repeat customer

Record

CompanyNorthwind Supply
LocationLeeds, UK
First seen14 Jan 2026
Last seen8 minutes ago
Conversations11
Open tickets1
Enterprise trialShippingNewsletter

Custom attributes

PlanGrowth · annual
Seats24
Renewal1 Nov 2026
Lifetime orders17
Last order#10428 · £248
CSAT average4.6
Note · Marco — prefers email for anything with an invoice attached. Asked us not to call.
Activity: viewed /pricing · started checkout · opened ticket TCK-2841
Context first

Six questions answered before you say hello.

These are the things an agent would otherwise ask, or guess, or discover two messages too late.

Have we spoken before?

Every previous conversation, on every channel, with the outcome of each one. You never open with a question they have already answered twice.

Are they already a customer?

Orders, plan, seats and lifetime value sit on the record, pulled from your store or your own application. A first-time browser and a seventeen-order regular get different opening lines.

Is anything currently broken for them?

Open tickets and their status appear on the profile. Walking into a chat without knowing there is an unresolved refund is how a small problem becomes a public one.

What did they just do?

The activity timeline shows the pages they read, the events your app sent and the actions they took in the last few minutes — which is usually why they are messaging.

What has a colleague already tried?

Internal notes are attached to the person, not just to one conversation. What was promised, what was refunded and what to avoid mentioning stays with the record.

How should we talk to them?

Language, timezone, preferred channel and tags you set yourself. Small things, but they are the difference between a reply that fits and a reply that is merely correct.

// Once the user signs in
chatdrill("identify", {
  userId: "usr_8241",
  email: "emma@northwind.co",
  name: "Emma Hart",
  company: "Northwind Supply"
});

// Anything else your product knows
chatdrill("set", {
  plan: "growth",
  seats: 24,
  renewal_date: "2026-11-01",
  lifetime_orders: 17
});
Custom attributes

Your product knows things the inbox should know too.

Two lines of JavaScript, or one API call from your backend, and the profile carries whatever matters in your business — plan, seats, renewal date, warehouse, account manager, anything.

  • Any key, any value. Strings, numbers, dates and booleans, with the names you already use internally.
  • Usable everywhere — in filters, segments, routing rules, automations and reports.
  • Server-side too. Update attributes from your backend through the API when the browser is not involved.
  • Identity that survives — an anonymous visitor's history is kept and attached to the profile the moment they identify themselves.
Read the SDK reference
Segments

Groups that update without anybody maintaining them.

A segment is a set of conditions, not a list somebody exported in March. People join and leave it as their behaviour changes, and everything downstream follows.

  • Build from anything on the record — attributes, tags, orders, behaviour, CSAT, last seen.
  • Route conversations by segment so enterprise evaluators never wait behind a password reset.
  • Report by segment and find out whether your best customers get your best service.
Trial ending this weekUsed by: onboarding nudgeplan = trialtrial_ends < 7dseats > 3
High-value repeat buyersUsed by: priority routingorders >= 3lifetime_value > 500last_seen < 30d
Quiet since the last problemUsed by: win-back follow-upcsat <= 3last_seen > 30d
Evaluating for a teamUsed by: sales alertviewed /enterprisecompany_size > 200
Shopify
WhatsApp
Slack
HubSpot
Instagram
Salesforce
Zapier
Messenger
Telegram
Zoho
Pipedrive
Google Analytics
Discord
Chatdrill
CRM sync

The same customer, in both systems.

Support should not have to ask sales who owns an account, and sales should not have to ask support why somebody is unhappy. Contacts and conversation summaries sync in both directions.

  • Create or update the CRM contact when a new person starts a conversation.
  • Log conversations as activities, so the account history is complete without anyone copying and pasting.
  • Bring deal stage and owner back into the profile, where the person answering the chat can see them.
Browse all integrations
Data requests

Keeping the whole story means being able to hand it back.

If you hold a complete record of someone, you need to be able to show it to them and delete it on request — from the profile itself, in under a minute, without emailing us.

Export everything about one person

A single file containing the profile, custom attributes, tags, notes, tickets and every message on every channel. Ready to hand over when somebody asks what you hold.

Delete a contact for good

Deleting a profile removes the conversations, attachments and attributes attached to it across all channels. It is permanent, and the confirmation says so.

Anonymise instead of deleting

Strip the person out of the record while keeping the conversation for reporting and training. The numbers survive; the identity does not.

Permissions decide who sees what

Restrict profiles, notes and attributes by role, so a contractor working the weekend queue does not get the whole customer database.

Changes are recorded

Edits, merges, deletions and exports are logged with who did them and when — so a missing note has an answer rather than a theory.

A processor agreement you can read

Our data processing terms are published in plain language, including what we store, where it is processed and what happens when you leave.

FAQ

How the record actually works.

By matching on email address and phone number, and by the identify() call from your own application when someone signs in. Where there is no match, the records stay separate rather than being guessed at — and you can merge them by hand in one click.

Stop asking customers to explain themselves twice.

One record per person, built automatically from every channel you answer on.

No credit card required.