Bidirectional sync of Contacts, Accounts, and Opportunities. FastFollow uses Salesforce as the source of truth for deal data and logs every sent follow-up as an activity on the related record.
~10 minutes for an admin with Connected App permissions
In Salesforce Setup, go to App Manager → New Connected App. Give it a name (e.g. "FastFollow"), an admin contact email, and enable OAuth Settings.
On the same Connected App, under "Selected OAuth Scopes", add the three scopes FastFollow needs.
Once Salesforce provisions the app (allow ~10 minutes), grab the Consumer Key and Consumer Secret from the API section.
In FastFollow, go to Integrations → Salesforce → Connect. You will be redirected to Salesforce to confirm the scopes and complete the OAuth flow.
Standard fields synced out of the box. Custom mappings configurable post-connect.
| Salesforce | FastFollow | Direction |
|---|---|---|
| Contact.FirstName + LastName | contact.fullName | Salesforce → FastFollow |
| Contact.Email | contact.email (unique key) | Bidirectional |
| Contact.Phone | contact.phone | Bidirectional |
| Account.Name | contact.companyName | Salesforce → FastFollow |
| Opportunity.Name | deal.title | Bidirectional |
| Opportunity.Amount | deal.value | Bidirectional |
| Opportunity.StageName | deal.stage | Bidirectional |
| Opportunity.CloseDate | deal.expectedCloseDate | Bidirectional |
| Task (logged activity) | followup.sentAt → posts a Task on the related Contact/Opportunity | FastFollow → Salesforce |
Always validate the integration in a sandbox before connecting production. FastFollow supports separate sandbox connections so you can rehearse field mappings and confirm the activity-logging behavior is what you expect.
Sandbox connections use test.salesforce.com as the OAuth login domain.
Refresh tokens are encrypted at rest with an account-scoped key and rotated on every use. To revoke, disconnect from FastFollow Integrations or revoke the Connected App session from Salesforce Setup → Connected Apps OAuth Usage.
Revoking from either side immediately invalidates the connection.
The most common Salesforce sync errors
INVALID_LOGINOAuth flow rejected at the Salesforce login screen.
Fix: Check that the Callback URL on the Connected App exactly matches https://app.fastfollow.ai/api/integrations/salesforce/callback (including https and trailing slash conventions). Sandbox users must log in via test.salesforce.com.
INSUFFICIENT_ACCESSOAuth succeeds but contact sync fails with permission errors.
Fix: The authorizing user lacks read/write on Contact, Account, or Opportunity objects. Have an admin update the user profile or assign a permission set with API access.
API_DISABLED_FOR_ORGSalesforce returns 403 on all API calls.
Fix: Your org edition does not include API access. API is available on Enterprise, Performance, Unlimited, and Developer editions — not Essentials or Professional without the API Add-On.
INVALID_FIELD_FOR_INSERT_UPDATECustom fields fail to sync.
Fix: FastFollow only writes to standard fields by default. To map custom fields, configure the mapping in Integrations → Salesforce → Field Mapping after the initial connection.
REQUEST_LIMIT_EXCEEDEDSync stops mid-batch with daily API limit errors.
Fix: Salesforce enforces per-org daily API quotas (typically 15,000–100,000 calls/day depending on edition). FastFollow respects these limits with exponential backoff, but very large initial syncs may hit them. Contact support to schedule sync during off-hours.