WooCommerce + Slack: weekly sales snapshot, no scramble
Your week ends, someone asks “how did we do?”, and suddenly you’re exporting WooCommerce reports, cross-checking last month, then trying to explain the story in Slack without sounding unsure.
This WooCommerce Slack snapshot automation hits store owners first. But marketing leads and ops folks feel it too, because everyone wants the numbers in one place and at the same time. The outcome is simple: a consistent weekly performance snapshot that shows revenue, orders, trend direction, and top SKU without you touching a report.
Below you’ll see how the workflow runs, what it sends, and how to adapt it for your store’s reporting rhythm.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: WooCommerce + Slack: weekly sales snapshot, no scramble
flowchart LR
subgraph sg0["Weekly Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Weekly Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Global Configuration", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Calculate Date Ranges"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/wooCommerce.svg' width='40' height='40' /></div><br/>Fetch Current Week Sales"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/wooCommerce.svg' width='40' height='40' /></div><br/>Fetch Last Month Sales"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/wooCommerce.svg' width='40' height='40' /></div><br/>Fetch Last Year Sales"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Generate Trend Report"]
n7@{ icon: "mdi:database", form: "rounded", label: "Log to Google Sheets", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Slack Message"]
n0 --> n1
n1 --> n2
n2 --> n3
n5 --> n6
n6 --> n7
n6 --> n8
n4 --> n5
n3 --> n4
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n7 database
class n2,n6 code
classDef customIcon fill:none,stroke:none
class n2,n3,n4,n5,n6,n8 customIcon
The Problem: Weekly sales reporting turns into a scramble
Weekly reporting sounds small until you’re the person responsible for it. WooCommerce can give you numbers, sure, but getting “this week vs last month vs last year” into a clean summary usually means multiple exports, manual date windows, and at least one “wait, is that gross or net?” moment. Then comes the Slack post. If you type it by hand, it’s inconsistent. If you paste a messy report, nobody reads it. And if you skip a week, you lose the ability to spot trend changes early, which is when fixes are cheapest.
It adds up fast. Here’s where it breaks down in real teams.
- Pulling three time windows (current, prior month, prior year) usually costs about an hour once you include checking filters and refunds.
- The “trend” message gets subjective, so leadership hears opinions instead of the same math every week.
- Top SKU changes get missed until inventory is already tight and fulfillment is reacting.
- Without a log, you can’t look back cleanly, which means month-end turns into archaeology.
The Solution: Scheduled WooCommerce trend report sent to Slack (and logged)
This workflow runs automatically on a weekly schedule and creates a “single source of truth” snapshot that your team can trust. It starts by setting global reporting rules (things like store settings and formatting), then calculates the date windows for the current week plus comparison periods. Next, it pulls orders data from WooCommerce three times: current week, prior month, and prior year. After that, it computes trend deltas for revenue and order count, identifies the top-performing SKU, and builds a strict JSON summary designed to look professional in Slack. Finally, it logs the same snapshot to Google Sheets for simple history tracking, and posts the formatted update to your Slack channel.
The workflow starts with a weekly schedule trigger. From there, WooCommerce provides the raw order data for each comparison window, and n8n handles the calculations and formatting. At the end, you get two outputs: a clean Slack update for visibility and a Google Sheets row you can filter, chart, and reference later.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you send a weekly performance update to two places: a Slack channel and a “weekly metrics” spreadsheet. Manually, you’ll usually spend about 20 minutes pulling the current week, another 20 minutes checking last month, another 20 minutes for last year, then 10 minutes writing a clean Slack message and 10 minutes logging it. That’s around 90 minutes most weeks. With this workflow, the “work” is basically zero after setup: the schedule runs, the workflow processes for a few minutes, and the snapshot shows up in Slack while the same numbers land in Google Sheets automatically.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- WooCommerce for order and revenue data pulls.
- Slack to post the weekly snapshot to a channel.
- Google Sheets to log weekly history for comparisons.
Skill level: Intermediate. You’ll connect accounts, confirm what WooCommerce fields you want, and sanity-check the Slack formatting once.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A weekly schedule kicks it off. The workflow runs at the time you choose (for example, Monday morning before standup) so the update is waiting for you, not the other way around.
Date windows get computed automatically. n8n calculates the current reporting window, then builds matching windows for the prior month and prior year so the comparisons are consistent.
WooCommerce data is pulled three times and summarized. It retrieves orders for each window, then computes revenue and order-count changes, determines the direction of the trend, and finds the top-selling SKU for the period. This is the part that removes the “did we include the right days?” stress.
Slack gets the snapshot and Google Sheets gets the log. A structured message posts to your Slack channel in a clean format (no fluff), and the same snapshot is appended to a Google Sheets row for later filtering and charting.
You can easily modify the schedule frequency to daily or biweekly based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
Set the weekly schedule that kicks off the sales trend monitoring workflow.
- Add and open Weekly Schedule Start.
- Set the schedule rule to run weekly with Trigger Day set to
1and Trigger Hour set to9. - Ensure Weekly Schedule Start connects to Global Settings Map.
- Leave Flowpast Branding as-is; it’s a visual note for documentation and does not affect execution.
Step 2: Connect WooCommerce and Global Settings
Define global variables and connect WooCommerce credentials for the order retrieval steps.
- Open Global Settings Map and set trend_threshold to
5. - Set teams_webhook_url to
[CONFIGURE_YOUR_TOKEN]and google_sheet_id to[YOUR_ID]. - Open Retrieve Current Week Orders and confirm Resource is
order, Operation isgetAll, and Return All is enabled. - Set After to
={{ $('Compute Date Windows').first().json.current.after }}and Before to={{ $('Compute Date Windows').first().json.current.before }}, and set Status tocompleted. - Credential Required: Connect your
wooCommerceApicredentials in Retrieve Current Week Orders, Retrieve Prior Month Orders, and Retrieve Prior Year Orders.
Step 3: Set Up Date Windows and Trend Processing
Generate date ranges and compute the trend summary from current, prior month, and prior year orders.
- Open Compute Date Windows and keep the provided JavaScript that builds
current,lastMonth,lastQuarter, andlastYearranges. - In Retrieve Prior Month Orders, set After to
={{ $('Compute Date Windows').first().json.lastMonth.after }}and Before to={{ $('Compute Date Windows').first().json.lastMonth.before }}. - In Retrieve Prior Year Orders, set After to
={{ $('Compute Date Windows').first().json.lastYear.after }}and Before to={{ $('Compute Date Windows').first().json.lastYear.before }}. - Open Build Trend Summary and confirm it references Global Settings Map, Retrieve Current Week Orders, Retrieve Prior Month Orders, and Retrieve Prior Year Orders.
- Verify the execution chain: Compute Date Windows → Retrieve Current Week Orders → Retrieve Prior Month Orders → Retrieve Prior Year Orders → Build Trend Summary.
Step 4: Configure Output Destinations
Send the trend summary to Google Sheets and Slack, with parallel execution after the summary is built.
- Open Append Sheet Log and set Operation to
appendand Sheet Name toSheet1. - Set Document ID to
={{ $('Global Settings Map').first().json.google_sheet_id }}. - Post Slack Update should use the provided message template with dynamic fields like
{{ $json.revenue.current }}and{{ $json.orders.vsYear.trend }}. - Set Channel to
[YOUR_ID]and keep Include Link to Workflow set tofalse. - Credential Required: Connect your
slackApicredentials in Post Slack Update. - Confirm the parallel execution: Build Trend Summary outputs to both Append Sheet Log and Post Slack Update in parallel.
Step 5: Test and Activate Your Workflow
Run a manual test to validate order retrieval, trend calculations, and notifications before going live.
- Click Execute Workflow to run a manual test from Weekly Schedule Start.
- Verify Retrieve Current Week Orders, Retrieve Prior Month Orders, and Retrieve Prior Year Orders return orders without errors.
- Confirm Build Trend Summary outputs fields like
revenue.current,orders.vsMonth.percent, andtopSku. - Check that Append Sheet Log appends a new row to
Sheet1and Post Slack Update posts the formatted trend report to the selected channel. - Activate the workflow by toggling it to Active so Weekly Schedule Start runs every week at the scheduled time.
Common Gotchas
- WooCommerce credentials can expire or lack read permissions. If the workflow suddenly returns empty order data, check your WooCommerce REST API keys and user role access first.
- Google Sheets append failures are often caused by sheet/tab name changes or a moved spreadsheet. Confirm the file and worksheet selected in the Google Sheets node still exist and that the account has edit access.
- Slack formatting can break if the JSON block has a missing quote or you paste dynamic fields that sometimes return null. Test with a low-traffic week first, then add simple fallbacks like “N/A” for missing trend values.
Frequently Asked Questions
About 30 minutes if your WooCommerce, Slack, and Google Sheets access is ready.
No. You will mainly connect accounts and paste credentials. The only “technical” part is verifying the Slack message format looks right.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in WooCommerce/hosting costs if your store API is rate-limited, but the workflow itself doesn’t require a paid AI API.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s a common tweak. Change the Schedule Trigger to run daily, then update the “Compute Date Windows” logic to define “today” and the right comparison windows. You can also adjust the “Build Trend Summary” code to compare vs yesterday or vs last week, depending on what your team actually uses in decisions. If you keep the Google Sheets log, consider adding a “period_type” column so weekly and daily rows don’t get mixed.
Usually it’s expired or revoked REST API keys, so regenerate the WooCommerce consumer key/secret and update the credentials inside n8n. It can also be missing permissions (the API user can’t read orders), or the store URL is wrong (http vs https). If failures happen only some weeks, check for rate limiting or timeouts when pulling larger date ranges.
Most stores can handle weekly snapshots comfortably, because it’s only a few WooCommerce queries per run.
Often, yes, because this workflow isn’t just “send data from A to B.” You’re doing three pulls, then building comparisons, then producing a strict formatted message plus a log. n8n is good at that kind of branching and data shaping without turning it into five separate paid Zaps or scenarios. The self-hosted option is also a big deal if you want predictable costs as volume grows. That said, if you only want a simple “sales total to Slack” message, Zapier or Make can be quicker to click together. If you’re unsure, Talk to an automation expert and get a recommendation based on your reporting needs.
Once this is live, your weekly performance update becomes a reliable system instead of a recurring task. Honestly, having the numbers show up on time changes how fast teams act.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.