Skip to main content
Salesforce

Overview

PropertyValue
Slugsalesforce
AuthOAuth 2.0 / JWT Bearer
API versionv66.0
SandboxYes
Rate limit100 req/min, 25 req/sec

Supported resources

ResourceListGetCreateUpdateDelete
Contact
Lead
Deal
Meeting
Company
Note
Task
Activity
Pipeline
Owner

Connect setup

Salesforce uses OAuth 2.0 with an External Client App. You can optionally configure JWT Bearer for server-to-server authentication.
1

Create an External Client App in Salesforce

Go to Salesforce Setup → search External Client App Manager in Quick Find → click New. Fill in the app name and contact email. Expand the API (Enable OAuth Settings) section and enable OAuth.
2

Add the redirect URL

In the Callback URL field, add:
https://api.routemcp.io/api/v1/auth/callback
3

Configure OAuth scopes

Add the following scopes to Selected OAuth Scopes:
  • Manage user data via APIs (api)
  • Perform requests at any time (refresh_token, offline_access)
Keep Require Proof Key for Code Exchange (PKCE) checked.
4

Get your Consumer Key and Secret

After saving, click Consumer Key and Secret in the OAuth Settings section. Copy both values — you’ll need them in the Connect widget.
5

Connect via the widget

When your end user opens the Connect widget, they select Production or Sandbox environment, enter the Consumer Key and Consumer Secret, then authorize via Salesforce.

Usage

# List contacts from Salesforce
curl "https://api.routemcp.io/api/v1/crm/contact?provider=salesforce&endUserId=user-123" \
  -H "Authorization: Bearer sk_live_your_key"

# Create a deal (opportunity)
curl -X POST "https://api.routemcp.io/api/v1/crm/deal?provider=salesforce&endUserId=user-123" \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Acme Corp", "amount": 50000, "stage": "Prospecting", "closeDate": "2026-06-30" }'

Notes

  • Salesforce uses SOQL queries internally — listing operations select specific fields rather than returning all properties.
  • The instance_url is stored per connection and used for all API calls (each Salesforce org has a unique URL).
  • Notes are mapped to the classic Salesforce Note object. A Title and parent record (contactId, companyId, or dealId) are required when creating notes.
  • Pipeline is read-only — stages come from the OpportunityStage metadata object.
  • Use environment: "sandbox" in your connect token to connect sandbox orgs via test.salesforce.com.
  • Salesforce requires LastName for contacts and leads, Name + StageName + CloseDate for deals.