tools/integrations/salesforce.md
Enterprise CRM platform for sales, service, and marketing.
| Integration | Available | Notes |
|---|---|---|
| API | ✓ | REST API, SOAP API, Bulk API |
| MCP | - | Not available |
| CLI | ✓ | Salesforce CLI (sf) |
| SDK | ✓ | JSforce, simple-salesforce, etc. |
Authorization: Bearer {access_token}GET https://{instance}.salesforce.com/services/data/v59.0/query?q=SELECT+Id,Name,Email+FROM+Contact+LIMIT+10
Authorization: Bearer {access_token}
GET https://{instance}.salesforce.com/services/data/v59.0/sobjects/Contact/{record_id}
Authorization: Bearer {access_token}
POST https://{instance}.salesforce.com/services/data/v59.0/sobjects/Contact
{
"FirstName": "John",
"LastName": "Doe",
"Email": "[email protected]",
"AccountId": "{account_id}"
}
PATCH https://{instance}.salesforce.com/services/data/v59.0/sobjects/Contact/{record_id}
{
"Title": "Senior Developer"
}
GET https://{instance}.salesforce.com/services/data/v59.0/search?q=FIND+{searchTerm}+IN+ALL+FIELDS+RETURNING+Contact(Id,Name,Email)
Authorization: Bearer {access_token}
GET https://{instance}.salesforce.com/services/data/v59.0/query?q=SELECT+Id,Name,Amount,StageName,CloseDate+FROM+Opportunity+WHERE+IsClosed=false
Authorization: Bearer {access_token}
GET https://{instance}.salesforce.com/services/data/v59.0/sobjects/Contact/describe
Authorization: Bearer {access_token}
# Authenticate
sf org login web
# Query records
sf data query --query "SELECT Id, Name FROM Account LIMIT 10"
# Create record
sf data create record --sobject Account --values "Name='New Account'"
# Deploy metadata
sf project deploy start
# Run Apex
sf apex run --file script.apex
-- Get contacts with accounts
SELECT Id, Name, Email, Account.Name
FROM Contact
WHERE Account.Industry = 'Technology'
-- Get opportunities by stage
SELECT StageName, COUNT(Id)
FROM Opportunity
GROUP BY StageName
-- Get recent leads
SELECT Id, Name, Company, Status
FROM Lead
WHERE CreatedDate = LAST_N_DAYS:30
ORDER BY CreatedDate DESC