crmoauth2

Salesforce

Enterprise CRM and sales cloud.

Verdict

Salesforce via MCP is the integration that lets the model navigate your CRM without you context-switching to it. Read accounts, opportunities, contacts; update fields; generate reports — all from chat. What we notice: Salesforce's data model is the most complex of any major MCP, and that's both the value and the friction. The model handles read queries well when you give it object names ("show me all open opportunities owned by Sarah this quarter"). It struggles with org-specific custom objects and validation rules without explicit prompting. Writes work but should always go through human review for sales-team usage. Best for: deal pipeline summaries (what's slipping, who needs follow-up, which opportunities haven't been touched in 14 days); pulling account context before a sales call ("what do we know about Acme, who's our champion, what are open issues"); cross-CRM analytics where the model can do JQL-style queries against the Salesforce REST API. Avoid for: org-wide reporting that should run through Salesforce's own reporting tools (faster, more accurate); workflows where validation rules and approval flows make the model's edits dangerous; small teams without enough Salesforce data to justify the integration cost. Practical frame: requires a paid Salesforce edition with API access enabled (Professional doesn't include this; Enterprise+ does). Token cost on Salesforce queries is moderate — large account or opportunity records run $0.05-0.20 per call.

Common use cases

  • Log call notes as Salesforce tasks from Slack
  • Pull account history before a customer call
  • Add inbound leads to nurture campaigns instantly
  • Clone won deals to fast-track similar opportunities
  • Route hot leads using assignment rules automatically

Integration

Vendor
Salesforce
Category
crm
Auth
OAUTH2
Tools
50
Composio slug
salesforce

Tools

  • Add contact to campaign

    Adds a contact to a campaign by creating a campaignmember record, allowing you to track campaign engagement.

  • Add lead to campaign

    Adds a lead to a campaign by creating a campaignmember record, allowing you to track campaign engagement.

  • Add product to opportunity

    Adds a product (line item) to an opportunity. the product must exist in a pricebook entry that's associated with the opportunity's pricebook.

  • Apply lead assignment rules

    Applies configured lead assignment rules to a specific lead, automatically routing it to the appropriate owner based on your organization's rules.

  • Associate contact to account

    Associates a contact with an account by updating the contact's accountid field.

  • Clone opportunity with products

    Clones an opportunity and optionally its products (line items). creates a new opportunity with the same field values and products as the original.

  • Clone record

    Creates a copy of an existing salesforce record by reading its data, removing system fields, and creating a new record. optionally apply field updates to the clone.

  • Complete task

    Marks a task as completed with optional completion notes. this is a convenience action that updates the task status to 'completed'.

  • Create account

    Creates a new account in salesforce with the specified information.

  • Create a new contact

    Deprecated: creates a new contact in salesforce; 'lastname' is required, an existing 'accountid' must be used if provided, and any custom fields (ending with ' c') must be predefined.

  • Create a note record

    Deprecated: creates a new note record in salesforce, associated with an existing salesforce object via `parentid`, automatically including a `content-type: application/json` header.

  • Create campaign

    Creates a new campaign in salesforce with the specified information.

  • Create campaign record

    Deprecated: creates a new campaign record in salesforce; if 'parentid' is provided, it must be a valid id of an existing campaign record, and if 'ownerid' is provided, it must be a valid id of an active user.

  • Create contact

    Creates a new contact in salesforce with the specified information.

  • Create lead

    Deprecated: creates a new lead in salesforce, requiring `lastname` and `company` unless person accounts are enabled and `company` is null.

  • Create lead

    Creates a new lead in salesforce with the specified information.

  • Create note

    Creates a new note attached to a salesforce record with the specified title and content.

  • Create opportunity

    Creates a new opportunity in salesforce with the specified information.

  • Create opportunity record

    Deprecated: creates a new opportunity record in salesforce; `name`, `stagename`, and `closedate` are mandatory, and ensure any referenced ids (e.g., `accountid`, `campaignid`) are valid and corresponding salesforce features are enabled if u

  • Create Salesforce Account

    Deprecated: creates a new salesforce account using a json post request, requiring 'name'; specific fields (e.g., custom, dunsnumber) may have org-level prerequisites.

  • Create task

    Creates a new task in salesforce to track activities, to-dos, and follow-ups related to contacts, leads, or other records.

  • Delete account
    destructive

    Permanently deletes an account from salesforce. this action cannot be undone.

  • Delete a lead object by its id
    destructive

    Deprecated: permanently deletes an existing lead object from salesforce using its unique id.

  • Delete campaign
    destructive

    Permanently deletes a campaign from salesforce. this action cannot be undone.

  • Delete contact
    destructive

    Permanently deletes a contact from salesforce. this action cannot be undone.

  • Delete lead
    destructive

    Permanently deletes a lead from salesforce. this action cannot be undone.

  • Delete note
    destructive

    Permanently deletes a note from salesforce. this action cannot be undone.

  • Delete opportunity
    destructive

    Permanently deletes an opportunity from salesforce. this action cannot be undone.

  • Execute SOQL query

    Deprecated: executes the provided soql query against salesforce; the query must begin with 'select'.

  • Fetch account by ID with query

    Deprecated: use this action to retrieve a salesforce account by its unique id, which must be a valid and existing salesforce account id; you can optionally specify a comma-delimited list of fields to return.

  • Fetch modified or unmodified sobjects

    Deprecated: fetches sobjects from `/sobjects` based on caller-set 'if-modified-since' (returns objects modified after a date, or 304 status if none) or 'if-unmodified-since' (returns objects if unmodified since a date, or 412 status if modi

  • Get account

    Retrieves a specific account by id from salesforce, returning all available fields.

  • Get campaign

    Retrieves a specific campaign by id from salesforce, returning all available fields.

  • Get contact

    Retrieves a specific contact by id from salesforce, returning all available fields.

  • Get dashboard

    Gets detailed metadata for a specific dashboard including its components, layout, and filters.

  • Get lead

    Retrieves a specific lead by id from salesforce, returning all available fields.

  • Get note

    Retrieves a specific note by id from salesforce, returning all available fields.

  • Get opportunity

    Retrieves a specific opportunity by id from salesforce, returning all available fields.

  • Get report instance results

    Gets the results of a report instance created by running a report. check status to see if report has completed.

  • Get report metadata

    Gets detailed metadata for a specific report including its structure, columns, filters, and groupings.

  • Get user info

    Retrieves information about the current user or a specific user in salesforce.

  • List accounts

    Lists accounts from salesforce using soql query, allowing flexible filtering, sorting, and field selection.

  • List campaigns

    Lists campaigns from salesforce using soql query, allowing flexible filtering, sorting, and field selection.

  • List contacts

    Lists contacts from salesforce using soql query, allowing flexible filtering, sorting, and field selection.

  • List dashboards

    Lists all dashboards available in salesforce with basic metadata including name, id, and urls.

  • List email templates

    Lists available email templates in salesforce with filtering and search capabilities.

  • List leads

    Lists leads from salesforce using soql query, allowing flexible filtering, sorting, and field selection.

  • List notes

    Lists notes from salesforce using soql query, allowing flexible filtering, sorting, and field selection.

  • List opportunities

    Lists opportunities from salesforce using soql query, allowing flexible filtering, sorting, and field selection.

  • Retrieve Note with conditions

    Deprecated: retrieves a salesforce note object by its id, optionally specifying which fields to return; the note id must exist.

Setup

Setup guide

  1. 11. In Switchy, open your workspace settings and navigate to the Integrations tab. 2. Find Salesforce in the MCP directory and click Connect. 3. You'll be redirected to Salesforce's OAuth consent screen — log in with an account that has API Enabled permission. 4. Grant the requested scopes: read and write access to standard objects (Account, Contact, Lead, Opportunity, Task, Campaign) and read access to metadata. 5. After authorizing, Salesforce redirects you back to Switchy and the connection appears as active. 6. Open any Space, type '@Salesforce list my open opportunities' and send the message. 7. The MCP returns a formatted list of opportunities owned by you — if you see data, the connection works. 8. To invoke other tools, @mention Salesforce followed by a natural-language request like 'add this lead to Q1 nurture campaign' or 'clone opportunity XYZ with all products'.

What teammates see: by default, memories from Salesforce are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.

Works well with

Top models

Compatibility data appears once enough Spaces have used this MCP together with a given model.

How Switchy teams use it

Not enough Spaces yet to publish anonymised usage stats (we require ≥ 50 Spaces per week).

Starter prompts

Summarize Open Deals

@Salesforce list all my open opportunities with amount, stage, and close date. Sort by close date ascending.
Open in a Space →

Log Meeting as Task

@Salesforce create a completed task for account Acme Corp with subject 'Q1 planning call' and description 'Discussed renewal timeline and upsell interest in premium tier'.
Open in a Space →

Add Lead to Campaign

@Salesforce add the lead with email john.doe@example.com to the campaign named 'Spring 2025 Webinar Series'.
Open in a Space →

Clone Winning Opportunity

@Salesforce clone opportunity OPP-12345 including all products, then update the account to Globex Inc and stage to Qualification.
Open in a Space →

Route Lead by Rules

@Salesforce apply lead assignment rules to lead ID 00Q5e00000AbCdEFG so it gets routed to the correct owner.
Open in a Space →

Example outputs

Illustrative - representative of the model's voice and quality, not literal recordings.

Prompt

@salesforce show me all open opportunities in the Enterprise segment over $100k, grouped by close date

Output

Found 12 open Enterprise opportunities exceeding $100k. Q1 2024 (3 opps, $890k pipeline): Acme Corp renewal ($250k, 3/15 close), GlobalTech expansion ($340k, 3/28), DataSystems new logo ($300k, 3/30). Q2 2024 (7 opps, $1.2M pipeline): includes TechFlow ($180k, 4/10), MegaCorp ($220k, 5/5), plus 5 others ranging $80k-$150k. Q3 2024 (2 opps, $450k): both in discovery stage. This is an illustrative summary—actual opportunity counts and amounts will reflect your live Salesforce data at query time.

Notes

This example demonstrates read-heavy SOQL querying across Opportunity records with filtering and aggregation. Requires 'View All Data' or appropriate sharing rules on Opportunities. Response time depends on your org's data volume; orgs with 10k+ opportunities may see 2-3 second delays.

Prompt

@salesforce create a follow-up task for the Acme Corp opportunity, due Friday, assigned to Sarah Chen with a note about pricing discussion

Output

Created Task (ID: 00T8c00000XyZ1a) linked to Opportunity 'Acme Corp - Q1 Renewal'. Subject: 'Follow up on pricing discussion'. Assigned to: Sarah Chen (sarah.chen@company.com). Due Date: Friday, January 19, 2024. Status: Not Started. Description includes your note about pricing discussion. Sarah will see this task in her Salesforce Home and receive an email notification if her user settings enable task assignment alerts. This is an illustrative example—actual task IDs and user assignments depend on your org's data.

Notes

This write operation creates a Task record and triggers Salesforce's standard assignment notifications. Requires 'Create' permission on Tasks and valid User/Opportunity IDs. The MCP resolves 'Friday' and user names to proper Salesforce IDs, but ambiguous names (multiple Sarah Chens) will prompt for clarification.

Prompt

@salesforce review all closed-lost opportunities from last quarter and draft a summary of the top 3 reasons we're losing deals

Output

Analyzed 18 closed-lost opportunities from Q4 2023 (total pipeline value: $2.1M). Top loss reasons: (1) Pricing (8 deals, 44%): competitors undercut by 15-30% in mid-market segment, particularly for multi-year contracts. (2) Feature gaps (5 deals, 28%): lacked native integrations with Workday and NetSuite; prospects chose all-in-one platforms. (3) Timeline misalignment (3 deals, 17%): our 6-week implementation vs. competitor's 2-week quick-start drove urgency losses. Remaining 2 deals lost to budget freezes. This synthesis is illustrative—actual loss analysis reflects your org's Opportunity Stage History and Loss Reason picklist values.

Notes

This synthesis example pairs Salesforce data retrieval with AI reasoning to identify patterns across multiple records. Requires read access to Opportunities and relies on your team consistently populating the 'Loss Reason' field. The AI interprets free-text fields, so data quality directly impacts insight accuracy.

Use-case deep-dives

Post-demo deal setup for sales reps

When this MCP wins for converting demo calls to pipeline

A 6-person sales team runs 20-30 demos a week and needs to spin up opportunities with standard product line items immediately after each call. The Salesforce MCP handles this in one prompt: clone last quarter's similar deal, swap the account, add the three SKUs from your pricing doc, and assign the task to the AE. The 50-tool catalog covers the full deal-creation flow—clone opportunity with products, associate contact to account, add product to opportunity—so reps don't toggle between Switchy and the Salesforce UI. This works until your product catalog hits 200+ SKUs or you need custom approval workflows that live outside standard objects. If your team closes 15+ deals a month and uses a repeatable opportunity template, this MCP cuts setup time from 8 minutes to under one.

Campaign list hygiene for demand gen

When this MCP is overkill for one-off campaign adds

A 3-person marketing team runs quarterly webinars and needs to add 400 leads to a campaign after each event. The Salesforce MCP exposes add lead to campaign and add contact to campaign, but OAuth2 setup and the 50-tool surface is heavy if you only need two actions twice a quarter. You're better off with a Zapier trigger or a CSV upload in Salesforce directly. Where this MCP pays off is when you're also applying lead assignment rules, cloning campaign structures, or cross-referencing account data in the same workflow—then the shared context in Switchy justifies the integration weight. If your demand gen motion is just list imports with no downstream routing or account lookups, skip this and use Salesforce's native bulk tools.

Support ticket escalation with CRM context

When this MCP bridges support and account history

A 5-person support team fields 80 tickets a day and escalates 10% to account managers when a customer hits a contract or renewal blocker. The Salesforce MCP lets the support agent pull account details, open opportunities, and recent tasks in one Switchy thread, then create a follow-up task assigned to the AM—all without leaving the conversation. The associate contact to account and complete task tools mean the agent can update CRM state as they triage, not in a separate tab 20 minutes later. This breaks down if your support tool already has a two-way Salesforce sync (like Zendesk Sell), because you're duplicating writes. If your support and sales teams share a workspace and escalations require live CRM reads, this MCP keeps context in one place and cuts the average escalation handoff from 4 steps to one.

Frequently asked

What does the Salesforce MCP let me do in Switchy?

It gives your AI agents direct access to your Salesforce data and workflows. Agents can create leads, update opportunities, add contacts to campaigns, clone records, and run assignment rules—all without leaving the conversation. You're automating CRM tasks that normally require clicking through Salesforce tabs or writing custom API scripts.

Do I need Salesforce admin permissions to connect the MCP?

You need OAuth credentials with the scopes your team wants to use. Most orgs require admin approval to authorize third-party apps like Switchy. If your Salesforce admin has locked down API access or restricted OAuth apps, you'll need them to whitelist Switchy before you can connect.

Can the Salesforce MCP update custom fields or only standard ones?

It can read and write both standard and custom fields, as long as the connected user has field-level security permissions in Salesforce. The MCP exposes 50+ tools covering leads, contacts, opportunities, campaigns, and tasks. If a field exists in your Salesforce schema and the user can edit it, the MCP can too.

Why use the MCP instead of Salesforce's built-in Einstein or Flow Builder?

The MCP lets your team describe what they want in plain language and have an AI agent execute it across multiple systems in one go. Einstein and Flow Builder are powerful for pre-built automations inside Salesforce, but they don't connect to your other tools or adapt to ad-hoc requests the way a Switchy agent does.

Who on my team should connect the Salesforce MCP?

Whoever connects it becomes the API user for all agent actions. Pick someone with the right Salesforce permissions—typically a sales ops admin or a power user with edit access to the objects your team needs. Their permissions determine what the agents can do, so don't connect with a read-only account.

Compare with

Compare with anything else →
Data last verified 7 hours ago.Sources aggregated hourly to weekly. See docs/architecture/model-directory.md.