Salesforce Integration

Connect FastFollow to your Salesforce org

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.

Setup walkthrough

~10 minutes for an admin with Connected App permissions

1

Create a Connected App in Salesforce

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.

  • Set the Callback URL to https://app.fastfollow.ai/api/integrations/salesforce/callback
  • Toggle "Enable OAuth Settings" on
  • Toggle "Require Proof Key for Code Exchange (PKCE)" on
2

Request the right OAuth scopes

On the same Connected App, under "Selected OAuth Scopes", add the three scopes FastFollow needs.

  • api — Access and manage your data
  • refresh_token, offline_access — Maintain access without re-auth
  • id, profile — Identify the authorizing user
3

Copy the Consumer Key and Secret

Once Salesforce provisions the app (allow ~10 minutes), grab the Consumer Key and Consumer Secret from the API section.

  • These map to SALESFORCE_CLIENT_ID and SALESFORCE_CLIENT_SECRET in your FastFollow account settings
  • Never commit these to source control — they grant API-level access to your org
4

Authorize from FastFollow

In FastFollow, go to Integrations → Salesforce → Connect. You will be redirected to Salesforce to confirm the scopes and complete the OAuth flow.

  • For sandbox testing, select "Sandbox" before connecting — FastFollow will use the test.salesforce.com login domain
  • For production orgs, use the default Production option
  • Refresh tokens last until manually revoked from Salesforce

Default field mapping

Standard fields synced out of the box. Custom mappings configurable post-connect.

SalesforceFastFollowDirection
Contact.FirstName + LastNamecontact.fullNameSalesforce → FastFollow
Contact.Emailcontact.email (unique key)Bidirectional
Contact.Phonecontact.phoneBidirectional
Account.Namecontact.companyNameSalesforce → FastFollow
Opportunity.Namedeal.titleBidirectional
Opportunity.Amountdeal.valueBidirectional
Opportunity.StageNamedeal.stageBidirectional
Opportunity.CloseDatedeal.expectedCloseDateBidirectional
Task (logged activity)followup.sentAt → posts a Task on the related Contact/OpportunityFastFollow → Salesforce

Sandbox testing

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.

Token management

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.

Troubleshooting

The most common Salesforce sync errors

INVALID_LOGIN

OAuth 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_ACCESS

OAuth 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_ORG

Salesforce 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_UPDATE

Custom 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_EXCEEDED

Sync 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.