# Salesforce: what the assistant can do

> Everything the assistant can do in Salesforce by text: 23 actions, with example texts, the Salesforce API call behind each one, and which ones ask first or can be undone.

Source: https://asktack.com/docs/actions/salesforce/

In Salesforce, the assistant can find a contact, find an account, find a lead, add a contact, update a contact, add a lead, update a lead, add an account, update an account, put a contact under an account, log a visit, log a call, add a meeting, add a note, create a follow-up task, complete a task, reschedule a task, create an opportunity, move an opportunity, change an opportunity, list open opportunities, list your tasks and catch up on a record. You ask by text, in your own words.

**Status:** Built, not open yet. How to connect, permissions and limits: [Salesforce](https://asktack.com/docs/integrations/salesforce/).

| What it does | Asks first? | Undo |
|---|---|---|
| Find a contact | No | – |
| Find an account | No | – |
| Find a lead | No | – |
| Add a contact | If unsure | 10 minutes |
| Update a contact | If unsure | 10 minutes |
| Add a lead | If unsure | 10 minutes |
| Update a lead | If unsure | 10 minutes |
| Add an account | If unsure | 10 minutes |
| Update an account | If unsure | 10 minutes |
| Put a contact under an account | If unsure | 10 minutes |
| Log a visit | If unsure | 10 minutes |
| Log a call | If unsure | 10 minutes |
| Add a meeting | If unsure | 10 minutes |
| Add a note | If unsure | 10 minutes |
| Create a follow-up task | If unsure | 10 minutes |
| Complete a task | If unsure | 10 minutes |
| Reschedule a task | If unsure | 10 minutes |
| Create an opportunity | If unsure | 10 minutes |
| Move an opportunity | If unsure | 10 minutes |
| Change an opportunity | If unsure | 10 minutes |
| List open opportunities | No | – |
| List your tasks | No | – |
| Catch up on a record | No | – |

Asking first and undo follow the same rules for every tool: see [Confirmations and undo](https://asktack.com/docs/confirmations-and-undo/).

## Find a contact

Looks up a contact or open lead by name, email, phone or company and replies with their phone, email, title and account.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **Salesforce API call:** `GET /services/data/v68.0/search?q=FIND {…} RETURNING Contact(…), Lead(…)`
- **Action name:** `salesforce.find_contact`

**Example texts:**

- "what's Dana Whitfield's number?"
- "email for Mike at Lone Star Hardware?"
- "who is 512-555-0142"

## Find an account

Looks up an account by name, website or phone and replies with its phone, website and city.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **Salesforce API call:** `GET /services/data/v68.0/search?q=FIND {…} RETURNING Account(…)`
- **Action name:** `salesforce.find_account`

**Example texts:**

- "look up Acme Supply in Salesforce"
- "what's the main number for Brazos Builders?"
- "is Lone Star Hardware an account?"

## Find a lead

Looks up an open (not yet converted) lead and replies with their company, phone and email.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **Salesforce API call:** `GET /services/data/v68.0/search?q=FIND {…} RETURNING Lead(…)`
- **Action name:** `salesforce.find_lead`

**Example texts:**

- "find the Patel lead"
- "is Shah Fabrication a lead in Salesforce?"
- "what's the status on the Gulf Coast lead"

## Add a contact

Adds a new contact with their phone, email and title, under the account they work for.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/sobjects/Contact`
- **Action name:** `salesforce.create_contact`

**Example texts:**

- "add Dana Whitfield, purchasing at Acme Supply, 512-555-0142"
- "new contact: Jason Lee jlee@brazosbuilders.com"
- "save Maria Gomez from Gulf Coast Distributors as a contact, her cell is 713-555-0199"

## Update a contact

Changes a contact's email, phone, cell, title or a misspelled name.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `PATCH /services/data/v68.0/sobjects/Contact/{id}`
- **Action name:** `salesforce.update_contact`

**Example texts:**

- "Dana Whitfield's new email is dana.w@acmesupply.com"
- "update Tom Becker's cell to 512-555-0188"
- "Jason Lee is now the purchasing manager"

## Add a lead

Adds a new prospect as a lead with their company, phone and email, and a lead status if you give one.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/sobjects/Lead`
- **Action name:** `salesforce.create_lead`

**Example texts:**

- "new lead: Priya Shah at Shah Fabrication, priya@shahfab.com"
- "add a lead, Carlos Ruiz from Hill Country Plumbing Supply, 512-555-0130"
- "met a prospect at the trade show, Jen Park with Park Builders, put her in as a lead"

## Update a lead

Changes a lead's status (working, nurturing, unqualified…), company, email, phone or title. It doesn't convert the lead.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `PATCH /services/data/v68.0/sobjects/Lead/{id}`
- **Action name:** `salesforce.update_lead`

**Example texts:**

- "mark the Priya Shah lead as working"
- "Carlos Ruiz lead is unqualified, they went with a competitor"
- "update Jen Park's lead email to jen@parkbuilders.com"

## Add an account

Adds a new account (company) with its website, phone and city.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/sobjects/Account`
- **Action name:** `salesforce.create_account`

**Example texts:**

- "add Gulf Coast Distributors as an account, gulfcoastdist.com"
- "new account: Shah Fabrication in Round Rock, 512-555-0130"
- "create an account called Amy's Birds"

## Update an account

Changes an account's name, website, main phone or billing address.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `PATCH /services/data/v68.0/sobjects/Account/{id}`
- **Action name:** `salesforce.update_account`

**Example texts:**

- "Acme Supply's new number is 512-555-0111"
- "update Brazos Builders address to 1400 Industrial Blvd, Round Rock"
- "Lone Star Hardware website is lonestarhw.com"

## Put a contact under an account

Moves an existing contact to an existing account (the person works there now).

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `PATCH /services/data/v68.0/sobjects/Contact/{id}`
- **Action name:** `salesforce.associate_contact_account`

**Example texts:**

- "add Amy to Amy's Birds"
- "Dana Whitfield works at Acme Supply now, link her"
- "associate Tom Becker with Lone Star Hardware"

## Log a visit

Logs how an in-person visit went as a completed activity on a contact, lead, account or opportunity.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/sobjects/Task`
- **Action name:** `salesforce.log_visit`

**Example texts:**

- "log my visit with Acme, they want 200 units"
- "met with Dana at Brazos Builders, she's ready to sign after the board meeting"
- "stopped by Lone Star Hardware this morning, talked to Tom about the spring order"

## Log a call

Logs a phone call that already happened, with what was said, as a call on the record.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/sobjects/Task`
- **Action name:** `salesforce.log_call`

**Example texts:**

- "log a call with Jason Lee: wants samples sent to the Round Rock site"
- "just talked to Dana at Acme on the phone, PO coming Monday"
- "Tom from Lone Star Hardware called me, needs the spring order moved up a week"

## Add a meeting

Puts a meeting on your Salesforce calendar with a contact, account or opportunity, upcoming or just held. No invite is sent.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/sobjects/Event`
- **Action name:** `salesforce.log_meeting`

**Example texts:**

- "set a meeting with Dana Whitfield Tuesday at 2 for an hour"
- "book a pricing review with Brazos Builders Nov 4 at 10am"
- "log a 30 min meeting with Tom at Lone Star this morning at 9, went over the spring order"

## Add a note

Saves a note (shown in the record's Notes list) on a contact, lead, account or opportunity.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/composite (ContentNote + ContentDocumentLink)`
- **Action name:** `salesforce.add_note`

**Example texts:**

- "note on Acme Supply: gate code 4411, ask for Maria at receiving"
- "add a note to Dana Whitfield, prefers texts over calls"
- "note on the Gulf Coast opportunity: pricing approved, waiting on PO"

## Create a follow-up task

Creates a task due on a date, with a reminder, optionally tied to a contact, lead, account or opportunity.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/sobjects/Task`
- **Action name:** `salesforce.create_task`

**Example texts:**

- "remind me to send Acme pricing Friday"
- "urgent: get Shah Fabrication a revised quote by Thursday"
- "follow up with Dana Whitfield next Tuesday at 10"

## Complete a task

Marks one of your open tasks done.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `PATCH /services/data/v68.0/sobjects/Task/{id}`
- **Action name:** `salesforce.complete_task`

**Example texts:**

- "mark the Acme pricing task done"
- "done with the follow up for Dana Whitfield"
- "sent Shah Fabrication their revised quote, check that off"

## Reschedule a task

Moves one of your open tasks to a new due date or time, or changes its priority.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `PATCH /services/data/v68.0/sobjects/Task/{id}`
- **Action name:** `salesforce.update_task`

**Example texts:**

- "push the Acme pricing task to Monday"
- "move my Dana follow-up to Thursday at 3"
- "make the Shah Fabrication quote task high priority"

## Create an opportunity

Creates an opportunity with an amount, stage and expected close date on an account, optionally with a contact.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `POST /services/data/v68.0/composite (Opportunity + OpportunityContactRole)`
- **Action name:** `salesforce.create_opportunity`

**Example texts:**

- "new opportunity for Acme, 200 units, $40k, closing end of November"
- "create a deal with Brazos Builders for the Round Rock job, 85k, proposal stage, close Dec 15"
- "open an opp for Lone Star Hardware spring order $12,500 closing 11/30"

## Move an opportunity

Moves an opportunity to another stage, including closed won or closed lost.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `PATCH /services/data/v68.0/sobjects/Opportunity/{id}`
- **Action name:** `salesforce.update_opportunity_stage`

**Example texts:**

- "move the Acme opportunity to proposal"
- "mark Brazos Builders closed won!"
- "Lone Star Hardware deal is lost, they went with a competitor"

## Change an opportunity

Changes an opportunity's amount, expected close date or owner, and can hand it to a teammate.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **Salesforce API call:** `PATCH /services/data/v68.0/sobjects/Opportunity/{id}`
- **Action name:** `salesforce.update_opportunity`

**Example texts:**

- "Acme opportunity is now 45k"
- "push the Brazos Builders close date to Dec 15"
- "give the Lone Star Hardware opp to Jake"

## List open opportunities

Lists open opportunities with amount, stage and close date, for an account or contact, or all of yours.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **Salesforce API call:** `GET /services/data/v68.0/query?q=SELECT … FROM Opportunity WHERE IsClosed = false …`
- **Action name:** `salesforce.list_opportunities`

**Example texts:**

- "what opportunities do we have open with Acme Supply?"
- "show me my pipeline"
- "Dana Whitfield's open deals"

## List your tasks

Lists your open tasks due by a date (today if you don't say), overdue ones included.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **Salesforce API call:** `GET /services/data/v68.0/query?q=SELECT … FROM Task WHERE OwnerId = … AND IsClosed = false …`
- **Action name:** `salesforce.list_tasks`

**Example texts:**

- "what are my Salesforce tasks today?"
- "what follow-ups do I have this week"
- "anything overdue in Salesforce?"

## Catch up on a record

Shows the latest calls, visits, meetings and notes on a contact, lead, account or opportunity.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **Salesforce API call:** `POST /services/data/v68.0/composite (Task, Event and ContentDocumentLink queries)`
- **Action name:** `salesforce.recent_activity`

**Example texts:**

- "what's the latest with Acme Supply?"
- "when did I last talk to Dana Whitfield"
- "recent activity on the Gulf Coast opportunity"

---

*This list is generated from the code that runs each action, so it's always current.*
