This workflow follows the Emailreadimap → HTTP Request 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 →
{
"name": "Bank Email Transaction Monitor",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 5
}
]
}
},
"id": "schedule-trigger",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1,
"position": [
240,
300
]
},
{
"parameters": {
"protocol": "imap",
"server": "={{ $env.EMAIL_IMAP_HOST }}",
"port": 993,
"secure": true,
"email": "={{ $env.EMAIL_USERNAME }}",
"password": "={{ $env.EMAIL_PASSWORD }}",
"folder": "INBOX",
"searchCriteria": {
"since": "={{ $now.minus({hours: 1}).toISO() }}",
"unseen": true
}
},
"id": "email-imap",
"name": "Email IMAP",
"type": "n8n-nodes-base.emailReadImap",
"typeVersion": 2,
"position": [
460,
300
]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.subject }}",
"operation": "contains",
"value2": "transaction"
}
]
}
},
"id": "filter-bank-emails",
"name": "Filter Bank Emails",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
680,
300
]
},
{
"parameters": {
"url": "http://localhost:3000/webhook/email",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"subject\": \"{{ $json.subject }}\",\n \"body\": \"{{ $json.text }}\",\n \"from\": \"{{ $json.from.value[0].address }}\"\n}"
},
"id": "send-to-bot",
"name": "Send to Bot",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
900,
220
]
},
{
"parameters": {
"spreadsheetId": "={{ $env.GOOGLE_SHEETS_ID }}",
"sheetName": "Email_Log",
"columnToMatchOn": "A",
"valueToMatchOn": "={{ $json.messageId }}",
"valuesToWrite": {
"A": "={{ $json.messageId }}",
"B": "={{ $json.subject }}",
"C": "={{ $json.from.value[0].address }}",
"D": "={{ $now.toISO() }}",
"E": "processed"
}
},
"id": "log-to-sheets",
"name": "Log to Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4,
"position": [
1120,
220
]
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Email IMAP",
"type": "main",
"index": 0
}
]
]
},
"Email IMAP": {
"main": [
[
{
"node": "Filter Bank Emails",
"type": "main",
"index": 0
}
]
]
},
"Filter Bank Emails": {
"main": [
[
{
"node": "Send to Bot",
"type": "main",
"index": 0
}
]
]
},
"Send to Bot": {
"main": [
[
{
"node": "Log to Sheets",
"type": "main",
"index": 0
}
]
]
}
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z",
"settings": {
"timezone": "UTC"
},
"staticData": null,
"meta": {
"templateCredsSetupCompleted": true
},
"versionId": "1"
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Bank Email Transaction Monitor. Uses emailReadImap, httpRequest, googleSheets. Scheduled trigger; 5 nodes.
Source: https://github.com/kimdat546/bot_than_giu_cua/blob/4c852c7ee2ab209142dc28a0a394c324117d5f4c/n8n-workflows/email-monitoring.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.
inbox-pilot — Ops Autopilot. Uses emailReadImap, httpRequest, googleSheets, telegram. Scheduled trigger; 14 nodes.
Automatically extract structured information from emails using AI-powered document analysis. This workflow processes emails from specified domains, classifies them by type, and extracts structured dat
What This Flow Does
This workflow automates a 3-step cold email sequence from Gmail using leads in Google Sheets, generates personalized copy with Anthropic Claude, enforces a gradual daily sending cap, schedules follow-
This n8n template allows you to automatically monitor your company's budget by comparing live Bexio accounting data against targets defined in Google Sheets, sending automated weekly email reports. It