Salesforce CRM integration
Bidirectional sync sounds great until you discover the asymmetric flows, the API burn and the validation rules that silently block updates.
What people actually say
✕Tasks created in Salesforce don't sync down into Outreach, and opportunity edits in Outreach don't push back to Salesforce — if reporting depends on either flow, you have to engineer workarounds from day one.
Source: Prospeo, Outreach + Salesforce integration guide 2026 ↗✕Importing 100 contacts whose accounts aren't already in Outreach burns 1 call for the contact batch plus 100 additional calls — and when limits are exceeded, Outreach pauses all push/pull operations until the next rolling 24-hour block frees capacity.
Source: Prospeo, Outreach Salesforce API limits ↗✕G2 reviewers report sync errors with Salesforce or mailboxes are a recurring pain — duplicated contacts, broken mappings, and tasks like a LinkedIn Task failing to update the lead status in the primary database.
Source: G2, Outreach reviews and sync complaints ↗
We treat Salesforce as the system of record and run a single bidirectional sync worker on Inngest with explicit field mappings in code, dead-letter queues for validation failures, and a Metabase dashboard showing exactly which records didn't sync and why. No black box, no rolling 24-hour API timeout.