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
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
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.