AutomationFlowsAI & RAG › Route Meeting Action Items to Slack Using Gmail, Openai, and Google Sheets

Route Meeting Action Items to Slack Using Gmail, Openai, and Google Sheets

ByPrecision Tech @precision-tech on n8n.io

This workflow watches a Gmail label for new meeting transcript emails, extracts the transcript, uses OpenAI to generate a summary and action items, routes urgent items to the right Slack channel, and logs the meeting and action items to Google Sheets. Triggers every minute when…

Event trigger★★★★☆ complexityAI-powered25 nodesGmail TriggerGoogle SheetsOpenAISlack
AI & RAG Trigger: Event Nodes: 25 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Gmail Trigger → Google Sheets 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": false
  },
  "name": "Meeting Transcript Action Items Router to Slack",
  "tags": [],
  "nodes": [
    {
      "id": "b74371f3-e04c-4880-ac38-4ec78b84007b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        96
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "547433ba-0ab2-4309-a7ec-d2e4551c745a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        160
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "99a171ff-7e48-42dc-83cc-685dd8a762d2",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        160
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e9eb0620-0f9f-4ac3-aec5-0def8c6388c1",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        160
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8b433730-593b-4a7f-b173-44221a1bc5c5",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2032,
        96
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "4ab1c85d-a74d-4486-9cef-e898bd626113",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2320,
        112
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8fc48cdf-022e-4f46-ad93-297ea9c0f181",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2544,
        608
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0f974448-f40a-4723-a17d-c5bc14ad83aa",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3312,
        224
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "66666666-6666-6666-8666-666666666601",
      "name": "When Email with Transcript Arrives",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        0,
        320
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "66666666-6666-6666-8666-666666666602",
      "name": "Setup Meeting Configuration",
      "type": "n8n-nodes-base.code",
      "position": [
        260,
        320
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66666666-6666-6666-8666-666666666603",
      "name": "Extract Email Transcript",
      "type": "n8n-nodes-base.code",
      "position": [
        520,
        320
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66666666-6666-6666-8666-666666666604",
      "name": "Read Log from Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        780,
        320
      ],
      "parameters": {},
      "typeVersion": 4.5,
      "alwaysOutputData": true
    },
    {
      "id": "66666666-6666-6666-8666-666666666605",
      "name": "Identify Duplicate Meetings",
      "type": "n8n-nodes-base.code",
      "position": [
        1040,
        320
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66666666-6666-6666-8666-666666666606",
      "name": "If Unique Meeting Identified",
      "type": "n8n-nodes-base.if",
      "position": [
        1300,
        320
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "66666666-6666-6666-8666-666666666607",
      "name": "OpenAI Meeting Analysis",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1560,
        320
      ],
      "parameters": {},
      "typeVersion": 1.8
    },
    {
      "id": "66666666-6666-6666-8666-666666666608",
      "name": "Parse Analysis Results",
      "type": "n8n-nodes-base.code",
      "position": [
        1820,
        320
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66666666-6666-6666-8666-666666666609",
      "name": "Route Based on Priority",
      "type": "n8n-nodes-base.switch",
      "position": [
        2080,
        320
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "66666666-6666-6666-8666-666666666610",
      "name": "Prepare Slack Notification",
      "type": "n8n-nodes-base.code",
      "position": [
        2360,
        240
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66666666-6666-6666-8666-666666666611",
      "name": "Post to Slack Channel",
      "type": "n8n-nodes-base.slack",
      "position": [
        2848,
        240
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "66666666-6666-6666-8666-666666666612",
      "name": "Verify Slack Message Delivery",
      "type": "n8n-nodes-base.code",
      "position": [
        2848,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66666666-6666-6666-8666-666666666613",
      "name": "Generate FYI Log Entry",
      "type": "n8n-nodes-base.code",
      "position": [
        2592,
        864
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66666666-6666-6666-8666-666666666614",
      "name": "Append Meeting to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3104,
        752
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "66666666-6666-6666-8666-666666666615",
      "name": "Derive Action Items",
      "type": "n8n-nodes-base.code",
      "position": [
        3360,
        360
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66666666-6666-6666-8666-666666666616",
      "name": "If Action Items Exist",
      "type": "n8n-nodes-base.if",
      "position": [
        3620,
        360
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "66666666-6666-6666-8666-666666666617",
      "name": "Insert Action Items to Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3880,
        360
      ],
      "parameters": {},
      "typeVersion": 4.5
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "meeting-transcript-action-items-v1",
  "connections": {
    "Derive Action Items": {
      "main": [
        [
          {
            "node": "If Action Items Exist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Action Items Exist": {
      "main": [
        [
          {
            "node": "Insert Action Items to Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post to Slack Channel": {
      "main": [
        [
          {
            "node": "Verify Slack Message Delivery",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate FYI Log Entry": {
      "main": [
        [
          {
            "node": "Append Meeting to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Analysis Results": {
      "main": [
        [
          {
            "node": "Route Based on Priority",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Meeting Analysis": {
      "main": [
        [
          {
            "node": "Parse Analysis Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route Based on Priority": {
      "main": [
        [
          {
            "node": "Prepare Slack Notification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Prepare Slack Notification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate FYI Log Entry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Email Transcript": {
      "main": [
        [
          {
            "node": "Read Log from Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Slack Notification": {
      "main": [
        [
          {
            "node": "Post to Slack Channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Identify Duplicate Meetings": {
      "main": [
        [
          {
            "node": "If Unique Meeting Identified",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Log from Google Sheets": {
      "main": [
        [
          {
            "node": "Identify Duplicate Meetings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Setup Meeting Configuration": {
      "main": [
        [
          {
            "node": "Extract Email Transcript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Unique Meeting Identified": {
      "main": [
        [
          {
            "node": "OpenAI Meeting Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verify Slack Message Delivery": {
      "main": [
        [
          {
            "node": "Append Meeting to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Meeting to Google Sheets": {
      "main": [
        [
          {
            "node": "Derive Action Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Email with Transcript Arrives": {
      "main": [
        [
          {
            "node": "Setup Meeting Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This workflow watches a Gmail label for new meeting transcript emails, extracts the transcript, uses OpenAI to generate a summary and action items, routes urgent items to the right Slack channel, and logs the meeting and action items to Google Sheets. Triggers every minute when…

Source: https://n8n.io/workflows/17028/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Complete AI-powered sales system Automates lead capture, qualification, and follow-up from multiple channels. AI INTELLIGENCE:

Gmail Trigger, Google Sheets, OpenAI +3
AI & RAG

LeadInboxTriageBot_GT. Uses gmailTrigger, openAi, googleSheets, gmail. Event-driven trigger; 36 nodes.

Gmail Trigger, OpenAI, Google Sheets +2
AI & RAG

Overview

Gmail Trigger, Google Drive, OpenAI +4
AI & RAG

Automate your entire invoice processing pipeline with AI-powered OCR, validation, and approval workflows 📄🤖. This n8n automation monitors incoming Gmail invoices, extracts structured data using OCR an

Gmail Trigger, Gmail, OpenAI +3
AI & RAG

A fully automated, AI-powered email assistant built in n8n that reads incoming emails, understands their intent and sentiment, classifies them by category, drafts intelligent context-aware replies, an

Gmail Trigger, Slack, Gmail +2