Shopify Daily Sales Report: yesterday's revenue, orders, and best-sellers in your Telegram every morning
An n8n workflow that pulls yesterday's orders from Shopify every morning at 8:00, calculates revenue, order count, average order value, and the top 3 products, then sends a tight one-message report to your Telegram — no dashboard login needed.
- 1
Wake up at 8:00 every morning
Add a
Schedule Triggernode set to 08:00 in your store's timezone. The report covers the previous calendar day, so 8:00 gives Shopify plenty of time to settle late-night orders. - 2
Pull yesterday's orders from Shopify
Add a
Shopifynode with operationGet Many Orders, filtered bycreated_at_min= yesterday 00:00 andcreated_at_max= yesterday 23:59. Connect your store with a custom app access token (Admin API, read_orders scope only — never grant more than you need). - 3
Crunch the numbers
Add a
Codenode that sums net revenue (total minus refunds), counts orders, computes average order value, and tallies quantity per product title to find the top 3 sellers. Everything is plain arithmetic on the order array — no external calls. - 4
Send the report to Telegram
Add a
Telegramnode sending to your private chat. The message reads like:📊 Mon Jun 1 — Revenue: $1,284 (18 orders, AOV $71) — Top: Phone Case x9, Charger x6, Cable x5. Create the bot once with @BotFather and paste the token as an n8n credential.
Frequently asked questions
Does this need any paid tools?
No. Shopify's Admin API is included in every plan, Telegram bots are free, and the whole flow runs on a self-hosted n8n for free (or n8n cloud from $24/mo). There are no AI calls in this recipe, so the running cost is zero.
Can I get the report in Slack or WhatsApp instead?
Yes. Swap the final Telegram node for n8n's Slack node (2 minutes) or a Twilio WhatsApp node. The message text is built in the Code step, so the formatting carries over unchanged.
What about refunds and cancelled orders?
The Shopify node fetches orders with status 'any', and the Code step subtracts refunded totals so your revenue number is net, not gross. Cancelled orders are excluded from the order count.