CRM Contact Sync Guide
CRM Contact Sync Guide
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
Troubleshooting
See the Integration Troubleshooting Guide for connection errors, permission failures, and duplicate record issues.
Was this article helpful?