AutomationFlowsData & Sheets › Cash Flow - Plan Upd

Cash Flow - Plan Upd

Cash Flow - Plan upd. Uses googleSheets, postgres. Event-driven trigger; 11 nodes.

Event trigger★★★☆☆ complexity11 nodesGoogle SheetsPostgres
Data & Sheets Trigger: Event Nodes: 11 Complexity: ★★★☆☆ Added:

This workflow follows the Google Sheets → Postgres 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": "Cash Flow - Plan upd",
  "nodes": [
    {
      "parameters": {
        "operation": "clear",
        "documentId": {
          "__rl": true,
          "value": "REDACTED_SHEET_ID_005",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": 506263741,
          "mode": "list",
          "cachedResultName": "FinPlan_2025",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/REDACTED_SHEET_ID_005/edit#gid=506263741"
        },
        "clear": "specificRange",
        "range": "A2:Y"
      },
      "id": "fadb1e1b-8f3d-5b7a-8a3a-92744a4cd456",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.1,
      "position": [
        1072,
        288
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "disabled": true
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "REDACTED_SHEET_ID_005",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": 506263741,
          "mode": "list",
          "cachedResultName": "FinPlan_2025",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/REDACTED_SHEET_ID_005/edit#gid=506263741"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "source": "={{ $json.source }}",
            "activity_id": "={{ $json.activity_id }}",
            "entity": "={{ $json.entity }}",
            "pool": "={{ $json.pool }}",
            "cost_type": "={{ $json.cost_type }}",
            "allocation_rule": "={{ $json.allocation_rule }}",
            "responsible": "={{ $json.responsible }}",
            "who_added": "={{ $json.who_added }}",
            "service_description": "={{ $json.service_description }}",
            "income_expense": "={{ $json.income_expense }}",
            "pl_account": "={{ $json.pl_account }}",
            "l_detailed": "={{ $json.l_detailed.trim() }}",
            "month": "={{ $json.month }}",
            "alloc_amt_usd": "={{ $json.alloc_amt_usd }}",
            "alloc_amt_usd_cons": "={{ $json.alloc_amt_usd_cons }}",
            "alloc_amt_usd_opt": "={{ $json.alloc_amt_usd_opt }}",
            "l1": "={{ $json.l1 }}",
            "l2": "={{ $json.l2 }}",
            "l3": "={{ $json.l3 }}",
            "l4": "={{ $json.l4 }}",
            "l5": "={{ $json.l5 }}",
            "l6": "={{ $json.l6 }}",
            "l_managements": "={{ $json.l_managements }}",
            "version": "={{ $json.version }}",
            "run_time": "={{ $json.run_time }}",
            "Source": "={{ $json.source }}",
            "Activity ID": "={{ $json.activity_id }}",
            "Entity": "={{ $json.entity }}",
            "Pool": "={{ $json.pool }}",
            "Cost type": "={{ $json.cost_type }}",
            "Allocation rule": "={{ $json.allocation_rule }}",
            "Responsible": "={{ $json.responsible }}",
            "Who added": "={{ $json.who_added }}",
            "Service description": "={{ $json.service_description }}",
            "Income / Expense": "={{ $json.income_expense }}",
            "Account": "={{ $json.pl_account }}",
            "Month": "={{ $json.month }}",
            "Raw amount USD": "={{ $json.alloc_amt_usd }}",
            "Conservative amount USD": "={{ $json.alloc_amt_usd_cons }}",
            "Optimistic amount USD": "={{ $json.alloc_amt_usd_opt }}",
            "L1": "={{ $json.l1 }}",
            "L2": "={{ $json.l2 }}",
            "L3": "={{ $json.l3 }}",
            "L4": "={{ $json.l4 }}",
            "L5": "={{ $json.l5 }}",
            "L6": "={{ $json.l6 }}",
            "L Managements": "={{ $json.l_managements }}",
            "Version": "={{ $json.version }}",
            "Run time": "={{ $json.run_time }}",
            "L detailed": "={{ $json.l_detailed }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Source",
              "displayName": "Source",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Activity ID",
              "displayName": "Activity ID",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Entity",
              "displayName": "Entity",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Pool",
              "displayName": "Pool",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Cost type",
              "displayName": "Cost type",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Allocation rule",
              "displayName": "Allocation rule",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Responsible",
              "displayName": "Responsible",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Who added",
              "displayName": "Who added",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Service description",
              "displayName": "Service description",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Income / Expense",
              "displayName": "Income / Expense",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Account",
              "displayName": "Account",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L detailed",
              "displayName": "L detailed",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Month",
              "displayName": "Month",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Raw amount USD",
              "displayName": "Raw amount USD",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Conservative amount USD",
              "displayName": "Conservative amount USD",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Optimistic amount USD",
              "displayName": "Optimistic amount USD",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L1",
              "displayName": "L1",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L2",
              "displayName": "L2",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L3",
              "displayName": "L3",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L4",
              "displayName": "L4",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L5",
              "displayName": "L5",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L6",
              "displayName": "L6",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L Managements",
              "displayName": "L Managements",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Version",
              "displayName": "Version",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Run time",
              "displayName": "Run time",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            }
          ]
        },
        "options": {}
      },
      "id": "1306a1a5-4b21-5d42-81ff-d60a1ac89917",
      "name": "Google Sheets1",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.1,
      "position": [
        1504,
        288
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "disabled": true
    },
    {
      "parameters": {},
      "id": "2fe9bddf-9e40-5eb5-99fc-1b33a8c3ff61",
      "name": "When clicking \"Execute Workflow\"",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        720,
        288
      ]
    },
    {
      "parameters": {
        "path": "fbf9950e-73de-4962-a636-ca1REDACTED2312c90REDACTED",
        "options": {}
      },
      "id": "f2123edb-d19b-5187-9a66-aa604ba190ab",
      "name": "Webhook1",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        720,
        480
      ]
    },
    {
      "parameters": {
        "operation": "clear",
        "documentId": {
          "__rl": true,
          "value": "REDACTED_SHEET_ID_005",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": 542597216,
          "mode": "list",
          "cachedResultName": "Test_Finplan_2024",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/REDACTED_SHEET_ID_005/edit#gid=542597216"
        },
        "clear": "specificRange",
        "range": "A2:Y"
      },
      "id": "7923fb78-2b4e-581d-800d-bd80d8353656",
      "name": "Google Sheets2",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.1,
      "position": [
        1104,
        544
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "disabled": true
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "\tselect * from (\n\tselect \n\t\n\t\"source\",activity_id,entity,pool,cost_type,allocation_rule,responsible,who_added,service_description,income_expense,pl_account,\n\t\n\tl_detailed,\n\t--trim(both ' ' from l_detailed) as l_detailed,\n\t--trim(l_detailed) as l_detailed,\n\t\n\t\"month\",alloc_amt_usd,alloc_amt_usd_cons,alloc_amt_usd_opt,l1,l2,l3,l4,l5,l6,l_managements,\"version\",run_time,l_detailed\n\t\n\t\n\tfrom finplan_25.pl_data_h pd where \n\tcast(trim('V25_' from version) as decimal(REDACTED,0)) = (\n\tselect max (number) from (\n\tselect cast(number as decimal(REDACTED,0))from (\n\tselect distinct trim('V25_' from version) as number from finplan_25.pl_data_h) as pd) as max_version) \nand \"source\" <> 'PCC'\n\t) as pd",
        "options": {}
      },
      "id": "c8d5f781-c088-5fce-85da-b52732b4b211",
      "name": "FP 2025 version",
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 2.3,
      "position": [
        1280,
        288
      ],
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      },
      "disabled": true
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "\tselect * from (\n\tselect \n\t\n\t\"source\",activity_id,entity,pool,cost_type,allocation_rule,responsible,who_added,service_description,income_expense,pl_account,\n\t\n\tl_detailed,\n\t--trim(both ' ' from l_detailed) as l_detailed,\n\t--trim(l_detailed) as l_detailed,\n\t\n\t\"month\",alloc_amt_usd,alloc_amt_usd_cons,alloc_amt_usd_opt,l1,l2,l3,l4,l5,l6,l_managements,\"version\",run_time,l_detailed\n\t\n\t\n\tfrom finplan_24.pl_data_h_24 pd where \n\tcast(trim('V_' from version) as decimal(REDACTED,0)) = (\n\tselect max (number) from (\n\tselect cast(number as decimal(REDACTED,0))from (\n\tselect distinct trim('V_' from version) as number from finplan_24.pl_data_h_24) as pd) as max_version) \nand \"source\" <> 'PCC'\n\t) as pd",
        "options": {}
      },
      "id": "407eecf8-0472-591d-8519-94a0602323e6",
      "name": "FP 2024 version",
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 2.3,
      "position": [
        1328,
        544
      ],
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      },
      "disabled": true
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "REDACTED_SHEET_ID_005",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": 542597216,
          "mode": "list",
          "cachedResultName": "Test_Finplan_2024",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/REDACTED_SHEET_ID_005/edit#gid=542597216"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Source": "={{ $json.source }}",
            "Raw amount USD": "={{ $json.alloc_amt_usd }}",
            "Conservative amount USD": "={{ $json.alloc_amt_usd_cons }}",
            "Optimistic amount USD": "={{ $json.alloc_amt_usd_opt }}",
            "Activity ID": "={{ $json.activity_id }}",
            "Entity": "={{ $json.entity }}",
            "Pool": "={{ $json.pool }}",
            "Cost type": "={{ $json.cost_type }}",
            "Allocation rule": "={{ $json.allocation_rule }}",
            "Responsible": "={{ $json.responsible }}",
            "Who added": "={{ $json.who_added }}",
            "Service description": "={{ $json.service_description }}",
            "Income / Expense": "={{ $json.income_expense }}",
            "L detailed": "={{ $json.l_detailed }}",
            "Month": "={{ $json.month }}",
            "Account": "={{ $json.pl_account }}",
            "L1": "={{ $json.l1 }}",
            "L2": "={{ $json.l2 }}",
            "L3": "={{ $json.l3 }}",
            "L4": "={{ $json.l4 }}",
            "L5": "={{ $json.l5 }}",
            "L6": "={{ $json.l6 }}",
            "L Managements": "={{ $json.l_managements }}",
            "Version": "={{ $json.version }}",
            "Run time": "={{ $json.run_time }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Source",
              "displayName": "Source",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Activity ID",
              "displayName": "Activity ID",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Entity",
              "displayName": "Entity",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Pool",
              "displayName": "Pool",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Cost type",
              "displayName": "Cost type",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Allocation rule",
              "displayName": "Allocation rule",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Responsible",
              "displayName": "Responsible",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Who added",
              "displayName": "Who added",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Service description",
              "displayName": "Service description",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Income / Expense",
              "displayName": "Income / Expense",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Account",
              "displayName": "Account",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "L detailed",
              "displayName": "L detailed",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Month",
              "displayName": "Month",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Raw amount USD",
              "displayName": "Raw amount USD",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Conservative amount USD",
              "displayName": "Conservative amount USD",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Optimistic amount USD",
              "displayName": "Optimistic amount USD",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "L1",
              "displayName": "L1",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "L2",
              "displayName": "L2",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "L3",
              "displayName": "L3",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "L4",
              "displayName": "L4",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "L5",
              "displayName": "L5",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "L6",
              "displayName": "L6",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "L Managements",
              "displayName": "L Managements",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Version",
              "displayName": "Version",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Run time",
              "displayName": "Run time",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ]
        },
        "options": {}
      },
      "id": "e51c99e0-a0c3-575b-b65f-cba96a21eaef",
      "name": "Google Sheets4",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.1,
      "position": [
        1504,
        544
      ],
      "executeOnce": false,
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "disabled": true
    },
    {
      "parameters": {
        "operation": "clear",
        "documentId": {
          "__rl": true,
          "value": "REDACTED_SHEET_ID_005",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": 1117374017,
          "mode": "list",
          "cachedResultName": "FinPlan_2026",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/REDACTED_SHEET_ID_005/edit#gid=1117374017"
        },
        "clear": "specificRange",
        "range": "A2:Y"
      },
      "id": "edbcda0a-9a55-5d29-a555-9a0990c4a0bb",
      "name": "Google Sheets3",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.1,
      "position": [
        1072,
        80
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "REDACTED_SHEET_ID_005",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": 1117374017,
          "mode": "list",
          "cachedResultName": "FinPlan_2026",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/REDACTED_SHEET_ID_005/edit#gid=1117374017"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Source": "={{ $json.source }}",
            "Activity ID": "={{ $json.activity_id }}",
            "Entity": "={{ $json.entity }}",
            "Pool": "={{ $json.pool }}",
            "Cost type": "={{ $json.cost_type }}",
            "Allocation rule": "={{ $json.allocation_rule }}",
            "Responsible": "={{ $json.responsible }}",
            "Who added": "={{ $json.who_added }}",
            "Service description": "={{ $json.service_description }}",
            "Income / Expense": "={{ $json.income_expense }}",
            "Account": "={{ $json.pl_account }}",
            "Month": "={{ $json.month }}",
            "L1": "={{ $json.l1 }}",
            "L2": "={{ $json.l2 }}",
            "L3": "={{ $json.l3 }}",
            "L4": "={{ $json.l4 }}",
            "L5": "={{ $json.l5 }}",
            "L6": "={{ $json.l6 }}",
            "L Managements": "={{ $json.l_managements }}",
            "Version": "={{ $json.version }}",
            "Run time": "={{ $json.run_time }}",
            "L detailed": "={{ $json.l_detailed }}",
            " Raw amount USD ": "={{ $json.alloc_amt_usd }}",
            " Conservative amount USD ": "={{ $json.alloc_amt_usd_cons }}",
            " Optimistic amount USD ": "={{ $json.alloc_amt_usd_opt }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Source",
              "displayName": "Source",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Activity ID",
              "displayName": "Activity ID",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Entity",
              "displayName": "Entity",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Pool",
              "displayName": "Pool",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Cost type",
              "displayName": "Cost type",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Allocation rule",
              "displayName": "Allocation rule",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Responsible",
              "displayName": "Responsible",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Who added",
              "displayName": "Who added",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Service description",
              "displayName": "Service description",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Income / Expense",
              "displayName": "Income / Expense",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Account",
              "displayName": "Account",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L detailed",
              "displayName": "L detailed",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Month",
              "displayName": "Month",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": " Raw amount USD ",
              "displayName": " Raw amount USD ",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": " Conservative amount USD ",
              "displayName": " Conservative amount USD ",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": " Optimistic amount USD ",
              "displayName": " Optimistic amount USD ",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L1",
              "displayName": "L1",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L2",
              "displayName": "L2",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L3",
              "displayName": "L3",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L4",
              "displayName": "L4",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L5",
              "displayName": "L5",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L6",
              "displayName": "L6",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "L Managements",
              "displayName": "L Managements",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Version",
              "displayName": "Version",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Run time",
              "displayName": "Run time",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "EOMonth for CF",
              "displayName": "EOMonth for CF",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "EOMonth for PL",
              "displayName": "EOMonth for PL",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Is in FPS?",
              "displayName": "Is in FPS?",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Terms",
              "displayName": "Terms",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "6b5d2acc-d427-55ff-861b-73394725949e",
      "name": "Google Sheets5",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.1,
      "position": [
        1504,
        80
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "\tselect * from (\n\tselect \n\t\n\t\"source\",activity_id,entity,pool,cost_type,allocation_rule,responsible,who_added,service_description,income_expense,pl_account,\n\t\n\tl_detailed,\n\t--trim(both ' ' from l_detailed) as l_detailed,\n\t--trim(l_detailed) as l_detailed,\n\t\n\t\"month\",alloc_amt_usd,alloc_amt_usd_cons,alloc_amt_usd_opt,l1,l2,l3,l4,l5,l6,l_managements,\"version\",run_time,l_detailed\n\t\n\t\n\tfrom finplan.pl_data_h pd where \n\tcast(trim('V26_' from version) as decimal(REDACTED,0)) = (\n\tselect max (number) from (\n\tselect cast(number as decimal(REDACTED,0))from (\n\tselect distinct trim('V26_' from version) as number from finplan.pl_data_h) as pd) as max_version) \nand \"source\" <> 'PCC'\n\t) as pd",
        "options": {}
      },
      "id": "b237d54d-a763-5da8-8000-a7c07630ae47",
      "name": "FP 2026 version",
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 2.3,
      "position": [
        1280,
        80
      ],
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Google Sheets": {
      "main": [
        [
          {
            "node": "FP 2025 version",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \"Execute Workflow\"": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets2",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook1": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets2",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets2": {
      "main": [
        [
          {
            "node": "FP 2024 version",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets1": {
      "main": [
        []
      ]
    },
    "FP 2025 version": {
      "main": [
        [
          {
            "node": "Google Sheets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FP 2024 version": {
      "main": [
        [
          {
            "node": "Google Sheets4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets3": {
      "main": [
        [
          {
            "node": "FP 2026 version",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FP 2026 version": {
      "main": [
        [
          {
            "node": "Google Sheets5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "versionId": "REDACTED",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodeGroups": [],
  "id": "REDACTED",
  "tags": []
}

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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Cash Flow - Plan upd. Uses googleSheets, postgres. Event-driven trigger; 11 nodes.

Source: https://github.com/SamvelMkhitaryan/n8n-automation-portfolio/blob/main/09-financial-plan-pipeline/workflow.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

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

Data & Sheets

Bill Payment Automated Invoices (Contractor invoice). Uses httpRequest, googleSheets, emailSend, postgres. Event-driven trigger; 25 nodes.

HTTP Request, Google Sheets, Email Send +1
Data & Sheets

AI Money Tracker Chatbot. Uses telegramTrigger, postgres, googleSheets, telegram. Event-driven trigger; 24 nodes.

Telegram Trigger, Postgres, Google Sheets +2
Data & Sheets

Formularios T-shirt con DB. Uses gmail, googleSheetsTrigger, postgres, googleSheets. Event-driven trigger; 24 nodes.

Gmail, Google Sheets Trigger, Postgres +1
Data & Sheets

This n8n workflow retrieves AI agent chat memory logs stored in Postgres and pushes them to Google Sheets, creating one sheet per session. It’s useful for teams building chat-based products or agents

Postgres, HTTP Request, Google Sheets
Data & Sheets

Gmail-Sheets. Uses executeWorkflowTrigger, postgres, googleSheets. Event-driven trigger; 12 nodes.

Execute Workflow Trigger, Postgres, Google Sheets