atmon docs

REFERENCE/TOOLKITS/SALESFORCE.MD

Salesforce

CRM for sales and service. Manage accounts, contacts, leads, opportunities, and cases, log activity, and query with SOQL.

PropertyValue
Slugsalesforce
Definition version0.1.0
Base URLhttps://your-instance.my.salesforce.com
Auth schemesoauth2
Action tools40
By class17 read, 17 write, 6 destructive
Triggers0
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

60 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 40 cases written by hand and 20 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-128/6046.7%
top-851/6085.0%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

oauth2

PropertyValue
Authorization URLhttps://login.salesforce.com/services/oauth2/authorize
Token URLhttps://login.salesforce.com/services/oauth2/token
Default scopesapi, refresh_token
Refresh tokensyes, the refresh daemon renews ahead of expiry

Tools

40 action tools. The catalog-wide slug is salesforce.<tool>, which is what search_tools returns and call_tool takes.

salesforce.create_account

Create a new Salesforce account: a company or organization record in the CRM, distinct from an individual contact or a lead. Use when the user wants to add a business to Salesforce, not a person. Requires a name; industry, phone, website, and billing address are optional.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/Account.

Arguments:

ArgumentTypeRequiredNotes
AnnualRevenuenumbernoAccount's annual revenue.
BillingCitystringnoBilling address city.
BillingCountrystringnoBilling address country.
BillingStatestringnoBilling address state or province.
DescriptionstringnoFree-text notes about the account.
IndustrystringnoIndustry, e.g. "Technology", "Healthcare".
NamestringyesAccount name.
PhonestringnoAccount's main phone number.
WebsitestringnoAccount's website, e.g. "https://acme.com".
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "add a new company to salesforce", "register a business in the crm", "put this organization into salesforce", "log a new client's company", "set up a fresh account record".

salesforce.get_account

Get one Salesforce account's full record by id: name, industry, phone, website, billing address, and revenue. Use when the user names a specific company already in Salesforce. For finding an account by name use search_accounts instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/sobjects/Account/{{params.account_id}}.

Arguments:

ArgumentTypeRequiredNotes
account_idstringyesSalesforce account record id (starts with "001").
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
AnnualRevenuenumber
BillingCitystring
BillingCountrystring
BillingStatestring
CreatedDatestring (date-time)
Idstring
Industrystring
LastModifiedDatestring (date-time)
Namestring
OwnerIdstring
Phonestring
Websitestring

Also retrieved by: "pull up this company's salesforce record", "show me what we have on this account", "look up an organization's details in the crm", "check a business's file in salesforce".

salesforce.update_account

Update fields on an existing Salesforce account: name, industry, phone, website, billing address, or revenue. Use when the user wants to edit or correct a company's record, not create a new one.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /services/data/v59.0/sobjects/Account/{{params.account_id}}.

Arguments:

ArgumentTypeRequiredNotes
AnnualRevenuenumbernoAccount's annual revenue.
BillingCitystringnoBilling address city.
BillingStatestringnoBilling address state or province.
IndustrystringnoIndustry, e.g. "Technology", "Healthcare".
NamestringnoAccount name.
PhonestringnoAccount's main phone number.
WebsitestringnoAccount's website.
account_idstringyesSalesforce account record id to edit.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Also retrieved by: "fix the industry on this company in salesforce", "change an account's phone number", "edit a business's billing address on file", "correct info on a company record".

salesforce.delete_account

Permanently delete a Salesforce account record. Use when the user wants to remove, purge, or erase a company from Salesforce entirely. This also deletes or orphans the account's related contacts and opportunities depending on the org's cascade settings. Irreversible once the recycle bin retention period passes.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /services/data/v59.0/sobjects/Account/{{params.account_id}}.

Arguments:

ArgumentTypeRequiredNotes
account_idstringyesSalesforce account record id to delete.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Also retrieved by: "wipe this company from salesforce for good", "purge an account entirely", "get rid of an organization's record permanently", "erase a business from the crm".

salesforce.search_accounts

Search Salesforce accounts by name. Use when the user describes a company rather than naming a known account id, for example finding an organization before creating a contact or opportunity under it. Returns up to 25 matches via a SOQL name search.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
querystringyesFree text to match against the account name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
records[].Idstring
records[].Industrystring
records[].Namestring
records[].Phonestring
records[].Websitestring
totalSizeinteger

Also retrieved by: "find a business by its name in salesforce", "look up a company account", "hunt down which organization this is", "who do we have on file matching this company name".

salesforce.create_contact

Create a new Salesforce contact: a person associated with an account, distinct from a lead that has not yet become a customer. Use when the user wants to add a person to Salesforce who already belongs to a known company. Requires a last name; email, phone, title, and the parent account are optional.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/Contact.

Arguments:

ArgumentTypeRequiredNotes
AccountIdstringnoSalesforce account id this contact belongs to. Find one with search_accounts.
DepartmentstringnoDepartment the contact works in.
EmailstringnoContact's email address.
FirstNamestringnoContact's first name.
LastNamestringyesContact's last name.
PhonestringnoContact's phone number.
TitlestringnoContact's job title.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "add a new person to salesforce", "register someone tied to an existing account", "put this person's details into the crm", "log a new point of contact for a client".

salesforce.get_contact

Get one Salesforce contact's full record by id: name, email, phone, title, department, and the account they belong to. Use when the user names a specific person already in Salesforce.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/sobjects/Contact/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idstringyesSalesforce contact record id (starts with "003").
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
AccountIdstring
CreatedDatestring (date-time)
Departmentstring
Emailstring
FirstNamestring
Idstring
LastNamestring
Phonestring
Titlestring

Also retrieved by: "pull up someone's salesforce profile", "look up this person in the crm", "show me what we have on this contact", "check somebody's file in salesforce".

salesforce.update_contact

Update fields on an existing Salesforce contact: name, email, phone, title, or department. Use when the user wants to edit or correct a person's record, not create a new one.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /services/data/v59.0/sobjects/Contact/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
EmailstringnoContact's email address.
FirstNamestringnoContact's first name.
LastNamestringnoContact's last name.
PhonestringnoContact's phone number.
TitlestringnoContact's job title.
contact_idstringyesSalesforce contact record id to edit.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Also retrieved by: "fix this person's phone number in salesforce", "change someone's job title on file", "edit a contact's email address", "correct details on a person's record".

salesforce.delete_contact

Permanently delete a Salesforce contact record. Use when the user wants to remove, purge, or erase a person from Salesforce entirely. This does not delete the account the contact belonged to. Irreversible once the recycle bin retention period passes.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /services/data/v59.0/sobjects/Contact/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idstringyesSalesforce contact record id to delete.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Also retrieved by: "wipe this person from salesforce for good", "purge someone's contact record entirely", "get rid of this person permanently", "erase a contact from the crm".

salesforce.search_contacts

Search Salesforce contacts by name or email. Use when the user describes a person rather than naming a known contact id. Returns up to 25 matches via a SOQL name and email search.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
querystringyesFree text to match against the contact's name or email.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
records[].AccountIdstring
records[].Emailstring
records[].FirstNamestring
records[].Idstring
records[].LastNamestring
totalSizeinteger

Also retrieved by: "find someone by email in salesforce", "look up a contact by name", "who do we have on file matching this person", "hunt down a contact's record".

salesforce.create_lead

Create a new Salesforce lead: a person or company that has not yet been qualified as a customer, distinct from a contact already tied to an account. Use when the user wants to add a prospect from a form fill, a trade show, or a cold inbound inquiry. Requires a last name and a company name.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/Lead.

Arguments:

ArgumentTypeRequiredNotes
CompanystringyesCompany the lead works for.
EmailstringnoLead's email address.
FirstNamestringnoLead's first name.
LastNamestringyesLead's last name.
LeadSourcestringnoWhere the lead came from, e.g. "Web", "Trade Show", "Referral".
PhonestringnoLead's phone number.
StatusstringnoLead status, e.g. "Open - Not Contacted", "Working", "Qualified".
TitlestringnoLead's job title.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "add a new prospect to salesforce", "register someone who filled out a form", "log a cold inquiry as a lead", "put a trade show contact into the pipeline".

salesforce.get_lead

Get one Salesforce lead's full record by id: name, company, email, phone, status, and source. Use when the user names a specific prospect already in Salesforce.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/sobjects/Lead/{{params.lead_id}}.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
lead_idstringyesSalesforce lead record id (starts with "00Q").

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
Companystring
Emailstring
FirstNamestring
Idstring
IsConvertedboolean
LastNamestring
LeadSourcestring
Phonestring
Statusstring

Also retrieved by: "pull up this prospect's salesforce record", "show me what we know about this lead", "look up a lead's details in the crm".

salesforce.update_lead

Update fields on an existing Salesforce lead: name, company, email, phone, status, or source. Use when the user wants to move a prospect through qualification, for example marking it "Working" after a first call, without converting it yet.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /services/data/v59.0/sobjects/Lead/{{params.lead_id}}.

Arguments:

ArgumentTypeRequiredNotes
CompanystringnoCompany the lead works for.
EmailstringnoLead's email address.
LeadSourcestringnoWhere the lead came from.
PhonestringnoLead's phone number.
StatusstringnoLead status, e.g. "Working", "Qualified", "Unqualified".
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
lead_idstringyesSalesforce lead record id to edit.

Also retrieved by: "mark this prospect as working", "change a lead's status in salesforce", "edit a prospect's contact details", "move a lead further along qualification".

salesforce.delete_lead

Permanently delete a Salesforce lead record. Use when the user wants to remove, purge, or erase a prospect from Salesforce entirely, for example a spam or duplicate submission. For a lead that already became a customer use convert_lead instead of deleting it. Irreversible once the recycle bin retention period passes.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /services/data/v59.0/sobjects/Lead/{{params.lead_id}}.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
lead_idstringyesSalesforce lead record id to delete.

Also retrieved by: "wipe this prospect from salesforce for good", "purge a spam lead entirely", "get rid of a duplicate submission", "erase a lead permanently".

salesforce.convert_lead

Convert a qualified Salesforce lead into an account, a contact, and optionally an opportunity. Use when the user says a prospect is ready to become a customer or has signed. Irreversible: the lead record becomes permanently converted and stops appearing as an open lead.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/actions/standard/convertLead.

Arguments:

ArgumentTypeRequiredNotes
converted_statusstringnoLead status to record on conversion, e.g. "Closed - Converted".
do_not_create_opportunitybooleannoTrue to skip creating an opportunity from this lead. Defaults to false, which creates one.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
lead_idstringyesSalesforce lead record id to convert.

Also retrieved by: "turn this prospect into a customer", "promote a qualified lead to an account and contact", "this prospect signed, make it official in salesforce", "graduate a lead into a real opportunity".

salesforce.search_leads

Search Salesforce leads by name or company. Use when the user describes a prospect rather than naming a known lead id. Returns up to 25 matches via a SOQL name and company search.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
querystringyesFree text to match against the lead's name or company.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
records[].Companystring
records[].FirstNamestring
records[].Idstring
records[].LastNamestring
records[].Statusstring
totalSizeinteger

Also retrieved by: "find a prospect by company name", "look up a lead in the pipeline", "hunt down a specific inquiry".

salesforce.create_opportunity

Create a new Salesforce opportunity: a deal or sale moving through a pipeline toward a close date. Use when the user wants to open, start, or log a sale, not a support case or a marketing lead. Requires a name, a pipeline stage, and an expected close date.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/Opportunity.

Arguments:

ArgumentTypeRequiredNotes
AccountIdstringnoSalesforce account id this opportunity belongs to.
AmountnumbernoDeal value.
CloseDatestring (date)yesExpected close date, YYYY-MM-DD.
DescriptionstringnoFree-text notes about the opportunity.
NamestringyesOpportunity's name, e.g. "Acme Corp - Annual Renewal".
StageNamestringyesPipeline stage, e.g. "Prospecting", "Negotiation/Review", "Closed Won".
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "open a new deal in salesforce", "start tracking a potential sale", "log a piece of revenue in the pipeline", "kick off a new opportunity for this account".

salesforce.get_opportunity

Get one Salesforce opportunity's full record by id: name, stage, amount, close date, and the account it belongs to. Use when the user names a specific deal or sale.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/sobjects/Opportunity/{{params.opportunity_id}}.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
opportunity_idstringyesSalesforce opportunity record id (starts with "006").

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
AccountIdstring
Amountnumber
CloseDatestring (date)
Idstring
IsClosedboolean
IsWonboolean
Namestring
Probabilitynumber
StageNamestring

Also retrieved by: "check the status of this deal", "pull up details on a sale in progress", "show me where this opportunity stands".

salesforce.update_opportunity

Update fields on an existing Salesforce opportunity: name, stage, amount, or close date. Use when the user wants to advance, reprice, or reschedule a deal, for example moving it to the next pipeline stage or marking it Closed Won.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /services/data/v59.0/sobjects/Opportunity/{{params.opportunity_id}}.

Arguments:

ArgumentTypeRequiredNotes
AmountnumbernoDeal value.
CloseDatestring (date)noExpected or actual close date, YYYY-MM-DD.
NamestringnoOpportunity's name.
StageNamestringnoPipeline stage to move the opportunity to.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
opportunity_idstringyesSalesforce opportunity record id to edit.

Also retrieved by: "move this deal to the next stage", "reprice a sale in the pipeline", "push back the close date on this opportunity", "mark this deal as won".

salesforce.delete_opportunity

Permanently delete a Salesforce opportunity record. Use when the user wants to remove a deal from the pipeline entirely, rather than mark it Closed Lost. Irreversible once the recycle bin retention period passes.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /services/data/v59.0/sobjects/Opportunity/{{params.opportunity_id}}.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
opportunity_idstringyesSalesforce opportunity record id to delete.

Also retrieved by: "scrap this deal for good", "remove a sale from the pipeline entirely", "wipe this opportunity from salesforce".

salesforce.search_opportunities

Search Salesforce opportunities by name. Use when the user describes a deal rather than naming a known opportunity id. Returns up to 25 matches via a SOQL name search.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
querystringyesFree text to match against the opportunity name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
records[].Amountnumber
records[].Idstring
records[].Namestring
records[].StageNamestring
totalSizeinteger

Also retrieved by: "find a deal by name", "look up a sale in the pipeline", "hunt down a specific opportunity".

salesforce.create_case

Create a new Salesforce case: a customer service or support issue tracked against an account or contact. Use when the user wants to open, file, or log a customer support problem in Salesforce, not an engineering bug in Jira or Linear. Requires a subject.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/Case.

Arguments:

ArgumentTypeRequiredNotes
AccountIdstringnoSalesforce account id this case is filed against.
ContactIdstringnoSalesforce contact id who reported the issue.
DescriptionstringnoCase body describing the issue.
OriginstringnoWhere the case came from, e.g. "Email", "Phone", "Web".
PrioritystringnoPriority, e.g. "Low", "Medium", "High".
StatusstringnoCase status, e.g. "New", "Working", "Closed".
SubjectstringyesOne-line case subject.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "open a customer support case in salesforce", "file a service issue for a client", "log a complaint from a customer", "start a help desk case in the crm".

salesforce.get_case

Get one Salesforce case's full record by id: subject, description, status, priority, and the account or contact it's filed against. Use when the user names a specific support case.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/sobjects/Case/{{params.case_id}}.

Arguments:

ArgumentTypeRequiredNotes
case_idstringyesSalesforce case record id (starts with "500").
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
AccountIdstring
CaseNumberstring
ContactIdstring
Descriptionstring
Idstring
Originstring
Prioritystring
Statusstring
Subjectstring

Also retrieved by: "pull up a customer's support case", "check the status of a service issue", "show me what this complaint says".

salesforce.update_case

Update fields on an existing Salesforce case: subject, description, status, or priority. Use when the user wants to move a support case forward, escalate it, or close it out.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /services/data/v59.0/sobjects/Case/{{params.case_id}}.

Arguments:

ArgumentTypeRequiredNotes
DescriptionstringnoCase body describing the issue.
PrioritystringnoPriority, e.g. "Low", "Medium", "High".
StatusstringnoCase status, e.g. "Working", "Escalated", "Closed".
SubjectstringnoOne-line case subject.
case_idstringyesSalesforce case record id to edit.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Also retrieved by: "move a support case to the next stage", "change the priority on a service issue", "escalate a customer complaint", "close out a support case".

salesforce.delete_case

Permanently delete a Salesforce case record. Use when the user wants to remove a support case from Salesforce entirely, for example a duplicate or a test case, rather than close it. Irreversible once the recycle bin retention period passes.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /services/data/v59.0/sobjects/Case/{{params.case_id}}.

Arguments:

ArgumentTypeRequiredNotes
case_idstringyesSalesforce case record id to delete.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Also retrieved by: "remove a support case from salesforce for good", "purge a duplicate service issue", "wipe a test case entirely".

salesforce.search_cases

Search Salesforce cases by subject. Use when the user describes a customer issue rather than naming a known case number or id. Returns up to 25 matches via a SOQL subject search.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
querystringyesFree text to match against the case subject.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
records[].CaseNumberstring
records[].Idstring
records[].Prioritystring
records[].Statusstring
records[].Subjectstring
totalSizeinteger

Also retrieved by: "find a support case by subject", "look up a service issue", "hunt down a customer complaint".

salesforce.create_task

Create a Salesforce task: a to-do reminder for a sales or service rep, optionally linked to a record such as a contact, lead, or opportunity. Use when the user wants a follow-up reminder in Salesforce, distinct from a Jira ticket or a Linear issue. Requires a subject.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/Task.

Arguments:

ArgumentTypeRequiredNotes
ActivityDatestring (date)noDue date, YYYY-MM-DD.
DescriptionstringnoLonger task detail or instructions.
PrioritystringnoPriority, e.g. "Low", "Normal", "High".
SubjectstringyesOne-line task title.
WhatIdstringnoSalesforce account, opportunity, or case id this task relates to.
WhoIdstringnoSalesforce contact or lead id this task is about.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "set a follow-up reminder in salesforce", "schedule a to-do on this account", "remind me to check back on a lead", "put a reminder on my plate for this deal".

salesforce.update_task

Update a Salesforce task's subject, due date, priority, or status. Use when the user wants to reschedule a follow-up or mark it done.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /services/data/v59.0/sobjects/Task/{{params.task_id}}.

Arguments:

ArgumentTypeRequiredNotes
ActivityDatestring (date)noDue date, YYYY-MM-DD.
PrioritystringnoPriority, e.g. "Low", "Normal", "High".
StatusstringnoTask status, e.g. "Not Started", "In Progress", "Completed".
SubjectstringnoOne-line task title.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
task_idstringyesSalesforce task record id to edit.

Also retrieved by: "mark a follow-up as done", "push back a reminder's due date", "reschedule a rep's to-do".

salesforce.list_tasks

List open Salesforce tasks, most recently created first. Use for browsing a rep's outstanding to-dos rather than looking for one specific task. Returns up to 25 tasks via SOQL.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
records[].ActivityDatestring (date)
records[].Idstring
records[].Prioritystring
records[].Statusstring
records[].Subjectstring
totalSizeinteger

Also retrieved by: "show me what's on my plate today in salesforce", "what follow-ups are still open", "browse my outstanding reminders".

salesforce.create_event

Create a Salesforce calendar event: a scheduled meeting or call tied to a start and end time, optionally linked to a contact, lead, or account. Use when the user wants to book time on the calendar, not log that a call already happened (use log_call in a phone system toolkit for that). Requires a subject, start time, and end time.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/Event.

Arguments:

ArgumentTypeRequiredNotes
DescriptionstringnoMeeting agenda or notes.
EndDateTimestring (date-time)yesEvent end time, RFC 3339.
LocationstringnoMeeting location or video call link.
StartDateTimestring (date-time)yesEvent start time, RFC 3339.
SubjectstringyesOne-line event title.
WhatIdstringnoSalesforce account or opportunity id this event relates to.
WhoIdstringnoSalesforce contact or lead id this event is with.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "book a meeting on the salesforce calendar", "schedule a call with this contact", "set up time with a prospect", "put a meeting on the calendar tied to this deal".

salesforce.list_events

List upcoming Salesforce calendar events, soonest first. Use for browsing what's scheduled rather than looking for one specific meeting. Returns up to 25 events via SOQL.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
records[].EndDateTimestring (date-time)
records[].Idstring
records[].Locationstring
records[].StartDateTimestring (date-time)
records[].Subjectstring
totalSizeinteger

Also retrieved by: "what's on my calendar this week", "show me upcoming meetings in salesforce", "browse scheduled calls".

salesforce.create_note

Log a note attached to a Salesforce record: free-text commentary on an account, contact, lead, opportunity, or case. Use when the user wants to jot down context in Salesforce, not send a message. Requires a title and the record to attach it to.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/Note.

Arguments:

ArgumentTypeRequiredNotes
BodystringnoThe note's text.
ParentIdstringyesId of the account, contact, lead, opportunity, or case this note attaches to.
TitlestringyesOne-line note title.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "jot down some context on this account", "leave a comment on a crm record", "save some background on this lead", "write down what happened on a call".

salesforce.attach_file

Upload a file and attach it to a Salesforce record: a contract, a screenshot, or any document tied to an account, contact, opportunity, or case. Use when the user wants to add a file to a record in Salesforce, not send it as an email attachment. Content is base64-encoded.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/ContentVersion.

Arguments:

ArgumentTypeRequiredNotes
PathOnClientstringyesFile name with extension, e.g. "contract.pdf".
TitlestringyesFile title as it appears in Salesforce.
VersionDatastringyesFile content, base64-encoded.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
record_idstringyesId of the account, contact, opportunity, or case to attach the file to.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "upload a contract to this record", "attach a document to this account", "add a file to this opportunity in salesforce", "drop a screenshot onto this case".

salesforce.add_contact_to_campaign

Add a Salesforce contact or lead to a marketing campaign as a campaign member. Use when the user wants to build an audience or enroll someone in a campaign, not add them to Salesforce itself.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services/data/v59.0/sobjects/CampaignMember.

Arguments:

ArgumentTypeRequiredNotes
CampaignIdstringyesSalesforce campaign id to enroll into.
ContactIdstringnoSalesforce contact id to add. Provide this or LeadId, not both.
LeadIdstringnoSalesforce lead id to add. Provide this or ContactId, not both.
StatusstringnoCampaign member status, e.g. "Sent", "Responded".
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
errorsarray of string
idstring
successboolean

Also retrieved by: "enroll a contact in a marketing campaign", "add this lead to a campaign audience", "put someone into an email blast list".

salesforce.remove_contact_from_campaign

Remove a Salesforce contact or lead from a campaign by campaign member id, without deleting the contact, lead, or campaign itself. Use when the user wants to unenroll someone from a campaign audience.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls DELETE /services/data/v59.0/sobjects/CampaignMember/{{params.campaign_member_id}}.

Arguments:

ArgumentTypeRequiredNotes
campaign_member_idstringyesSalesforce campaign member id to remove, from list_campaign_members.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Also retrieved by: "take someone off a campaign", "unenroll a contact from a marketing list", "drop a lead from a campaign audience".

salesforce.list_campaign_members

List the contacts and leads enrolled in a Salesforce campaign. Use when the user asks who is in a campaign, or before removing a member by id. Returns up to 200 members via SOQL.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesSalesforce campaign id to list members of.
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
records[].ContactIdstring
records[].Idstring
records[].LeadIdstring
records[].Statusstring
totalSizeinteger

Also retrieved by: "who's enrolled in this campaign", "show everyone signed up for this marketing push", "browse a campaign's audience".

salesforce.run_soql_query

Run a raw SOQL query against Salesforce and return the matching records. Use for a request that names specific fields, filters, or sort order the per-object search tools don't cover, or that spans a relationship between objects. Requires SOQL syntax knowledge; prefer search_accounts, search_contacts, search_leads, search_opportunities, or search_cases for a plain-language lookup.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/query.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
querystringyesFull SOQL query, e.g. "SELECT Id, Name FROM Account WHERE Industry = 'Technology'".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
doneboolean
recordsarray of object
totalSizeinteger

Also retrieved by: "run a custom query against salesforce", "pull records with a specific filter", "write a soql query for this".

salesforce.search_records

Run a raw SOSL search across multiple Salesforce object types at once, for example finding a name that could be an account, a contact, or a lead without knowing which. Use when the user's search spans object types; for a search scoped to one kind of record use search_accounts, search_contacts, search_leads, search_opportunities, or search_cases instead. Requires SOSL syntax knowledge.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/search.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
soslstringyesFull SOSL search, e.g. "FIND {Acme} IN ALL FIELDS RETURNING Account(Id, Name), Contact(Id, Name, Email)".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
searchRecordsarray of object

Also retrieved by: "search across every object for this name", "find this person or company anywhere in salesforce", "do a global search across accounts and contacts".

salesforce.describe_object

Get the field and relationship schema for a Salesforce object: which fields exist, their types, and whether they're required or picklist. Use when the user asks what fields an object has, or before building a SOQL query or a create call against a custom object this toolkit doesn't model by name.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/data/v59.0/sobjects/{{params.object_name}}/describe.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".
object_namestringyesAPI name of the object, e.g. "Account", "Case", "My_Custom_Object__c".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
fieldsarray of object
fields[].labelstring
fields[].namestring
fields[].nillableboolean
fields[].picklistValuesarray of object
fields[].picklistValues[].labelstring
fields[].picklistValues[].valuestring
fields[].typestring
labelstring
namestring

Also retrieved by: "what fields does this salesforce object have", "show me the schema for this object", "list the picklist values on this field".

salesforce.get_current_user

Get the identity of the Salesforce user this connection is authenticated as: name, email, user id, and organization id. Use when the user asks who they're logged in as, or which Salesforce org a connection points at, before running a query or making a change.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/oauth2/userinfo.

Arguments:

ArgumentTypeRequiredNotes
instancestringyesSalesforce instance hostname (My Domain) for the connected org, e.g. "acmecorp.my.salesforce.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
emailstring
namestring
organization_idstring
preferred_usernamestring
user_idstring

Also retrieved by: "who am i logged in as in salesforce", "what org is this connection pointed at", "show my salesforce user id".