AutomationFlowsEmail & Gmail › Bank Email Transaction Monitor

Bank Email Transaction Monitor

Bank Email Transaction Monitor. Uses emailReadImap, httpRequest, googleSheets. Scheduled trigger; 5 nodes.

Cron / scheduled trigger★★★★☆ complexity5 nodesEmail Read ImapHTTP RequestGoogle Sheets
Email & Gmail Trigger: Cron / scheduled Nodes: 5 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "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"
}
Pro

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 →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

inbox-pilot — Ops Autopilot. Uses emailReadImap, httpRequest, googleSheets, telegram. Scheduled trigger; 14 nodes.

Email Read Imap, HTTP Request, Google Sheets +1
Email & Gmail

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

Gmail, HTTP Request, AWS S3 +1
Email & Gmail

What This Flow Does

Gmail, Google Sheets, HTTP Request +1
Email & Gmail

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-

Google Sheets, HTTP Request, Gmail
Email & Gmail

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

Google Sheets, HTTP Request, Gmail