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.
