Anvil's CRM integrations push scored leads into the system your sales team already lives in, and keep records in sync bidirectionally so nothing falls through the cracks.
Supported CRMs
Anvil offers native, bidirectional integrations with:
Salesforce: (Sales Cloud, Enterprise and above)HubSpot: (Marketing and Sales Hubs)PipedriveZoho CRMIf your CRM isn't listed, you can still sync via [Zapier & Make](/docs/integrations/zapier-make) or the [custom API](/docs/integrations/custom).
How Sync Works
Once connected, Anvil keeps four object types aligned:
Leads: a new Anvil lead is created as a contact or lead record in your CRM.Activities: AI conversation logs and outreach events are attached to the matching CRM record's timeline.Pipeline stages: moving a lead in either system updates the other.Custom fields: Anvil data points (intent score, source platform, matched keywords) map to your CRM's custom fields.Sync runs continuously — changes propagate within about a minute in each direction.
Connecting a CRM
Go to **Settings > Integrations > CRM**.Click **Connect** next to your CRM.Complete the OAuth authorization in the popup.Choose which Anvil projects sync to which CRM pipeline.Confirm the default field mapping (see below) and click **Enable Sync**.Field Mapping
Anvil ships a sensible default mapping (name, email, company, phone, score, source). To customize it, open the **Field Mapping** tab and pair each Anvil field with a CRM field. Unmapped Anvil fields are written into a single "Anvil Metadata" note if your CRM lacks a matching custom field.
We recommend creating dedicated custom fields in your CRM for **Intent Score** and **Source Platform** so your reps can filter and sort on them.
Conflict Resolution
When the same record changes in both systems between syncs, Anvil applies a configurable strategy:
Anvil wins: Anvil's value overwrites the CRM (default for score and source fields).CRM wins: the CRM value is authoritative (default for owner and stage).Most recent wins: the latest `updatedAt` timestamp decides.Set the strategy per field under **Settings > Integrations > CRM > Conflicts**.
Troubleshooting
Duplicate contacts: enable dedupe-by-email so Anvil matches existing CRM records instead of creating new ones.Sync paused: an expired OAuth token pauses sync. Reconnect from the integration settings page.Missing fields: confirm the CRM field exists and the mapping is saved. Email 738888@proton.me for help with a complex mapping.