AutomationFlowsData & Sheets › Transform Spreadsheet Data Into Smart Charts with Openai, Quickchart &…

Transform Spreadsheet Data Into Smart Charts with Openai, Quickchart &…

Original n8n title: Transform Spreadsheet Data Into Smart Charts with Openai, Quickchart & Google Drive

ByLeeWei @leeweihernandez07 on n8n.io

This n8n workflow automates the transformation of spreadsheet data into professional charts and graphs using AI-driven analysis. Triggered via Slack, it processes uploaded files (Excel, CSV, Google Sheets, or Drive links), interprets the data with an AI agent to determine the…

Event trigger★★★★★ complexityAI-powered82 nodesAgentPostgresHTTP RequestGoogle DriveGoogle SheetsSlackOpenAI ChatOutput Parser Structured
Data & Sheets Trigger: Event Nodes: 82 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #8697 — we link there as the canonical source.

This workflow follows the Agent → Chainllm 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
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "8377ffcc-4289-4870-b27a-55679a098616",
      "name": "Aggregate1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -576,
        1888
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "59f83f8b-6a2d-44dc-80c7-836dfbc310d8",
      "name": "Summarize1",
      "type": "n8n-nodes-base.summarize",
      "position": [
        -368,
        1888
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f893d8e2-25b7-4f79-af96-2264491c7338",
      "name": "Extract from Excel",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -784,
        1888
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "72c30ed6-44bf-4763-9055-c2f2041efa76",
      "name": "Switch2",
      "type": "n8n-nodes-base.switch",
      "position": [
        -1536,
        2368
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "45b2d225-11b3-4298-a3e7-98e60b3dca78",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -784,
        2080
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d2894f6d-a3b2-4fbe-be9b-2c646b16a989",
      "name": "Extract from File1",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -784,
        2288
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c049e3d4-d02c-41be-a8e2-8f4b4acb1bac",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -576,
        2080
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "951c043f-7c1d-4746-a64b-3efbc642a67b",
      "name": "Summarize",
      "type": "n8n-nodes-base.summarize",
      "position": [
        -368,
        2080
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "35ca9929-af5d-4f9c-bde6-eb94877cb805",
      "name": "Aggregate2",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -576,
        2288
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2710dd7f-f08b-4641-9380-1d315e305a11",
      "name": "Summarize2",
      "type": "n8n-nodes-base.summarize",
      "position": [
        -368,
        2288
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3449b873-0762-493c-a68a-f083628f4f78",
      "name": "Let User Know Upload Complete",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2512,
        1936
      ],
      "parameters": {},
      "typeVersion": 1.7
    },
    {
      "id": "b7a9350f-9b38-4bbf-8729-5c36f4f10f02",
      "name": "Update Thread Memory Session",
      "type": "n8n-nodes-base.postgres",
      "position": [
        -1840,
        1936
      ],
      "parameters": {},
      "typeVersion": 2.6
    },
    {
      "id": "267c15af-e516-4ed7-a3bd-6fdbef2e0ec0",
      "name": "Update Thread Memory Session14",
      "type": "n8n-nodes-base.postgres",
      "position": [
        -2000,
        1936
      ],
      "parameters": {},
      "typeVersion": 2.6
    },
    {
      "id": "7783d2e0-fe89-44de-acfc-9fd7b740ae62",
      "name": "Download File2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1216,
        1888
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "3a95e9fc-a7fe-45cc-85b9-57093511991e",
      "name": "Download File3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1216,
        2080
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "4750f80e-8e58-4c2c-b053-250f6c0f2a69",
      "name": "Download File4",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1216,
        2288
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "0957b92c-b490-44d6-a8ec-261ff1742ef5",
      "name": "Download File5",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1216,
        2480
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "b9dba499-4d83-4bda-ab73-624f8bb5e7ce",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -2736,
        2416
      ],
      "parameters": {},
      "typeVersion": 4.6
    },
    {
      "id": "dd3a098a-348e-48ff-b82f-c776f1df13f8",
      "name": "Download File7",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1216,
        2672
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "291c7467-e1af-489b-8b95-0ff0a9419416",
      "name": "Message: User",
      "type": "n8n-nodes-base.slack",
      "position": [
        -2176,
        1936
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "5ad86982-24f5-49eb-84a8-3dab072354c4",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        -1024,
        2656
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "fc6fb0f7-429c-4754-9db3-8e868bd6f9c0",
      "name": "Sticky Note31",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        1328
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "1525f1a7-28ab-4026-a4a7-8f966c9f00b4",
      "name": "4.1-mini",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -672,
        1408
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "1c64f576-3829-4688-a6ce-a993b4d85d05",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        672,
        768
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "02b2d1c5-0ddb-464e-9a89-bf8811b2bf74",
      "name": "Message: User 1",
      "type": "n8n-nodes-base.slack",
      "position": [
        1184,
        512
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "a150a7f4-fc28-43ff-a1ca-42be5e74d172",
      "name": "Update Thread Memory Session6",
      "type": "n8n-nodes-base.postgres",
      "position": [
        1344,
        512
      ],
      "parameters": {},
      "typeVersion": 2.6
    },
    {
      "id": "8356db74-c9ed-4fd6-9c05-e3fbce5aa7c1",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        368,
        768
      ],
      "parameters": {},
      "typeVersion": 1.9
    },
    {
      "id": "1eb68d3a-71b2-4757-988f-0a65a471285d",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        544,
        928
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "8c63038c-ba58-4ec8-879d-3808c7660dce",
      "name": "Landmark",
      "type": "n8n-nodes-base.set",
      "position": [
        208,
        768
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "9969c411-6a08-4053-9860-83ce4b1edf16",
      "name": "Review and approval",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        880,
        512
      ],
      "parameters": {},
      "typeVersion": 1.8
    },
    {
      "id": "be3ac90f-e819-43ef-9cc4-c7204595d950",
      "name": "Update Thread Memory Session1",
      "type": "n8n-nodes-base.postgres",
      "position": [
        1504,
        512
      ],
      "parameters": {},
      "typeVersion": 2.6
    },
    {
      "id": "7debe1ff-312c-49b1-a37a-fc69157176e9",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -1552,
        448
      ],
      "parameters": {},
      "typeVersion": 1.8
    },
    {
      "id": "1f8979ab-aae5-450b-9227-e39e126a9bff",
      "name": "Switch1",
      "type": "n8n-nodes-base.switch",
      "position": [
        -2096,
        464
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "187d05c1-d4ef-4ed3-804d-aacad199aead",
      "name": "If audio",
      "type": "n8n-nodes-base.if",
      "position": [
        -2320,
        704
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "460b485e-a873-461c-97b1-7704d589f656",
      "name": "Process Other Files",
      "type": "n8n-nodes-base.set",
      "position": [
        -1744,
        752
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "f61e3d62-551d-4513-958b-63b0e97a2914",
      "name": "Process Drive Links",
      "type": "n8n-nodes-base.set",
      "position": [
        -1760,
        1136
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "2536c33a-6896-4f20-ab60-e15769a7a701",
      "name": "Set Text",
      "type": "n8n-nodes-base.set",
      "position": [
        -1744,
        592
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "d64029e9-c283-4f0c-acc2-8eca72dbad54",
      "name": "Process Audio",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1744,
        448
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "1e4ae1f3-89a4-4a3e-93d1-b7bdbf48a336",
      "name": "Log Files",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1376,
        752
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "8a401860-1782-4b33-a6ff-e01088f3f34c",
      "name": "Log Drive Links",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1392,
        1136
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "66c8560d-f22d-441c-ae14-a6c17a91d6ab",
      "name": "Initial Processing",
      "type": "n8n-nodes-base.code",
      "position": [
        -2544,
        704
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "2beb7360-19c8-4df9-bd76-264373930bb7",
      "name": "Parse Links 1",
      "type": "n8n-nodes-base.code",
      "position": [
        -1552,
        752
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "3a8d2e4a-1667-40f4-adbd-fa2a8d997307",
      "name": "Parse Links 2",
      "type": "n8n-nodes-base.code",
      "position": [
        -1568,
        1136
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "ac939674-2c71-4039-98a0-dd8bef5d8d78",
      "name": "Merge Text Input",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1376,
        592
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "6b601209-fc90-4d0e-bb63-da4892c4ffc1",
      "name": "Combine Text Input",
      "type": "n8n-nodes-base.code",
      "position": [
        -1216,
        592
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "f4fbb211-5a6a-4a21-aeb2-9922f58fa1d7",
      "name": "Merge Text & Files",
      "type": "n8n-nodes-base.merge",
      "position": [
        -944,
        752
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "0f04614b-fbf9-4d80-b662-b9fbb1f316c0",
      "name": "Combine Text & Files",
      "type": "n8n-nodes-base.code",
      "position": [
        -752,
        752
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "7007ae0b-b362-413c-b31f-415fbc8eb411",
      "name": "Switch3",
      "type": "n8n-nodes-base.switch",
      "position": [
        -2112,
        1136
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "a2de07a0-a5e2-48e6-88a0-9cec74f1beb7",
      "name": "Pull Thread Context",
      "type": "n8n-nodes-base.postgres",
      "position": [
        -288,
        1168
      ],
      "parameters": {},
      "typeVersion": 2.6,
      "alwaysOutputData": true
    },
    {
      "id": "122ec2b4-bd58-4046-bbad-7701e1b53034",
      "name": "Mini-Landmark",
      "type": "n8n-nodes-base.set",
      "position": [
        -592,
        752
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "e73b4fc3-e0dd-4f3b-b810-2a1a63a87fed",
      "name": "If session_id Has top",
      "type": "n8n-nodes-base.if",
      "position": [
        -448,
        912
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "c32bc91b-d6fd-4ab6-ab00-9ded4fc3d470",
      "name": "Combine All Context",
      "type": "n8n-nodes-base.code",
      "position": [
        -128,
        832
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "b3bbe53b-f91a-4027-be67-e4acafc809a6",
      "name": "Merge Context",
      "type": "n8n-nodes-base.merge",
      "position": [
        48,
        768
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "5e337f23-9905-451a-88a8-9ba57dd7644e",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -2576,
        2416
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "04e35042-bc08-4f74-a1cc-3c212955548f",
      "name": "Aggregate3",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -2672,
        1936
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5c717c6c-4947-44dc-b987-084b543b6be4",
      "name": "Process Spreadsheet Links",
      "type": "n8n-nodes-base.set",
      "position": [
        -1744,
        2416
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "22f20776-e996-43eb-9d04-c9e3285bd662",
      "name": "Edit Fields4",
      "type": "n8n-nodes-base.set",
      "position": [
        -208,
        1888
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "501a4c9f-4085-4f76-bd85-253b2bf1418d",
      "name": "Edit Fields7",
      "type": "n8n-nodes-base.set",
      "position": [
        -208,
        2080
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "a3d3825c-bf96-413b-bea8-7df3607a201b",
      "name": "Edit Fields8",
      "type": "n8n-nodes-base.set",
      "position": [
        -208,
        2288
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "668a303c-b684-4444-9e99-d232f3c08b0f",
      "name": "text_landmark",
      "type": "n8n-nodes-base.set",
      "position": [
        0,
        2288
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "1c5d8b86-2ce2-46cb-be43-462b5b51d7e5",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        0,
        2416
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "0a87b3da-b009-4ec9-8dcd-38b53114ac46",
      "name": "Upload file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1328,
        2416
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "8943d36c-e6c0-436a-8261-2c7007c017a2",
      "name": "Set Titles & Links",
      "type": "n8n-nodes-base.set",
      "position": [
        1504,
        2416
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "f32e701d-5b48-4c84-ba81-ca0baccd2fcb",
      "name": "Slack Trigger",
      "type": "n8n-nodes-base.slackTrigger",
      "position": [
        -2720,
        704
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "17ea8298-f7be-4ae8-be6a-4ca28fc61ebf",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        640,
        2112
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "ae30aabb-ffb2-413d-85c2-4e3ae266b813",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1120,
        2416
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "349335c3-896a-44e1-acad-19bf722bbab4",
      "name": "Bar Chart",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        384,
        2016
      ],
      "parameters": {},
      "typeVersion": 1.5
    },
    {
      "id": "88dfe87a-b066-4d4f-acac-a5a3cbef3170",
      "name": "Structured Output Parser3",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        640,
        2288
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "10b70021-3d1b-45c9-a9f0-523ad51977a9",
      "name": "Structured Output Parser4",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        640,
        2464
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "46802198-e1ef-4c6d-be53-7223d5a36bc2",
      "name": "Pie Chart",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        384,
        2192
      ],
      "parameters": {},
      "typeVersion": 1.5
    },
    {
      "id": "fd40ddea-affa-40a2-9113-47a00f4a3d00",
      "name": "Doughnut Chart",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        384,
        2368
      ],
      "parameters": {},
      "typeVersion": 1.5
    },
    {
      "id": "caa884b4-74b2-4f21-8bac-2cbe92161e57",
      "name": "Structured Output Parser6",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        640,
        2656
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "3a1a7382-efe5-410b-a3f6-03c133328c25",
      "name": "Bubble Chart",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        384,
        2560
      ],
      "parameters": {},
      "typeVersion": 1.5
    },
    {
      "id": "789b5bce-3c81-43dd-9baf-7f545df38638",
      "name": "Structured Output Parser9",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        640,
        2880
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "ae023fc1-f04f-43c5-b8ba-5bed0fa0448b",
      "name": "Line Graph",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        384,
        2768
      ],
      "parameters": {},
      "typeVersion": 1.5
    },
    {
      "id": "c485cd96-9796-4065-9518-c04418c8982e",
      "name": "Switch4",
      "type": "n8n-nodes-base.switch",
      "position": [
        208,
        2368
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "851aaee4-065f-41c2-b6c1-25025ab531d8",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        928,
        2416
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "d086b8c6-ba91-45ec-acba-3b8da1230f50",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2816,
        416
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "958f7c82-6017-44d3-a5bb-4a8e4664230e",
      "name": "Sticky Note32",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        352,
        416
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "80edc6c8-1b33-4001-92ce-0ed97be1fd66",
      "name": "Sticky Note33",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2816,
        1728
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "cee96bd0-2ffc-4ee0-bb2b-0a8e0aa5e788",
      "name": "Sticky Note34",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1616,
        1728
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "3c5009d7-6751-4302-907c-3a263ce5c714",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3920,
        560
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Review and approval",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Switch4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "Merge Text Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Extract from Excel",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract from File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch1": {
      "main": [
        [
          {
            "node": "Process Audio",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Text",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Process Other Files",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Process Drive Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch2": {
      "main": [
        [
          {
            "node": "Download File2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download File3",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download File4",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download File5",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download File7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch3": {
      "main": [
        [
          {
            "node": "Process Other Files",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Text",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Process Drive Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch4": {
      "main": [
        [
          {
            "node": "Bar Chart",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Pie Chart",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Doughnut Chart",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Bubble Chart",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Line Graph",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4.1-mini": {
      "ai_languageModel": [
        [
          {
            "node": "Let User Know Upload Complete",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Review and approval",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Bar Chart",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Line Graph",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Bubble Chart",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Doughnut Chart",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Pie Chart",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If audio": {
      "main": [
        [
          {
            "node": "Switch1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Switch3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Landmark": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Text": {
      "main": [
        [
          {
            "node": "Merge Text Input",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Summarize",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bar Chart": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Files": {
      "main": [
        [
          {
            "node": "Merge Text & Files",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Pie Chart": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarize": {
      "main": [
        [
          {
            "node": "Edit Fields7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate1": {
      "main": [
        [
          {
            "node": "Summarize1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate2": {
      "main": [
        [
          {
            "node": "Summarize2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate3": {
      "main": [
        [
          {
            "node": "Let User Know Upload Complete",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Line Graph": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarize1": {
      "main": [
        [
          {
            "node": "Edit Fields4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarize2": {
      "main": [
        [
          {
            "node": "Edit Fields8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload file": {
      "main": [
        [
          {
            "node": "Set Titles & Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bubble Chart": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields4": {
      "main": [
        [
          {
            "node": "text_landmark",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields7": {
      "main": [
        [
          {
            "node": "text_landmark",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields8": {
      "main": [
        [
          {
            "node": "text_landmark",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Upload file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Context": {
      "main": [
        [
          {
            "node": "Landmark",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message: User": {
      "main": [
        [
          {
            "node": "Update Thread Memory Session14",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mini-Landmark": {
      "main": [
        [
          {
            "node": "Merge Context",
            "type": "main",
            "index": 0
          },
          {
            "node": "If session_id Has top",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Links 1": {
      "main": [
        [
          {
            "node": "Log Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Links 2": {
      "main": [
        [
          {
            "node": "Log Drive Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Audio": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack Trigger": {
      "main": [
        [
          {
            "node": "Initial Processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "text_landmark": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Doughnut Chart": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File2": {
      "main": [
        [
          {
            "node": "Extract from Excel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File3": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File4": {
      "main": [
        [
          {
            "node": "Extract from File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File5": {
      "main": [
        [
          {
            "node": "Extract from File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File7": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Drive Links": {
      "main": [
        [
          {
            "node": "Merge Text & Files",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Aggregate3",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Process Spreadsheet Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message: User 1": {
      "main": [
        [
          {
            "node": "Update Thread Memory Session6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Text Input": {
      "main": [
        [
          {
            "node": "Combine Text Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Text Input": {
      "main": [
        [
          {
            "node": "Merge Text & Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from Excel": {
      "main": [
        [
          {
            "node": "Aggregate1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File1": {
      "main": [
        [
          {
            "node": "Aggregate2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Initial Processing": {
      "main": [
        [
          {
            "node": "If audio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Text & Files": {
      "main": [
        [
          {
            "node": "Combine Text & Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Titles & Links": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine All Context": {
      "main": [
        [
          {
            "node": "Merge Context",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Drive Links": {
      "main": [
        [
          {
            "node": "Parse Links 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Other Files": {
      "main": [
        [
          {
            "node": "Parse Links 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pull Thread Context": {
      "main": [
        [
          {
            "node": "Combine All Context",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Review and approval": {
      "main": [
        [
          {
            "node": "Message: User 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Text & Files": {
      "main": [
        [
          {
            "node": "Mini-Landmark",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If session_id Has top": {
      "main": [
        [
          {
            "node": "Combine All Context",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Pull Thread Context",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Process Spreadsheet Links": {
      "main": [
        [
          {
            "node": "Switch2",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Bar Chart",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser3": {
      "ai_outputParser": [
        [
          {
            "node": "Pie Chart",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser4": {
      "ai_outputParser": [
        [
          {
            "node": "Doughnut Chart",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser6": {
      "ai_outputParser": [
        [
          {
            "node": "Bubble Chart",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser9": {
      "ai_outputParser": [
        [
          {
            "node": "Line Graph",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Let User Know Upload Complete": {
      "main": [
        [
          {
            "node": "Message: User",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Thread Memory Session6": {
      "main": [
        [
          {
            "node": "Update Thread Memory Session1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Thread Memory Session14": {
      "main": [
        [
          {
            "node": "Update Thread Memory Session",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

How this works

This workflow turns raw spreadsheet data into professional charts by analysing uploads from Slack and producing visual outputs through OpenAI and Quickchart. It suits analysts, marketers and operations teams who regularly share Excel or CSV files and need quick, AI-guided visuals without manual formatting. The core step extracts data from multiple formats, summarises it with an agent, then generates tailored charts stored back to Google Drive.

Use it for recurring reporting or ad-hoc analysis where data volume stays moderate and chart types can be guided by AI; avoid it for confidential datasets or extremely large files that exceed API limits. Variations include swapping Slack for email triggers or adding custom chart templates for branded outputs.

About this workflow

This n8n workflow automates the transformation of spreadsheet data into professional charts and graphs using AI-driven analysis. Triggered via Slack, it processes uploaded files (Excel, CSV, Google Sheets, or Drive links), interprets the data with an AI agent to determine the…

Source: https://n8n.io/workflows/8697/ — 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

• Multi-Layer Message Analysis - Every customer interaction passes through three specialized AI classifiers: privacy detection (identifies sensitive data and security requirements), intent recognition

OpenAI, OpenAI Chat, Tool Think +13
Data & Sheets

This workflow acts as a junior finance research analyst for a UK boutique M&A or corporate finance team. It listens for Slack messages, classifies the request, gathers company or market data, and prod

HTTP Request, Google Drive, Google Docs +5
Data & Sheets

Scheduled processes retrieve customer feedback from multiple channels. The system performs sentiment analysis to classify tone, then uses OpenAI models to extract themes, topics, and urgency indicator

HTTP Request, Lm Chat Azure Open Ai, Sentiment Analysis +5
Data & Sheets

Splitout Filter. Uses toolWorkflow, lmChatOpenAi, outputParserStructured, manualTrigger. Event-driven trigger; 38 nodes.

Tool Workflow, OpenAI Chat, Output Parser Structured +3
Data & Sheets

Handles GDPR Article 15 (access) and Article 17 (erasure) requests end-to-end — from inbound email to legally-compliant response — with zero manual intervention and a full audit trail. 📬 Monitors Gmai

Gmail Trigger, Agent, OpenAI Chat +5