Managing Contacts
View, organize, export, and manage every lead and contact captured by your Chatsby AI agents — from first interaction to CRM integration.
Managing Contacts
Every meaningful interaction your AI agent has can become a contact — a structured record of a person who engaged with your business. The Contacts system in Chatsby is your central hub for viewing captured leads, reviewing conversation histories, exporting data to your CRM, and maintaining compliance with data privacy regulations.
What Are Contacts?
A contact in Chatsby represents a person who has interacted with one of your AI agents and provided identifiable information. Contacts are not just email addresses in a spreadsheet — each record includes the full conversation history, metadata about how and where the interaction happened, and any custom data collected through actions.
Contacts serve three primary purposes:
- Lead management. Track every prospect who engages with your agent, from initial inquiry to conversion.
- Conversation context. When a returning contact starts a new conversation, the agent can reference previous interactions for a more personalized experience.
- Data export and integration. Push contact data to your CRM, email marketing platform, or analytics tools.
How Contacts Are Created
Contacts enter your system through three channels:
| Channel | How It Works | Example |
|---|---|---|
| Lead Capture action | The agent collects name, email, phone, or other fields through the built-in Lead Capture action during a conversation. | User says "I'd like to schedule a demo" and the agent collects their details. |
| Custom actions | Any custom action that collects identifying information (email, phone) can create or update a contact record. | An order lookup action captures the user's email and associates it with a contact. |
| API | Create contacts programmatically using the Chatsby REST API. Use this for importing existing leads or syncing from other systems. | Bulk import 5,000 contacts from a CSV via the API. |
Anonymous conversations — where the user never provides identifiable information — do not create contact records. The conversation is still stored and accessible in your conversation logs, but no contact is created until identifying data is captured.
Contact Data Model
Each contact record contains the following fields:
| Field | Type | Auto-collected | Description |
|---|---|---|---|
id | string | Yes | Unique contact identifier (e.g., ctc_8f3k2j1m) |
name | string | No | Full name, collected via Lead Capture or custom action |
email | string | No | Primary email address |
phone | string | No | Phone number |
company | string | No | Company or organization name |
source | string | Yes | How the contact was captured: widget, api, whatsapp, slack |
first_seen | datetime | Yes | Timestamp of the contact's first interaction |
last_seen | datetime | Yes | Timestamp of the contact's most recent interaction |
conversation_count | number | Yes | Total number of conversations with this contact |
page_url | string | Yes | The URL where the contact first interacted with the widget |
ip_country | string | Yes | Country inferred from IP address (not stored for GDPR-sensitive regions unless consented) |
tags | array | No | Custom tags applied manually or via automation |
metadata | object | No | Arbitrary key-value pairs from custom actions or API |
created_at | datetime | Yes | When the contact record was created |
updated_at | datetime | Yes | When the contact record was last modified |
Auto-collected fields are populated by Chatsby without requiring any user input or configuration. Manual fields are populated through actions, the API, or manual entry in the dashboard.
The Contacts Dashboard
Access the Contacts dashboard from your agent's left sidebar by clicking Contacts. The dashboard provides a table view of all captured contacts with the following capabilities:
Viewing Contacts
The main table displays one row per contact with columns for name, email, phone, source, date, and conversation count. Click any column header to sort ascending or descending.
Click a contact row to open the Contact Detail View, which includes:
- Contact information — All fields listed above, editable directly in the panel.
- Conversation history — A chronological list of every conversation this contact has had with your agent. Click any conversation to read the full transcript.
- Activity timeline — A log of key events: when the contact was created, when they last chatted, when their record was updated, and which actions were triggered.
- Notes — Free-text notes your team can add for internal context (e.g., "High-priority lead, follow up by Friday").
Searching
The search bar supports searching by:
- Name (partial match)
- Email address (partial match)
- Phone number
- Contact ID
Search results update in real time as you type.
Filtering
Use the filter panel to narrow your contact list by one or more criteria:
| Filter | Options |
|---|---|
| Source | Widget, API, WhatsApp, Slack, or any custom source |
| Date range | Created between specific dates |
| Last active | Last seen within a timeframe (today, last 7 days, last 30 days, custom) |
| Tag | Contacts with a specific tag |
| Conversation count | Minimum or maximum number of conversations |
| Has email | Filter to contacts with or without an email address |
| Has phone | Filter to contacts with or without a phone number |
Filters are combinable. For example, you can find all contacts from the website widget created in the last 30 days with more than 3 conversations.
Exporting Contacts
Click the Export button in the top-right corner of the Contacts dashboard to download your contacts as a CSV file.
Export Options
| Option | Description |
|---|---|
| All contacts | Export every contact in your workspace |
| Filtered contacts | Export only contacts matching your current filters |
| Date range | Export contacts created within a specific date range |
| Field selection | Choose which columns to include in the CSV |
CSV Format
The exported CSV uses the following structure:
id,name,email,phone,company,source,first_seen,last_seen,conversation_count,tags,page_url,ip_country
ctc_8f3k2j1m,Sarah Johnson,[email protected],+15551234567,Acme Corp,widget,2026-03-15T10:30:00Z,2026-04-01T14:22:00Z,4,"lead,enterprise",https://acme.com/pricing,US
ctc_2n4p6r8t,James Chen,[email protected],,Globex Inc,api,2026-03-20T08:15:00Z,2026-03-20T08:15:00Z,1,"imported",,CAExports are generated asynchronously for large contact lists. You will receive an email with a download link when the export is ready. Export links expire after 24 hours.
CRM Integrations
Chatsby connects with the tools your sales and support teams already use. Contact data can flow into your CRM automatically, eliminating manual data entry and ensuring every lead is captured.
HubSpot
The native HubSpot integration creates or updates HubSpot contacts in real time when your agent captures a lead.
Connect HubSpot
Go to Settings > Integrations > HubSpot and click Connect. Authenticate with your HubSpot account.
Map Fields
Map Chatsby contact fields to HubSpot properties. Required mappings: email. Recommended: name, phone, company.
Enable Sync
Toggle the sync to Active. New contacts will be pushed to HubSpot automatically.
Salesforce (via Zapier)
Use the Zapier integration to push contacts to Salesforce as Leads or Contacts.
- Create a Zap with the trigger Chatsby: New Contact.
- Set the action to Salesforce: Create Lead (or Create Contact).
- Map fields between Chatsby and Salesforce.
- Activate the Zap.
Webhook to Any CRM
For CRMs without a direct integration, use the webhook option. Chatsby sends a POST request to your specified URL whenever a new contact is created.
{
"event": "contact.created",
"data": {
"id": "ctc_8f3k2j1m",
"name": "Sarah Johnson",
"email": "[email protected]",
"phone": "+15551234567",
"company": "Acme Corp",
"source": "widget",
"metadata": {},
"created_at": "2026-04-02T14:30:00Z"
}
}Configure the webhook URL in Settings > Integrations > Webhooks.
GDPR Compliance and Data Privacy
Chatsby is designed with privacy in mind. Here is how the Contacts system supports your compliance obligations.
Data Access Requests (DSAR)
When a person requests access to their data under GDPR Article 15, you can:
- Search for the contact by email in the Contacts dashboard.
- Open the contact detail view.
- Click Export Contact Data to generate a JSON file containing all data associated with that contact, including conversation transcripts and metadata.
Right to Deletion
To honor a deletion request under GDPR Article 17:
- Find the contact in the dashboard.
- Click Delete Contact in the contact detail view.
- Confirm the deletion.
This permanently removes the contact record, all associated conversation history, and metadata. This action cannot be undone.
Deletion is propagated to connected integrations (HubSpot, Zapier webhooks) via a contact.deleted event. Your CRM may require separate deletion depending on your integration configuration.
Consent Management
- Configure your agent's widget to display a consent banner before collecting any personal data.
- The consent status is recorded in the contact's metadata as
consent_given: true/falsewith a timestamp. - Contacts who decline consent are not created. Anonymous conversation data is retained per your workspace retention policy.
Contact Lifecycle
Contacts progress through a natural lifecycle as they interact with your agent:
Anonymous Visitor
│ Provides identifying info (email, name, phone)
▼
New Contact
│ Returns for additional conversations
▼
Returning Contact
│ Meets your qualification criteria (custom tags, conversation count)
▼
Qualified Lead
│ Exported to CRM or converted via your sales process
▼
Customer
Use tags and filters to track where each contact is in this lifecycle. For example:
- Tag new contacts from the pricing page as
pricing-intent. - Tag contacts with 3+ conversations as
engaged. - Tag contacts who triggered a demo booking action as
demo-requested.
Storage and Retention Policies
| Plan | Contact storage limit | Conversation retention | Export history |
|---|---|---|---|
| Free | 100 contacts | 30 days | Last export only |
| Pro | 5,000 contacts | 1 year | 90 days |
| Business | 50,000 contacts | 2 years | 1 year |
| Enterprise | Unlimited | Custom | Custom |
When you reach your contact storage limit, new contacts are still captured but the oldest contacts (by last_seen date) are archived. Archived contacts can be restored by upgrading your plan or deleting existing contacts to free up space.
API Access
The Chatsby REST API provides full programmatic access to your contacts. Common operations:
| Endpoint | Method | Description |
|---|---|---|
/v1/contacts | GET | List contacts with pagination, filtering, and sorting |
/v1/contacts/:id | GET | Retrieve a single contact with full detail |
/v1/contacts | POST | Create a new contact |
/v1/contacts/:id | PATCH | Update an existing contact |
/v1/contacts/:id | DELETE | Permanently delete a contact |
/v1/contacts/export | POST | Trigger an async CSV export |
See the API Reference for authentication details, request/response schemas, and rate limits.
Next Steps
- Actions Overview — Learn about the Lead Capture action and other ways contacts are created.
- Integrations — Set up CRM syncing and automation workflows.
- Security FAQ — Details on data encryption, storage, and access controls.
On this page
- What Are Contacts?
- How Contacts Are Created
- Contact Data Model
- The Contacts Dashboard
- Viewing Contacts
- Searching
- Filtering
- Exporting Contacts
- Export Options
- CSV Format
- CRM Integrations
- HubSpot
- Salesforce (via Zapier)
- Webhook to Any CRM
- GDPR Compliance and Data Privacy
- Data Access Requests (DSAR)
- Right to Deletion
- Consent Management
- Contact Lifecycle
- Storage and Retention Policies
- API Access
- Next Steps