Back to Quaderno in Google Sheets
SheetXAI logo
Quaderno logo
Quaderno · Google Sheets Guide

Bulk Create Transactions in Quaderno From a Google Sheet

2026-05-14
5 min read

The Scenario

You're a Shopify merchant whose accountant processes a weekly order export every Monday. The export comes out of Shopify as a Google Sheet: 200 rows per week, with customer contact IDs in column A, sale amounts in column B, currencies in column C, and order dates in column D. For each row, a Quaderno transaction needs to be created so that the corresponding invoice generates automatically. Right now your accountant is doing this one row at a time.

Your accountant mentioned this to you in passing. What they actually said was: "I do this for about two hours every Monday. I've been doing it for eight months."

The bad version:

  • Open Quaderno, click New Transaction, enter the contact ID, amount, currency, date, click save, note the returned transaction ID, switch to the sheet, paste into column E
  • Repeat 199 more times
  • Notice partway through that some contact IDs in column A refer to guest checkout orders where no Quaderno contact was ever created — those transactions fail silently and the corresponding invoices never generate

Two hours every Monday, times eight months, is not a workflow. It's a liability.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent inside your Google Sheet that reads your order export and creates Quaderno transactions in bulk.

Create a Quaderno transaction for each row in this sheet — column A is contact ID, B is amount, C is currency, D is transaction date — write the returned transaction ID to column E

What You Get

  • One Quaderno transaction is created per row using the contact ID, amount, currency, and date from that row
  • The invoice that Quaderno auto-generates from each transaction is associated with the correct contact and date
  • The returned transaction ID writes to column E as each transaction completes
  • Guest checkout rows where no Quaderno contact exists are flagged in column F rather than failing silently

What If the Data Is Not Quite Ready

Some rows are refunds, not sales — they should be credit transactions

For each row in this sheet, create a Quaderno sale transaction if column E says Sale, or a credit transaction if column E says Refund — use contact ID from A, amount from B, currency from C, date from D — write the transaction ID to column F

I need the generated invoice number written back too, not just the transaction ID

Create a Quaderno transaction for each row — contact ID in A, amount in B, currency in C, date in D — write the transaction ID to column E and the auto-generated invoice number to column F

Guest checkout rows have an email in column F instead of a contact ID in column A — I need to create the contact first

For rows where column A is blank but column F has an email address, create a Quaderno contact for that email address and write the new contact ID to column A; then create the transaction for every row using contact ID from A, amount from B, currency from C, date from D, and write the transaction ID to column E

Process all transactions, handle refunds separately, and compute weekly revenue in one pass

For each row: if column E says Sale, create a Quaderno sale transaction; if column E says Refund, create a credit transaction — use contact ID from A, amount from B, currency from C, date from D; write the transaction ID to column F; then compute total net revenue (sum of sale amounts minus sum of refund amounts) and write it to cell H1

Try It

Get the 7-day free trial of SheetXAI and open the Google Sheet where your weekly Shopify order export lands, then ask it to push every row into Quaderno as a transaction so the invoices generate automatically. Also see: bulk creating invoices from a sheet, and the hub overview of all Quaderno connection methods.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more