Salesforce
Arcade tools designed for LLMs to interact with Salesforce
Salesforce provider: The Arcade toolkit enables LLMs to interact with Salesforce orgs to create, update, search, and convert CRM records, log activities, and fetch enriched relational data. It enforces org validation and returns contextual warnings and IDs to guide agent workflows.
Capabilities
- Unified CRUD and workflow actions for leads, contacts, opportunities, and tasks, including lead-to-deal conversion.
- Rich retrieval and search across accounts, opportunities, related contacts, notes, activities, and paginated results.
- Activity logging and task management to record calls and schedule follow-ups while preserving ownership and status semantics.
- Org-aware validation: picklist checks, conversion guards, and contextual warnings/errors.
OAuth
- provider: salesforce
- scopes: read_account, read_contact, read_lead, read_note, read_opportunity, read_task, read_user, write_contact, write_lead, write_opportunity, write_task
Secrets
- types: api_key, unknown. Examples: SALESFORCE_ORG_SUBDOMAIN (org subdomain), SALESFORCE_MAX_CONCURRENT_REQUESTS (concurrency limit).
Available tools(17)
| Tool name | Description | Secrets | |
|---|---|---|---|
Converts a lead into a Contact (and optionally Account + Opportunity).
This is the canonical lead-to-deal transition in Salesforce. The lead record
is marked as converted and new Contact/Account/Opportunity records are created. | 1 | ||
Creates a contact in Salesforce. | 2 | ||
Creates a new lead in Salesforce.
Use this when someone is a potential customer but isn't yet associated with
an existing account. For contacts under existing accounts, use create_contact. | 1 | ||
Creates a new opportunity (deal) in Salesforce.
Requires an account, name, stage, and close date. Validates stage, lead source,
and type against the org's configured picklist values. | 1 | ||
Creates a task (follow-up, reminder, to-do) in Salesforce.
Use this for future actions like reminders, follow-ups, or to-do items.
For logging a completed phone call, use LogACall instead. | 1 | ||
Gets the account with related info: contacts, leads, notes, calls, opportunities, tasks,
emails, and events (up to 10 items of each type).
An account is an organization (such as a customer, supplier, or partner, though more commonly
a customer). In some Salesforce account setups, an account can also represent a person. | 1 | ||
Searches for accounts in Salesforce and returns them with related info: contacts, leads,
notes, calls, opportunities, tasks, emails, and events (up to 10 items of each type).
An account is an organization (such as a customer, supplier, or partner, though more commonly
a customer). In some Salesforce account setups, an account can also represent a person. | 1 | ||
Gets a single opportunity with enriched related data: contact roles, line items,
open tasks, and recent notes. | 1 | ||
Lists tasks assigned to you in Salesforce with optional filters.
Excludes call logs and email activities — only shows actionable tasks.
Use overdue_only=true to see just tasks past their due date. | 1 | ||
Logs a completed phone call as an activity in Salesforce.
Use this to record calls that already happened. For future follow-up actions,
use CreateTask instead. | 1 | ||
Searches for contacts in Salesforce with optional filters.
At least one filter (query, account_id, or title) must be provided.
Use this to find people at specific accounts or with specific roles. | 1 | ||
Searches for leads in Salesforce with optional filters.
Always excludes already-converted leads. Use owner='me' (default) for your leads,
or owner='all' for all leads in the org. | 1 | ||
Searches for opportunities (deals) in Salesforce with optional filters.
Returns a paginated list of opportunities with key fields like stage, amount,
close date, and associated account. Use owner='me' (default) to see your deals,
or owner='all' for the whole pipeline. | 1 | ||
Updates fields on an existing lead. Only provided fields are changed.
If the lead has already been converted, returns an error with the converted
record IDs so the agent can redirect to the correct contact/account. | 1 | ||
Updates fields on an existing opportunity. Only provided fields are changed.
Returns a success indicator and any warnings (e.g., amount ignored due to line items). | 1 | ||
Updates fields on an existing task. Only provided fields are changed.
Use status='Completed' to mark a task as done. | 1 | ||
Get information about the currently authenticated Salesforce user.
This is typically the first tool called to establish user context.
Returns the user's profile details and organization information. | 1 |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
Salesforce.ConvertLead
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Converts a lead into a Contact (and optionally Account + Opportunity). This is the canonical lead-to-deal transition in Salesforce. The lead record is marked as converted and new Contact/Account/Opportunity records are created.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
lead_id | string | Required | The Salesforce ID of the lead to convert. |
account_id | string | Optional | Existing Account ID to link the converted lead to. If omitted, Salesforce creates a new Account from the lead's Company. |
opportunity_name | string | Optional | Name for the new opportunity created during conversion. |
converted_status | string | Optional | The lead status to set upon conversion. Auto-detected if not provided. |
skip_opportunity | boolean | Optional | If true, no opportunity is created during conversion. Defaults to False. |
Requirements
Output
json— Conversion result with new contact, account, and opportunity IDs.Salesforce.CreateContact
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Creates a contact in Salesforce.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
account_id | string | Required | The ID of the account to create the contact for. |
last_name | string | Required | The last name of the contact. |
first_name | string | Optional | The first name of the contact. |
email | string | Optional | The email of the contact. |
phone | string | Optional | The phone number of the contact. |
mobile_phone | string | Optional | The mobile phone number of the contact. |
title | string | Optional | The title of the contact. E.g. 'CEO', 'Sales Director', 'CTO', etc. |
department | string | Optional | The department of the contact. E.g. 'Marketing', 'Sales', 'IT', etc. |
description | string | Optional | The description of the contact. |
Requirements
Output
json— The created contact.Salesforce.CreateLead
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Creates a new lead in Salesforce. Use this when someone is a potential customer but isn't yet associated with an existing account. For contacts under existing accounts, use create_contact.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
last_name | string | Required | The last name of the lead. |
company | string | Required | The company the lead works for. |
first_name | string | Optional | The first name of the lead. |
email | string | Optional | The lead's email address. |
phone | string | Optional | The lead's phone number. |
title | string | Optional | The lead's job title. |
status | string | Optional | Initial lead status. Must match the org's configured values. Defaults to the org's default status if not provided. |
lead_source | string | Optional | How this lead originated. Must match the org's configured lead source values. |
industry | string | Optional | The lead's industry. |
description | string | Optional | Notes about the lead. |
website | string | Optional | The lead's company website. |
Requirements
Output
json— The created lead ID.Salesforce.CreateOpportunity
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Creates a new opportunity (deal) in Salesforce. Requires an account, name, stage, and close date. Validates stage, lead source, and type against the org's configured picklist values.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
account_id | string | Required | The Salesforce ID of the Account to associate with. |
name | string | Required | A descriptive name for the opportunity. |
stage | string | Required | The initial pipeline stage. Must match one of the org's configured stage names. |
close_date | string | Required | Expected close date in ISO format (YYYY-MM-DD). |
amount | number | Optional | Deal amount in the org's default currency. |
description | string | Optional | Free-text description or notes about the deal. |
next_step | string | Optional | The immediate next action to advance this deal. |
lead_source | string | Optional | How this opportunity originated. Must match the org's configured lead source values. |
type | string | Optional | The opportunity type. Must match the org's configured opportunity type values. |
Requirements
Output
json— The created opportunity ID.Salesforce.CreateTask
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Creates a task (follow-up, reminder, to-do) in Salesforce. Use this for future actions like reminders, follow-ups, or to-do items. For logging a completed phone call, use LogACall instead.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Required | Short description of the task. |
due_date | string | Optional | When the task is due, in ISO format (YYYY-MM-DD). |
priority | string | Optional | Task priority. Allowed values: High, Normal, Low. |
status | string | Optional | Initial task status. Valid values are org-specific. Defaults to the org's default. |
description | string | Optional | Detailed notes or context for the task. |
account_or_opportunity_id | string | Optional | Salesforce ID of the Account or Opportunity this task is related to. |
contact_or_lead_id | string | Optional | Salesforce ID of the Contact or Lead this task is about. |
owner_user_id | string | Optional | Salesforce User ID to assign this task to. Defaults to the current user. |
Requirements
Output
json— The created task ID.Salesforce.GetAccountDataById
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Gets the account with related info: contacts, leads, notes, calls, opportunities, tasks, emails, and events (up to 10 items of each type). An account is an organization (such as a customer, supplier, or partner, though more commonly a customer). In some Salesforce account setups, an account can also represent a person.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
account_id | string | Required | The ID of the account to get data for. |
Requirements
Output
json— The account with related info: contacts, leads, notes, calls, opportunities, tasks, emails, and events (up to 10 items of each type)Salesforce.GetAccountDataByKeywords
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Searches for accounts in Salesforce and returns them with related info: contacts, leads, notes, calls, opportunities, tasks, emails, and events (up to 10 items of each type). An account is an organization (such as a customer, supplier, or partner, though more commonly a customer). In some Salesforce account setups, an account can also represent a person.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
query | string | Required | The query to search for accounts. MUST be longer than one character. It will match the keywords against all account fields, such as name, website, phone, address, etc. E.g. 'Acme' |
limit | integer | Optional | The maximum number of accounts to return. Defaults to 10. Maximum allowed is 10. |
page | integer | Optional | The page number to return. Defaults to 1 (first page of results). |
Requirements
Output
json— The accounts matching the query with related info: contacts, leads, notes, calls, opportunities, tasks, emails, and events (up to 10 items of each type)Salesforce.GetOpportunityById
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Gets a single opportunity with enriched related data: contact roles, line items, open tasks, and recent notes.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
opportunity_id | string | Required | The Salesforce ID of the opportunity. |
Requirements
Output
json— The opportunity with enriched related data.Salesforce.ListMyTasks
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Lists tasks assigned to you in Salesforce with optional filters. Excludes call logs and email activities — only shows actionable tasks. Use overdue_only=true to see just tasks past their due date.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
status | string | Optional | Filter by task status. Values are org-specific. |
due_date_from | string | Optional | Only return tasks due on or after this date (YYYY-MM-DD). |
due_date_to | string | Optional | Only return tasks due on or before this date (YYYY-MM-DD). |
overdue_only | boolean | Optional | If true, only return tasks that are past due and not yet completed. Defaults to False. |
account_or_opportunity_id | string | Optional | Only return tasks linked to this Account or Opportunity. |
limit | integer | Optional | Maximum results to return (1-50). Defaults to 20. |
page | integer | Optional | Page number for pagination. Defaults to 1 (first page). |
Requirements
Output
json— Paginated list of your tasks.Salesforce.LogACall
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Logs a completed phone call as an activity in Salesforce. Use this to record calls that already happened. For future follow-up actions, use CreateTask instead.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Required | Short description of the call. |
description | string | Optional | Call notes, summary, or key takeaways. |
duration_minutes | integer | Optional | How long the call lasted, in minutes. |
account_or_opportunity_id | string | Optional | Salesforce ID of the Account or Opportunity this call was about. |
contact_or_lead_id | string | Optional | Salesforce ID of the Contact or Lead who was on the call. |
call_result | string | Optional | The outcome of the call. |
Requirements
Output
json— The logged call activity ID.Salesforce.SearchContacts
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Searches for contacts in Salesforce with optional filters. At least one filter (query, account_id, or title) must be provided. Use this to find people at specific accounts or with specific roles.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
query | string | Optional | Keyword search against contact name, email, title, and account name. |
account_id | string | Optional | Only return contacts belonging to this Account. |
title | string | Optional | Filter by job title (partial match). |
limit | integer | Optional | Maximum results to return (1-50). Defaults to 20. |
page | integer | Optional | Page number for pagination. Defaults to 1 (first page). |
Requirements
Output
json— Paginated list of contacts matching the search criteria.Salesforce.SearchLeads
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Searches for leads in Salesforce with optional filters. Always excludes already-converted leads. Use owner='me' (default) for your leads, or owner='all' for all leads in the org.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
query | string | Optional | Keyword search against lead name, company, title, and email. |
status | string | Optional | Filter by lead status. Must match one of the org's configured status values. |
owner | string | Optional | Filter by owner. Defaults to the current user. Pass 'all' to search across all owners. |
lead_source | string | Optional | Filter by lead source. Must match the org's configured lead source values. |
created_after | string | Optional | Only return leads created on or after this date (YYYY-MM-DD). |
limit | integer | Optional | Maximum results to return (1-50). Defaults to 20. |
page | integer | Optional | Page number for pagination. Defaults to 1 (first page). |
Requirements
Output
json— Paginated list of leads matching the search criteria.Salesforce.SearchOpportunities
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Searches for opportunities (deals) in Salesforce with optional filters. Returns a paginated list of opportunities with key fields like stage, amount, close date, and associated account. Use owner='me' (default) to see your deals, or owner='all' for the whole pipeline.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
query | string | Optional | Keyword search against opportunity name. |
stage | string | Optional | Filter by pipeline stage. Must match one of the org's configured stage names. |
close_date_from | string | Optional | Only return opportunities closing on or after this date. ISO format (YYYY-MM-DD). |
close_date_to | string | Optional | Only return opportunities closing on or before this date. ISO format (YYYY-MM-DD). |
owner | string | Optional | Filter by owner. Defaults to the current user. Pass 'all' to search across all owners. |
min_amount | number | Optional | Minimum deal amount filter. |
limit | integer | Optional | Maximum results to return (1-50). Defaults to 20. |
page | integer | Optional | Page number for pagination. Defaults to 1 (first page). |
Requirements
Output
json— Paginated list of opportunities matching the search criteria.Salesforce.UpdateLead
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Updates fields on an existing lead. Only provided fields are changed. If the lead has already been converted, returns an error with the converted record IDs so the agent can redirect to the correct contact/account.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
lead_id | string | Required | The Salesforce ID of the lead to update. |
status | string | Optional | New lead status. Must match the org's configured values. |
first_name | string | Optional | Updated first name. |
last_name | string | Optional | Updated last name. |
email | string | Optional | Updated email address. |
phone | string | Optional | Updated phone number. |
title | string | Optional | Updated job title. |
company | string | Optional | Updated company name. |
description | string | Optional | Updated notes. |
lead_source | string | Optional | Updated lead source. Must match the org's configured lead source values. |
rating | string | Optional | Updated lead rating. Allowed values: Hot, Warm, Cold. |
Requirements
Output
json— Update result.Salesforce.UpdateOpportunity
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Updates fields on an existing opportunity. Only provided fields are changed. Returns a success indicator and any warnings (e.g., amount ignored due to line items).
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
opportunity_id | string | Required | The Salesforce ID of the opportunity to update. |
stage | string | Optional | New pipeline stage. Must match one of the org's configured stage names. |
close_date | string | Optional | New expected close date (YYYY-MM-DD). |
amount | number | Optional | Updated deal amount. May be ignored if the opportunity has line items. |
next_step | string | Optional | Updated next action to advance the deal. |
description | string | Optional | Updated description or notes. |
name | string | Optional | Updated opportunity name. |
probability | number | Optional | Override win probability (0-100). |
forecast_category | string | Optional | Override forecast category.PipelineBest CaseCommitMost LikelyOmittedClosed |
Requirements
Output
json— Update result with any warnings.Salesforce.UpdateTask
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Updates fields on an existing task. Only provided fields are changed. Use status='Completed' to mark a task as done.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
task_id | string | Required | The Salesforce ID of the task to update. |
status | string | Optional | New task status. Valid values are org-specific. |
due_date | string | Optional | New due date (YYYY-MM-DD). |
priority | string | Optional | New priority. Allowed values: High, Normal, Low. |
subject | string | Optional | Updated task subject. |
description | string | Optional | Updated description. |
Requirements
Output
json— Update result.Salesforce.WhoAmI
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Does not modify remote state.
May delete or overwrite remote data.
Safe to retry without extra side effects.
Can call out to external systems.
Get information about the currently authenticated Salesforce user. This is typically the first tool called to establish user context. Returns the user's profile details and organization information.
Parameters
No parameters required.
Requirements
Output
json— Current user profile and Salesforce organization information.