AutomationFlowsAI & RAG › Capture and Process Ideas with Gpt-4o-mini, Notion and Slack Notifications

Capture and Process Ideas with Gpt-4o-mini, Notion and Slack Notifications

ByAvkash Kakdiya @itechnotion on n8n.io

This workflow captures idea submissions from a webhook and enriches them using AI. It extracts key fields like Title, Tags, Submitted By, and Created date in IST format. The cleaned data is stored in a Notion database for centralized tracking. Finally, a confirmation message is…

Webhook trigger★★★★☆ complexityAI-powered9 nodesAgentOpenAI ChatNotionSlack
AI & RAG Trigger: Webhook Nodes: 9 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → OpenAI Chat 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": "Notion Ideas Collector",
  "nodes": [
    {
      "id": "555579a1-2e02-4273-85d4-a2d456b1b083",
      "name": "\ud83c\udf10 Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -240,
        64
      ],
      "parameters": {
        "path": "webhook-path-here",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "0ae8d1e6-0ba1-42d8-a477-f00434d0f449",
      "name": "\ud83e\udd16 AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -16,
        64
      ],
      "parameters": {
        "text": "={{ $json.body.text }}\nUser ID: {{ $json.body.user_id }}\n\nthis is the input based on the input you have to give \nTitle, tags, submitted by, created(Actual date in IST) {{ new Date().toISOString() }}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "1a11f67b-58f0-4bab-9a39-24504216e038",
      "name": "\ud83d\udcac OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        64,
        288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "e1a3b2c3-6853-4df0-8cd3-33f3f8c2a087",
      "name": "\ud83e\uddd1\u200d\ud83d\udcbb Code",
      "type": "n8n-nodes-base.code",
      "position": [
        336,
        64
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\n\nlet results = [];\n\nfor (const item of items) {\n  const text = item.json.output;\n\n  const titleMatch = text.match(/Title:\\s*(.+)/);\n  const tagsMatch = text.match(/Tags:\\s*(.+)/);\n  const submittedByMatch = text.match(/Submitted by:\\s*(.+)/);\n  const createdMatch = text.match(/Created:\\s*(.+)/);\n\n  results.push({\n    json: {\n      Title: titleMatch ? titleMatch[1].trim() : null,\n      Tags: tagsMatch ? tagsMatch[1].split(\",\").map(tag => tag.trim()) : [],\n      \"Submitted By\": submittedByMatch ? submittedByMatch[1].trim() : null,\n      Created: createdMatch ? createdMatch[1].trim() : null\n    }\n  });\n}\n\nreturn results;"
      },
      "typeVersion": 2
    },
    {
      "id": "a4d36c4d-8c78-405b-9465-ae05d5c7f54e",
      "name": "\ud83d\udcdd Add to Notion",
      "type": "n8n-nodes-base.notion",
      "position": [
        560,
        64
      ],
      "parameters": {
        "title": "={{ $json.Title }}",
        "options": {},
        "resource": "databasePage",
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_NOTION_DATABASE_ID"
        },
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "Title|title",
              "type": "title",
              "title": "={{ $json.Title }}"
            },
            {
              "key": "Submitted By|rich_text",
              "type": "rich_text",
              "textContent": "={{ $json['Submitted By'] }}"
            },
            {
              "key": "Created|date",
              "date": "={{ $json.Created.replace(' IST', '') }}",
              "timezone": "Asia/Kolkata",
              "includeTime": false
            },
            {
              "key": "Tags|rich_text",
              "textContent": "={{ $json.Tags.join(', ') }}"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "94c0952d-7f0e-4be5-9041-6144d20fdd13",
      "name": "\u2705 Send Confirmation (Slack)",
      "type": "n8n-nodes-base.slack",
      "position": [
        784,
        64
      ],
      "parameters": {
        "text": "\u2705 Your idea has been added to our Product Ideas database!\n\n\ud83d\udca1 *Idea:* {{ $json.Title }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "#general"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "typeVersion": 2
    },
    {
      "id": "37362989-2e8c-49aa-81ff-cee9ce44c8b8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        -368
      ],
      "parameters": {
        "color": 5,
        "width": 784,
        "height": 800,
        "content": "## \ud83d\udee0\ufe0f Data Handling & Transformation\n\n*Input text comes in via Webhook ($json.body.text + user_id).\n\nAI Agent is instructed to output Title, Tags, Submitted By, and Created date in IST.\n\nThe Code node ensures clean extraction:\n\nTitle \u2192 Captures the idea title.\n\nTags \u2192 Splits into an array, trims spaces.\n\nSubmitted By \u2192 Extracts submitter name.\n\nCreated \u2192 Extracts and cleans up date (removes \"IST\" when storing).*"
      },
      "typeVersion": 1
    },
    {
      "id": "0546d4fa-157a-49ba-93cb-95d34a2080c9",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        -368
      ],
      "parameters": {
        "color": 3,
        "width": 192,
        "height": 800,
        "content": "## \ud83d\uddc2\ufe0f Database (Notion Integration)\n\n*Data is added into Notion (Ideas DB) with mapped properties:\n\nTitle \u2192 title property\n\nSubmitted By \u2192 rich text\n\nCreated \u2192 date (IST, but stored cleanly without \"IST\" suffix)\n\nTags \u2192 rich text (comma-separated list)*"
      },
      "typeVersion": 1
    },
    {
      "id": "b044e4f5-7a4f-4bd5-9093-1785a1553bf4",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -368
      ],
      "parameters": {
        "color": 4,
        "width": 208,
        "height": 800,
        "content": "## \ud83d\udcac Notifications\n\n*Once saved in Notion, the workflow notifies Slack with a friendly message:\n\nConfirms submission.\n\nEchoes back the submitted idea title.*"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "\ud83c\udf10 Webhook": {
      "main": [
        [
          {
            "node": "\ud83e\udd16 AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udd16 AI Agent": {
      "main": [
        [
          {
            "node": "\ud83e\uddd1\u200d\ud83d\udcbb Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\uddd1\u200d\ud83d\udcbb Code": {
      "main": [
        [
          {
            "node": "\ud83d\udcdd Add to Notion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcdd Add to Notion": {
      "main": [
        [
          {
            "node": "\u2705 Send Confirmation (Slack)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcac OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "\ud83e\udd16 AI Agent",
            "type": "ai_languageModel",
            "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 captures idea submissions from a webhook and enriches them using AI. It extracts key fields like Title, Tags, Submitted By, and Created date in IST format. The cleaned data is stored in a Notion database for centralized tracking. Finally, a confirmation message is…

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

This n8n workflow orchestrates a powerful suite of AI Agents and automations to manage and optimize various aspects of an e-commerce operation, particularly for platforms like Shopify. It leverages La

Google Sheets, HTTP Request, Slack +10
AI & RAG

Public-facing professionals (developer advocates, founders, marketers, content creators) who get bombarded with LinkedIn messages that aren't actually for them - support requests when you're in market

Slack, HTTP Request, Agent +4
AI & RAG

This workflow automates the end-to-end employee onboarding process by provisioning new hires across multiple internal systems and delivering a personalized welcome experience.

HTTP Request, Slack, Notion +4
AI & RAG

🧾 An intelligent automation system that turns Google Meet recordings into structured meeting notes — integrating Fireflies.ai, OpenAI GPT-4.1-mini, Notion, Slack, Google Drive, and Gmail via n8n.

Google Drive, OpenAI Chat, Output Parser Structured +8
AI & RAG

A high-fidelity employee onboarding engine: Intake → Role-Based Enrichment → AI Personalization → IT Provisioning.

Notion, Jira, Slack +5