This workflow follows the Gmail → Gmail Trigger 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": "dDInVHNAfSedBUCb",
"name": "\u5916\u9001\u8a18\u5e33",
"tags": [],
"nodes": [
{
"id": "09c19ba1-45f2-43af-9985-3508d801c1b7",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
440,
0
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "18625b1d-f8ff-4e48-8b64-a9d42d24eccc",
"name": "Click to Test Flow",
"type": "n8n-nodes-base.manualTrigger",
"position": [
40,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "649933c4-b16b-46de-9038-7d8c0b3d8e88",
"name": "Get emails from Gmail with certain subject",
"type": "n8n-nodes-base.gmail",
"position": [
220,
0
],
"parameters": {
"simple": false,
"filters": {
"q": "subject:\u900f\u904e Uber Eats \u7cfb\u7d71\u9001\u51fa\u7684\u8a02\u55ae"
},
"options": {},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "b2118a34-52ad-4464-b7ea-7f3105536fad",
"name": "Receive certain keyword Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
120,
-180
],
"parameters": {
"simple": false,
"filters": {
"q": "subject:\u900f\u904e Uber Eats \u7cfb\u7d71\u9001\u51fa\u7684\u8a02\u55ae"
},
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyHour",
"minute": 30
}
]
}
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "00986543-d01a-4b11-bbaa-60c73a1dae02",
"name": "Extract Price, Shop, Date, TIme",
"type": "n8n-nodes-base.set",
"position": [
620,
60
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c24405f8-267f-4933-a178-1b51145d62bf",
"name": "price",
"type": "string",
"value": "={{ $json[\"text\"].match(/\\$(\\d+(\\.\\d{2})?)/)[1] }}"
},
{
"id": "968cf7cd-6e28-4328-a829-3fe2cb327643",
"name": "shop",
"type": "string",
"value": "={{ $json[\"text\"].match(/\u4ee5\u4e0b\u662f\u60a8\u5728([\\u4e00-\\u9fa5a-zA-Z0-9\\s]+)\u8a02\u8cfc/)[1] }}"
},
{
"id": "53642bcb-f3a6-4086-bdc1-2f8d27927462",
"name": "date",
"type": "string",
"value": "={{ $json[\"text\"].match(/Date: (\\d{4}\u5e74\\d{1,2}\u6708\\d{1,2}\u65e5)/)[1].replace(\"\u5e74\", \".\").replace(\"\u6708\", \".\").replace(\"\u65e5\", \"\") }}"
},
{
"id": "cd227132-971b-4970-8b5d-724463efe036",
"name": "time",
"type": "string",
"value": "={{ \n $json[\"text\"].match(/(\u4e0a\u5348|\u4e0b\u5348) (\\d{1,2}):(\\d{2})/) ? \n ($json[\"text\"].match(/(\u4e0a\u5348|\u4e0b\u5348) (\\d{1,2}):(\\d{2})/)[1] === '\u4e0b\u5348' && $json[\"text\"].match(/(\u4e0a\u5348|\u4e0b\u5348) (\\d{1,2}):(\\d{2})/)[2] !== '12' \n ? (parseInt($json[\"text\"].match(/(\u4e0a\u5348|\u4e0b\u5348) (\\d{1,2}):(\\d{2})/)[2]) + 12) + ':' + $json[\"text\"].match(/(\u4e0a\u5348|\u4e0b\u5348) (\\d{1,2}):(\\d{2})/)[3] \n : $json[\"text\"].match(/(\u4e0a\u5348|\u4e0b\u5348) (\\d{1,2}):(\\d{2})/)[2] + ':' + $json[\"text\"].match(/(\u4e0a\u5348|\u4e0b\u5348) (\\d{1,2}):(\\d{2})/)[3]\n )\n : null \n}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3d8f97ea-4a0d-4939-898f-8a0ca9415e7d",
"name": "Send to Slack with Block",
"type": "n8n-nodes-base.slack",
"position": [
800,
60
],
"parameters": {
"text": "=Ubereat \u8a02\u9910\u8cc7\u8a0a: \n\u5546\u5bb6: {{ $json.shop }}\n\u91d1\u984d: {{ $json.price }}\n\u65e5\u671f: {{ $json.date }}\n\n\u8a18\u5e33\u7db2\u5740:\nmoze3://expense?amount={{ $json.price }}&account=\u4fe1\u7528\u5361&subcategory=\u5916\u9001&store={{ $json.shop }}&date={{ $json.date }}",
"select": "channel",
"blocksUi": "={\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"Ubereat \u8a02\u9910\u8cc7\u8a0a:\\n\\n*\u5546\u5bb6:* {{ $json.shop }}\\n*\u91d1\u984d:* {{ $json.price }}\\n*\u65e5\u671f:* {{ $json.date }}\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"Moze \u8a18\u5e33\u8acb\u9ede\u6211\"\n\t\t\t},\n\t\t\t\"accessory\": {\n\t\t\t\t\"type\": \"button\",\n\t\t\t\t\"text\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"\u8a18\u5e33\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t},\n\t\t\t\t\"value\": \"click\",\n\t\t\t\t\"url\": \"moze3://expense?amount={{ $json.price }}&account=\u4fe1\u7528\u5361&subcategory=\u5916\u9001&store={{ $json.shop }}&date={{ $json.date }}&&project=\u751f\u6d3b\u958b\u92b7&&time={{ $json.time }}\",\n\t\t\t\t\"action_id\": \"button-action\"\n\t\t\t}\n\t\t}\n\t]\n}",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C0883CJM1UH",
"cachedResultName": "\u5916\u9001\u8a18\u5e33\u81ea\u52d5\u5316"
},
"messageType": "block",
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
}
],
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "0840254c-0058-47fe-9b22-7fbb93144788",
"connections": {
"Loop Over Items": {
"main": [
[],
[
{
"node": "Extract Price, Shop, Date, TIme",
"type": "main",
"index": 0
}
]
]
},
"Click to Test Flow": {
"main": [
[
{
"node": "Get emails from Gmail with certain subject",
"type": "main",
"index": 0
}
]
]
},
"Send to Slack with Block": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Extract Price, Shop, Date, TIme": {
"main": [
[
{
"node": "Send to Slack with Block",
"type": "main",
"index": 0
}
]
]
},
"Receive certain keyword Gmail Trigger": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Get emails from Gmail with certain subject": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Food Delivery Notifications and Easy Expense Tracking. Uses gmail, gmailTrigger, slack. Event-driven trigger; 6 nodes.
Source: https://github.com/woakes070048/n8n-backups-8/blob/5db30d91616748d504c377cab36d876ed0adeaa5/WHX5t4Fae9Q7u6nK.json — 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.
Automatically transform resume submissions into comprehensive candidate profiles with AI-powered parsing, GitHub analysis, and instant team notifications. Monitors Gmail for incoming resume attachment
外送記帳. Uses splitInBatches, manualTrigger, gmail, gmailTrigger. Event-driven trigger; 6 nodes.
Food Delivery Notifications and Easy Expense Tracking. Uses gmail, gmailTrigger, slack. Event-driven trigger; 6 nodes.
Food Delivery Notifications and Easy Expense Tracking. Uses gmail, gmailTrigger, slack. Event-driven trigger; 6 nodes.
This workflow automates the process of retrieving emails from a food delivery platform, extracting key order details, and sending notifications to a Slack channel. Additionally, the Slack message incl