CRM Integrations
Automatically sync missed-call leads to your CRM. Create contacts, deals, and log activity — zero manual entry.
🔗 Supported CRMs
HubSpot
Full CRM with marketing, sales, and service hubs
Pipedrive
Sales-focused CRM with visual pipeline management
Zoho CRM
Enterprise CRM with sales, marketing, and service modules
Custom Webhook
Send lead data to any endpoint (Zapier, Make, internal API)
🔄 How CRM Sync Works
Missed Call Received
Ringback captures caller ID, creates lead with status='new'
Lead Created in Ringback
Lead record inserted, sequence triggered, webhook queued for CRM
CRM Sync Job Runs
Background job (within 30s) sends lead data to configured CRM
Contact Created/Updated
CRM finds existing contact by phone/email or creates new
Deal Created
Deal/opportunity created in default pipeline with lead info
Activity Logged
SMS/email sends logged as activities on contact/deal timeline
Reply Received
Lead replies → Ringback updates status → CRM deal stage can auto-advance
🗂️ Default Field Mappings
Customize these in Settings → CRM after connecting. All mappings are configurable.
| Ringback Field | HubSpot | Pipedrive | Zoho | Description |
|---|---|---|---|---|
| lead.name | firstname + lastname | name | First_Name + Last_Name | Lead's full name |
| lead.phone_e164 | phone | phone | Phone | Phone in E.164 format |
| lead.id | ringback_lead_id (custom) | ringback_lead_id (custom) | Description | Ringback internal ID |
| lead.source | lead_source | source_name | Lead_Source | missed_call / manual / demo |
| lead.created_at | createdate | add_time | Created_Time | Lead creation timestamp |
| business_name | company (associated) | org_name (associated) | Account_Name | Your business name |
📋 Setup Walkthrough
Open Settings → CRM
Navigate to /settings/crm
Choose Provider
Select HubSpot, Pipedrive, or Custom Webhook
Authenticate
OAuth flow (HubSpot) or paste API token (Pipedrive/Webhook)
Map Fields
Choose which Ringback fields map to which CRM fields
Select Pipeline/Stage
Pick default pipeline and starting deal stage
Test Sync
Click 'Test Connection' — creates a test lead in CRM
Enable
Toggle 'Active' — all new missed calls now sync automatically
🔒 Security & Data Handling
- API credentials encrypted at rest using AES-256-GCM (lib/encryption.ts)
- OAuth tokens refreshed automatically before expiry
- Webhook payloads signed with HMAC-SHA256 — verify on your endpoint
- No CRM data stored in Ringback beyond field mapping config
- Revoke access anytime from CRM settings or Ringback CRM page
🔧 Common Issues
OAuth popup blocked
Allow popups for your domain. HubSpot requires popup for OAuth consent.
Test sync succeeds but real leads don't sync
Check CRM sync job logs in Supabase (ring_crm_sync_log table). Look for rate limits or field validation errors.
Duplicate contacts in CRM
CRM deduplicates by phone/email. Ensure lead phone_e164 matches CRM contact format exactly.
Deal not created
Verify pipeline ID and stage ID exist in your CRM. Pipeline must be 'open' type.
Custom webhook returns 4xx/5xx
Check webhook URL accepts POST with JSON. Respond 2xx within 10s. Retries: 1m, 5m, 15m, 1h, 6h.
Field mapping not saving
Ensure target fields exist in CRM and are writable via API. Some CRM fields are read-only.