# QuickBooks Online: what the assistant can do

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

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

In QuickBooks Online, the assistant can find a customer, add a customer, create an invoice, email an invoice, see who owes you, record a payment, create an estimate, email an estimate, enter a bill, update a customer, look up a price, add a product or service, turn an estimate into an invoice, void an invoice, record an expense, record a paid-on-the-spot sale, attach a photo or file, profit and loss, see who's overdue and top customers. You ask by text, in your own words.

**Status:** Available. How to connect, permissions and limits: [QuickBooks Online](https://asktack.com/docs/integrations/quickbooks/).

| What it does | Asks first? | Undo |
|---|---|---|
| Find a customer | No | – |
| Add a customer | If unsure | 10 minutes |
| Create an invoice | If unsure | 10 minutes |
| Email an invoice | Always | No |
| See who owes you | No | – |
| Record a payment | Always | 10 minutes |
| Create an estimate | If unsure | 10 minutes |
| Email an estimate | Always | No |
| Enter a bill | Always | 10 minutes |
| Update a customer | If unsure | 10 minutes |
| Look up a price | No | – |
| Add a product or service | If unsure | 10 minutes |
| Turn an estimate into an invoice | If unsure | 10 minutes |
| Void an invoice | Always | No |
| Record an expense | Always | 10 minutes |
| Record a paid-on-the-spot sale | Always | 10 minutes |
| Attach a photo or file | If unsure | 10 minutes |
| Profit and loss | No | – |
| See who's overdue | No | – |
| Top customers | 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 customer

Looks up a customer's email, phone and billing address.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **QuickBooks Online API call:** `GET /v3/company/{realmId}/customer/{id}`
- **Action name:** `quickbooks.find_customer`

**Example texts:**

- "what's the Hendersons' email in QuickBooks"
- "look up Acme Plumbing in quickbooks"
- "what's Jane Ruiz's billing address in QuickBooks"

## Add a customer

Adds a new customer with their email, phone and 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.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/customer`
- **Action name:** `quickbooks.create_customer`

**Example texts:**

- "add a customer in quickbooks: Henderson HVAC, john@hendersonhvac.com"
- "new QB customer Jane Ruiz 512-555-0182"
- "create customer Maple Street Dental, 410 Maple St Austin TX 78704"

## Create an invoice

Creates a new draft invoice for a customer, including deposits and progress billing. It isn't emailed until you ask.

- **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.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/invoice`
- **Action name:** `quickbooks.create_invoice`

**Example texts:**

- "Finished the Henderson job — invoice them $325 for the capacitor swap"
- "bill the Garcias $450 for the water heater flush"
- "progress bill the Patel addition, 3rd draw $18,000"

## Email an invoice

Emails an existing invoice to the customer through QuickBooks, including payment reminders.

- **Asks before doing it?** Yes, always. You see exactly what will happen and say yes before it does it.
- **Can be undone?** No. Sent items can't be unsent, which is why it always asks first.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/invoice/{id}/send`
- **Action name:** `quickbooks.send_invoice`

**Example texts:**

- "send invoice 1042 to the customer"
- "send the Henderson invoice"
- "email Jane Ruiz her invoice"

## See who owes you

Lists unpaid invoices with amounts and days overdue, for everyone or one customer.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **QuickBooks Online API call:** `GET /v3/company/{realmId}/query (select * from Invoice where Balance > '0')`
- **Action name:** `quickbooks.list_open_invoices`

**Example texts:**

- "who owes me money?"
- "what does Henderson still owe"
- "any overdue invoices?"

## Record a payment

Records a customer payment and applies it to their open invoice(s).

- **Asks before doing it?** Yes, always. You see exactly what will happen and say yes before it does it.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/payment`
- **Action name:** `quickbooks.record_payment`

**Example texts:**

- "Henderson paid $450 by check #1203"
- "got a $1,200 payment from Jane Ruiz on invoice 1042"
- "mark invoice 1038 paid, Acme sent $325 ACH"

## Create an estimate

Creates a draft estimate (quote) for a customer. It isn't emailed until you ask.

- **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.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/estimate`
- **Action name:** `quickbooks.create_estimate`

**Example texts:**

- "quote the Hendersons $6,800 for a new 3-ton condenser"
- "make an estimate for Jane Ruiz: 40 sq ft tile at $12 and $400 labor"
- "estimate for Acme Plumbing, repipe the upstairs bath, $3,200"

## Email an estimate

Emails an existing estimate to the customer through QuickBooks.

- **Asks before doing it?** Yes, always. You see exactly what will happen and say yes before it does it.
- **Can be undone?** No. Sent items can't be unsent, which is why it always asks first.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/estimate/{id}/send`
- **Action name:** `quickbooks.send_estimate`

**Example texts:**

- "send the estimate to Jane"
- "email estimate 1007 to the Hendersons"
- "send Bob Kim the quote"

## Enter a bill

Enters a bill from a vendor or supplier (something you owe).

- **Asks before doing it?** Yes, always. You see exactly what will happen and say yes before it does it.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/bill`
- **Action name:** `quickbooks.create_bill`

**Example texts:**

- "add a bill from Ferguson for $820 in parts"
- "enter the Home Depot bill, $146.38 for job materials"
- "log a bill from Johnstone Supply invoice 55821, $1,240, due Nov 30"

## Update a customer

Changes a customer's phone, email or billing address. Text “undo” to put the old details back.

- **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.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/customer (sparse update)`
- **Action name:** `quickbooks.update_customer`

**Example texts:**

- "update Garcia's email in quickbooks to maria.garcia@gmail.com"
- "new phone for Henderson HVAC: 512-555-0199"
- "Jane Ruiz moved, her billing address is now 1200 Lamar Blvd, Austin TX 78703"

## Look up a price

Looks up a product or service and replies with its default price and description.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **QuickBooks Online API call:** `GET /v3/company/{realmId}/item/{id}`
- **Action name:** `quickbooks.find_item`

**Example texts:**

- "how much do we charge for an AC tune-up?"
- "what's the price on the capacitor in quickbooks"
- "look up the drain clearing service"

## Add a product or service

Adds a new product or service with a default price, so you can put it on invoices.

- **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.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/item`
- **Action name:** `quickbooks.create_item`

**Example texts:**

- "add a service in quickbooks: duct cleaning, $350"
- "new product 'Honeywell T6 thermostat' at $189"
- "create a QuickBooks item for after-hours call fee, $125"

## Turn an estimate into an invoice

Turns an approved estimate into a draft invoice with the same lines. It isn't emailed until you ask.

- **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.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/invoice (LinkedTxn → the estimate)`
- **Action name:** `quickbooks.convert_estimate`

**Example texts:**

- "Henderson approved the quote, turn it into an invoice"
- "convert estimate 1007 to an invoice"
- "Jane said yes to the estimate — invoice her for it"

## Void an invoice

Voids an unpaid invoice that was a mistake. It stays on record at $0. Always asks first, and can't be undone.

- **Asks before doing it?** Yes, always. You see exactly what will happen and say yes before it does it.
- **Can be undone?** No. Change or remove it in the tool itself.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/invoice?operation=void`
- **Action name:** `quickbooks.void_invoice`

**Example texts:**

- "void invoice 1042"
- "cancel the Henderson invoice, they're not doing the job"
- "void the duplicate invoice for Jane Ruiz"

## Record an expense

Records something you already paid for (card, cash or check) with its category and the account it came from. Always asks first.

- **Asks before doing it?** Yes, always. You see exactly what will happen and say yes before it does it.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/purchase`
- **Action name:** `quickbooks.record_expense`

**Example texts:**

- "paid $146.38 at Home Depot for job materials on the company card"
- "spent 62 on gas at Shell, paid cash"
- "log an expense: $310 Ferguson parts, paid with the Amex"

## Record a paid-on-the-spot sale

Records a job the customer paid for right away (cash, check or card) as a sales receipt, with no invoice. Always asks first.

- **Asks before doing it?** Yes, always. You see exactly what will happen and say yes before it does it.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/salesreceipt`
- **Action name:** `quickbooks.create_sales_receipt`

**Example texts:**

- "garcia paid $300 cash for the drain cleaning"
- "did a service call for Bob Kim, he paid $180 by card on the spot"
- "cash sale to Jane Ruiz: 2 furnace filters at $25"

## Attach a photo or file

Attaches the photo or file you text (a receipt, a signed quote) to an invoice, estimate, expense or bill.

- **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.
- **QuickBooks Online API call:** `POST /v3/company/{realmId}/upload (Attachable linked to the transaction)`
- **Action name:** `quickbooks.attach_file`

**Example texts:**

- "attach this to the home depot expense"
- "put this receipt on the Ferguson bill"
- "add these photos to invoice 1042"

## Profit and loss

Tells you income, expenses and net profit for a month, quarter or year, with your biggest expenses.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **QuickBooks Online API call:** `GET /v3/company/{realmId}/reports/ProfitAndLoss`
- **Action name:** `quickbooks.profit_and_loss`

**Example texts:**

- "how did we do last month?"
- "what's my profit this year"
- "P&L for last quarter"

## See who's overdue

Lists customers with past-due balances, how much each owes and how late it is (1–30, 31–60, 61–90, 90+ days).

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **QuickBooks Online API call:** `GET /v3/company/{realmId}/reports/AgedReceivables`
- **Action name:** `quickbooks.ar_aging`

**Example texts:**

- "who's overdue and by how much"
- "AR aging"
- "how much is more than 60 days past due?"

## Top customers

Lists your customers by sales for a period, biggest first.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **QuickBooks Online API call:** `GET /v3/company/{realmId}/reports/CustomerSales`
- **Action name:** `quickbooks.sales_by_customer`

**Example texts:**

- "top customers this year"
- "who were our biggest customers last year?"
- "sales by customer for last quarter"

---

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