Guide

Contacts

Sonny builds your contact list as customers chat, email, or receive an outbound message. Your website and integrations can create contacts too.

How contacts are created

There is no separate "Add Contact" button on the Contacts page. Use the workflow that matches where the customer comes from.

Live chat
When a visitor provides their name and email through the chat widget, a contact is automatically created. If a contact with that email already exists, their name is updated.
Inbound email
When an email arrives at your forwarding address, Sonny automatically creates a contact using the sender's email and name. If the sender already exists as a contact, the existing record is used.
New conversation
In the inbox, select "New conversation", choose a channel under "From", then open "To". Type a full email address and choose "Use new email". When you send the message, Sonny creates the contact and the email conversation together.
Visitor identification
If your website identifies a logged-in visitor with the widget API, Sonny creates or updates their contact and links conversations from that visitor session to it.
Public API
An integration can create a contact with POST /api/v1/contacts. See the Public API guide for authentication, scopes, request examples, and the full contact resource.

Contact fields

Each contact record has the following fields. Editable fields can be changed from the contact detail page.

EmailRead-only
The contact's email address. Set automatically when the contact is created. Unique per workspace — two contacts in the same workspace cannot share an email.
NameEditable
The contact's display name. Set automatically from chat or email, and can be edited manually from the contact detail page.
ChannelRead-only
The channel where the contact was first created. The Contacts list and contact page show its customer-facing channel label. Set automatically and cannot be changed.
NotesEditable
Free-text internal notes about the contact. Only visible to your team, never shown to the contact. Use this for context like account details or special instructions.
TagsEditable
Color-coded labels shared across your workspace. Tags can also be applied to conversations. Use them to categorize contacts by type, priority, or any grouping that works for your team.
Custom fieldsEditable
Extra fields you define yourself in Settings > Custom Fields — text, number, URL, date, or a pick-list. Values can be edited on the contact page, and your website can also fill them in automatically through the chat widget. Automatically updated values show a small "SDK" marker with the time of the last update.

What you can do with contacts

Search and sort
Search contacts by name or email from the contacts list. Sort by name, email, channel, or creation date in ascending or descending order.
Tags
Apply color-coded tags to contacts for organization. Tags are workspace-wide and shared with conversations. Add or remove tags from the contact detail page.
Merge Contacts
Merge duplicate contacts into one. Select a primary contact and one or more secondary contacts to merge. All conversations from the secondary contacts are moved to the primary contact. Secondary contacts are archived.
Flexible creation
Contacts can come from chat, inbound email, a new outbound conversation, visitor identification, or the Public API. There is no separate Add Contact button in the Contacts page.

Update or merge a contact

Open Contacts and select a contact. Edit their name or notes, then select Save.

Tags save when you add or remove them. Custom fields save when you choose a value, press Enter, or leave the field.

To combine duplicates, select Merge. In the Merge Contacts dialog, search for the contacts to merge, select them, and confirm. Their conversations move to the contact you kept, and the duplicate contacts are archived.

Contacts and conversations

Every conversation is linked to a contact (once an email is provided). From a contact's detail page, you can see all their conversations — including status, channel, assignee, and the last message. Click any conversation to jump directly to it in the inbox.

Contacts also show an effort score — Sonny's estimate of how much work this customer has had to put in recently (low, moderate, high, or critical). It's based on signals like how often they've been in touch, how quickly they got replies, and whether conversations were reopened or passed around. A high score is a hint to give them extra care.

Related docs