Flag delayed Shopify orders with Slack, Google Sheets and Gmail

Go to Workflow
0 views
Built by Avkash Kakdiya Avkash Kakdiya
Created on July 28, 2026

Description

Quick overview
This workflow runs daily to check Shopify for open, unfulfilled orders older than two days, classifies them by delay severity, posts a digest to Slack, logs each delayed order to Google Sheets, and emails an HTML summary report via Gmail.

How it works
Runs every day at 08:00 (server time) on a schedule trigger.
Calls the Shopify Admin REST API to fetch up to 250 open orders with fulfillment_status=unfulfilled.
Calculates each order’s age in days and extracts key details (customer, totals, items, and Shopify Admin order link).
Filters to only orders delayed by 2+ days and labels each one as WARNING (2–4 days), CRITICAL (5–7 days), or ESCALATION (8+ days).
Checks whether any delayed orders exist and stops without notifying if the delayed list is empty.
Builds a Slack message grouped by severity and posts the delay digest to the configured Slack channel.
Appends each delayed order as a row in a Google Sheets tracker, then aggregates the list and sends an HTML summary email via Gmail to the operations manager.

Setup
Add Shopify Admin API credentials (HTTP header auth) and replace YOUR_STORE in the Shopify API and admin order URLs with your store domain.
Add Slack credentials and set the target channel ID in the Slack message step.
Add Google Sheets credentials, set YOUR_GOOGLE_SHEET_ID, and ensure the worksheet named “Fulfillment Delay Tracker” exists with matching columns.
Add Gmail credentials and set YOUR_OPS_MANAGER_EMAIL to the recipient address for the summary report.
Adjust the cron schedule and the delay thresholds (2/5/8 days) in the filtering and severity rules if needed.

Nodes Used (5)

Code
n8n-nodes-base.code
Gmail
n8n-nodes-base.gmail
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest
Slack
n8n-nodes-base.slack