This workflow corresponds to n8n.io template #4406 — we link there as the canonical source.
This workflow follows the Agent → Gmail Tool recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "vlxb4BmzckG852jg",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Daily order report AI agent using Supabase",
"tags": [],
"nodes": [
{
"id": "e9e241a2-3963-4bc0-bcd8-3651840648ed",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
660,
-60
],
"parameters": {
"text": "=You are an intelligent assistant tasked with generating a daily summary of recent e-commerce orders.\n\nYour Goal and Required Tool Usage:\n\nRetrieve Data from Supabase (Critical Tool Calls):\n\nTo get order item details, you MUST call the tool named Get Order Items.\nTo get client (user) details, you MUST call the tool named Get Clients.\nTo get order details, you MUST call the tool named Get Orders.\nTo get product details, you MUST call the tool named Get Products.\nAfter calling these tools, process the data they return to identify all necessary information for the summary.\nIdentify Recent Orders:\n\nFrom the data retrieved by the Get Orders tool, specifically filter for all orders that have been placed within the last 24 hours. Today is {{ $now }}\nGenerate Summary and Details (Strict Plain Text Formatting Required):\n\nUsing the data from the Get Order Items, Get Clients, Get Orders, and Get Products tools, create:\nA concise summary of these recent orders, including the total number of new orders and the total revenue generated.\nA detailed list of each individual new order. For each order, include its ID, placement date/time, the client's name, the total value, and a clear list of all products included in that order (product name, quantity, price per item).\nCRITICAL PLAIN TEXT FORMATTING INSTRUCTIONS:\nSeparate all lines and paragraphs with clear newlines.\nUse double newlines to create distinct paragraph breaks for readability.\nDo NOT use any special characters for bolding, italics, headings, or bullet points (e.g., no *, #, **). Just use plain text.\nIndent lists using spaces for clarity if possible.\nEnsure the output is a single, readable block of plain text suitable for an email body.\nSend Email (Critical Tool Call):\n\nTo send the generated summary and detailed list via email, you MUST call the tool named Send Gmail Summary.\nThe email subject should be \"Daily Order Summary - Last 24 Hours\".\nThe email body will contain the generated plain text content.\nExample of Desired Email Body Structure (Plain Text - Italian, Rome Timezone):\n\nRiepilogo Ordini Giornalieri (Ultime 24 Ore)\n\nTotale Nuovi Ordini: [Numero di ordini]\nFatturato Totale: [Importo fatturato totale]\n\n-----------------------------------\n\nDettagli Nuovi Ordini:\n\nID Ordine: [ID Ordine 1]\nData: 25/05/2025 20:03 CEST\nCliente: [Nome Cliente 1]\nValore Totale: [Valore Totale 1]\nArticoli:\n - [Nome Prodotto A] (x[Quantit\u00e0 A]) - [Prezzo A]\n - [Nome Prodotto B] (x[Quantit\u00e0 B]) - [Prezzo B]\n\nID Ordine: [ID Ordine 2]\nData: 25/05/2025 20:03 CEST\nCliente: [Nome Cliente 2]\nValore Totale: [Valore Totale 2]\nArticoli:\n - [Nome Prodotto X] (x[Quantit\u00e0 X]) - [Prezzo X]\n - [Nome Prodotto Y] (x[Quantit\u00e0 Y]) - [Prezzo Y]\n\n... (continua per tutti i nuovi ordini in un formato simile)",
"options": {},
"promptType": "define"
},
"typeVersion": 1.9
},
{
"id": "4dbac482-9efb-4e1f-a729-de640ecccb08",
"name": "Get Orders",
"type": "n8n-nodes-base.supabaseTool",
"position": [
520,
220
],
"parameters": {
"limit": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Limit', ``, 'number') }}",
"tableId": "orders",
"operation": "getAll",
"descriptionType": "manual",
"toolDescription": "Use this tool to get the data about the orders"
},
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "010dfe87-420b-4d6f-89f0-23c58aa6dbe3",
"name": "Get Order Items",
"type": "n8n-nodes-base.supabaseTool",
"position": [
680,
220
],
"parameters": {
"limit": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Limit', ``, 'number') }}",
"tableId": "order_items",
"operation": "getAll",
"descriptionType": "manual",
"toolDescription": "Use this tool to get the data for the order items"
},
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "88f69e97-dc76-4a4e-ab61-e52cf77dac35",
"name": "Get Clients",
"type": "n8n-nodes-base.supabaseTool",
"position": [
800,
220
],
"parameters": {
"limit": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Limit', ``, 'number') }}",
"tableId": "users",
"operation": "getAll",
"descriptionType": "manual",
"toolDescription": "Use this tool to get the data for the clients"
},
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "da6ec445-0035-4c74-9adb-6d63dc428f05",
"name": "Get Products",
"type": "n8n-nodes-base.supabaseTool",
"position": [
920,
220
],
"parameters": {
"limit": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Limit', ``, 'number') }}",
"tableId": "products",
"operation": "getAll",
"descriptionType": "manual",
"toolDescription": "Use this tool to get the data about the products"
},
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "2201f0c1-5abb-4a46-8aea-2ed5ea2ef220",
"name": "Send Gmail Summary",
"type": "n8n-nodes-base.gmailTool",
"position": [
1100,
220
],
"parameters": {
"sendTo": "={{ $json.toEmail }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {
"appendAttribution": false
},
"subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
"emailType": "text",
"descriptionType": "manual",
"toolDescription": "Use this tool to send an email summary about the orders"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "12ba20e4-f768-4789-84cf-c9d2a746ca51",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
320,
220
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "gpt-4.1"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "2039bf49-833f-4d01-b415-594c4ab926a1",
"name": "Daily 8am",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
180,
-60
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ab399397-d687-48c5-81f0-99fed12c9c1d",
"name": "Set Sender Email",
"type": "n8n-nodes-base.set",
"position": [
400,
-60
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "0376e8ed-6c68-4bcd-9913-73486ac3dd69",
"name": "toEmail",
"type": "string",
"value": "setEmailHere"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3565c51b-6cce-48aa-be41-4f9d0c40c40e",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
-200
],
"parameters": {
"width": 640,
"height": 300,
"content": "## Notes\n- Connect to your Supabase account to pull data from tables\n- Update the sender email\n- Customize the AI agent prompt to fit the use case"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"timezone": "Europe/Madrid",
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "qFOYM3IA9QZ7fMym",
"executionOrder": "v1"
},
"versionId": "f2b1e3dc-0542-4523-831b-15e0b7c1da87",
"connections": {
"AI Agent": {
"main": [
[]
]
},
"Daily 8am": {
"main": [
[
{
"node": "Set Sender Email",
"type": "main",
"index": 0
}
]
]
},
"Get Orders": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get Clients": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get Products": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get Order Items": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Set Sender Email": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Send Gmail Summary": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2openAiApisupabaseApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n workflow automates the generation and delivery of a daily order summary via email. It leverages an AI Agent to fetch and summarize e-commerce order data from the last 24 hours stored in Supabase, providing a concise overview of the daily business operations. Scheduled…
Source: https://n8n.io/workflows/4406/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Schedules automated vendor pricing analysis across multiple sources. Fetches delivery reliability and contract data, analyzes vendor performance using Claude AI, then distributes consolidated reports
This AI-powered customer support automation built in n8n handles your e-commerce queries instantly — from order tracking to personalized product recommendations and support ticket management. Features
Wake up to a clean, analyst-style stock digest in your inbox—top gainers/losers, a readable performance table, 3–5 insights, and upcoming events—no spreadsheets, no manual scraping, no copy-paste. Thi
This workflow is built for B2B SaaS and CX teams that are drowning in unstructured customer feedback across tools. It’s ideal for Customer Success, Product and Support leaders who want a light “voice
Transform your meeting follow-ups from chaos to clarity!