Skip to content
Text to sign in
Help & resourcesView Markdown

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.

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.

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.

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”

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”

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”

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”

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?”

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”

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”

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”

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”

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”

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”

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”

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”

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”

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”

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”

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”

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”

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?”

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.