Reconcile Shopify sales against Zoho Books every night
Every night at 11pm we compare the day's Shopify orders with your Zoho Books invoices and payments, and flag only what does not match.
Every night at 11pm, reconcile the day's Shopify sales against Zoho Books and tell me only what does not match.
Start by pulling the day's orders from Shopify with List Orders, covering the full calendar day in my store timezone. Include financial status so paid, pending, and refunded orders are all covered, and do not filter any of them out before comparing.
Then pull the matching Zoho Books records for the same date range with List Invoices and List Customer Payments.
Compare order by order. Matching is rarely clean, so do not assume a missing record too quickly. A Shopify order number can land in the invoice number, the reference number, or the notes, and some orders are invoiced under a slightly different customer name. Match on the order number first, then fall back to customer email or name together with amount and date before you call something missing.
Surface three specific problems. First, Shopify orders with no corresponding Zoho Books invoice. Second, invoices whose total does not match the order total once shipping, discounts, and tax are accounted for. Third, orders marked paid in Shopify with no customer payment recorded in Zoho Books. For refunded or partially refunded orders, compare against the net amount after the refund rather than skipping them.
Treat variances under 1 in the base currency as rounding and ignore them. If an order is in a different currency from the books, convert before comparing and say so in the issue description rather than guessing silently.
Append one row per discrepancy to my Google Sheets tracker with Append Values, using these columns in order: date, order number, customer, Shopify total, Zoho Books total, variance, issue type.
Then post a Slack summary with Send a Message giving the day's order count, gross sales, total variance, and the discrepancies that actually need a human, largest variance first. Keep it short enough to read on a phone. If everything reconciles, post a short all clear rather than staying silent, so silence is never ambiguous.
Do not create, edit, or delete anything in Shopify or Zoho Books. The only things you write are the spreadsheet rows and the Slack message.
What does this prompt do?
- Pulls the full day of Shopify orders, including paid, pending and refunded ones, and lines them up against your Zoho Books records
- Flags the three problems that quietly cost you money: orders with no invoice, invoices whose total does not match the order, and paid orders with no payment recorded
- Adds one row per discrepancy to your Google Sheets tracker, so issues stay visible until somebody actually fixes them
- Posts a nightly Slack summary with order count, gross sales and total variance, and a short all clear on the nights when everything matches
What do I need to use this?
- A Shopify store with order history
- A Zoho Books account for the organization you invoice from
- A Google Sheets spreadsheet to use as the discrepancy tracker
- A Slack workspace and a channel for the nightly summary
How can I customize it?
- Change the run time or timezone so it fires after your last orders of the day land
- Raise or lower the rounding tolerance if your tax or currency rounding regularly drifts by more than one unit
- Pick which issue types are worth a Slack ping versus quietly logged to the sheet, and tag your bookkeeper on the big ones
FAQs
What counts as a discrepancy?
Will it flag every tiny rounding difference?
What happens on a night when everything matches?
Does this change anything in Shopify or Zoho Books?
What if the same order is invoiced under a slightly different name or number?
Does it handle refunds and partial refunds?
Related templates
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.
Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.
Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.
Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.
Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.
Stop finding revenue leaks a month after they happen.
Set this up once and every night your Shopify sales get checked against your books, with only the real problems landing in Slack.