CRM Contact Sync Guide
CRM Contact Sync Guide
How contact matching works
When a visitor chats, Velaro resolves their identity in this order:
1. Existing link — if this contact has chatted before with the same CRM connected, Velaro finds them instantly using a stored link (no search needed).
2. Email match — searches the CRM for a contact with the same email address (case-insensitive).
3. Phone match — if no email, searches by phone number (digits only — formatting differences are ignored).
4. No match — a new contact record is created in the CRM.
Either email or phone alone is enough to find a match. Email is checked first as it is more reliably unique.
Multiple CRMs at once
You can connect more than one CRM simultaneously — for example HubSpot for sales and BigCommerce for orders. Each integration runs independently:
- Each CRM is searched separately using the same email/phone match logic.
- A contact can be linked to multiple CRMs at the same time — one link per integration is stored.
- Switching or adding a CRM later does not affect existing links or conversation history.
- Each integration appears as its own tab in the conversation sidebar (only shown if the integration is connected).
How contact sync works
When a chat conversation ends, Velaro automatically pushes the contact's information (name, email, phone) into your connected CRM — HubSpot, Dynamics 365, or any other integrated platform.
- New contact: if no matching record exists in the CRM, Velaro creates one (a Contact in HubSpot, a Lead in Dynamics 365).
- Existing contact: if a record is found by email or phone, Velaro updates any fields that are blank in the CRM with data from the conversation.
- Conflict: if both the CRM and the chat have different non-empty values for the same field, Velaro does not overwrite — it queues the conflict for agent review instead.
Agents can also manually trigger a sync at any time using the Sync → button inside the HubSpot or Dynamics sidebar panel.
What is a conflict?
A conflict occurs when:
- The CRM already has a value for a field (e.g., First Name = "Bob")
- The conversation captured a different value (e.g., First Name = "Robert")
Rather than silently picking one, Velaro queues the conflict so an agent can decide which value is correct.
Reviewing and resolving conflicts
When conflicts exist for a conversation, an amber Pending conflicts panel appears in the CRM sidebar.
For each conflicted field, you will see:
- In [CRM] — the value currently stored in HubSpot or Dynamics
- From chat — the value collected during the conversation
You have two choices per field:
Use chat value — writes the chat value to the CRM immediately. Use this when the customer gave you updated information during the conversation.
Keep CRM value — discards the incoming value and keeps what's already in the CRM. Use this when the existing CRM data is authoritative (e.g., already verified).
You can also click Discard all to keep all existing CRM values in one action.
Which fields are synced
| Field | HubSpot API name | Dynamics API name |
|---|---|---|
| First Name | firstname |
firstname |
| Last Name | lastname |
lastname |
| Phone | phone |
telephone1 |
Additional fields can be mapped per integration by your administrator under Integrations → [CRM] → Data Mapping.
Manual sync vs automatic sync
Automatic — runs after every conversation ends. Requires the integration to be connected and the contact to have at least an email or phone number.
Manual — click Sync → in the CRM sidebar panel at any time during or after a conversation. Useful when you want to push an update mid-chat or retry after a failed auto-sync.
If neither email nor phone is available on the contact, sync will not run (no lookup key).
Sync result indicators
After a manual sync, the sidebar shows a brief status:
- Contact created — new record was added to the CRM
- Contact updated — existing record was updated with safe (non-conflicting) fields
- Conflicts queued — some fields had conflicting values; see the amber review panel
- existing_lead — Dynamics only: a Lead already exists (created by the bot mid-chat); no duplicate was created
Merging duplicate contacts
If the same person exists as two separate contact records (e.g. one from a web chat and one imported from HubSpot), you can merge them under Contacts → Merge Duplicates.
Velaro automatically identifies contacts that share the same email address or phone number and groups them for review.
To merge:
1. Go to Contacts and click the Merge Duplicates tab.
2. Each group shows the contacts side by side with their details.
3. Click the contact you want to keep (the master record).
4. Click Merge — all conversations, notes, attributes, and tags from the other contact are moved to the master. The duplicate is removed from the list but not permanently deleted.
Conversation history is always preserved — merging never loses any chat records.
When adding a new contact manually, Velaro will alert you if a similar contact already exists (matched by email or phone) so you can open the existing record instead of creating a duplicate.
Troubleshooting
See the Integration Troubleshooting Guide for connection errors, permission failures, and duplicate record issues.
Was this article helpful?