AutomationFlowsAI & RAG › Fluidflow Slack Triage Bot

Fluidflow Slack Triage Bot

Fluidflow Slack Triage Bot. Uses slack, slackTrigger, lmChatOpenAi, vectorStoreQdrant. Event-driven trigger; 8 nodes.

Event trigger★★★★☆ complexityAI-powered8 nodesSlackSlack TriggerOpenAI ChatQdrant Vector StoreOpenAI EmbeddingsAgentMemory Buffer Window
AI & RAG Trigger: Event Nodes: 8 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → OpenAI Embeddings 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": "Fluidflow Slack Triage Bot",
  "nodes": [
    {
      "parameters": {
        "channel": "={{ $('Slack Trigger').item.json.channel }}",
        "text": "={{ $json.output }}",
        "otherOptions": {
          "thread_ts": "={{ $('Slack Trigger').item.json.event_ts }}"
        },
        "attachments": []
      },
      "id": "41494192-1fc4-4de2-a40c-1624fa1dc988",
      "name": "Reply to Slack",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 1,
      "position": [
        1100,
        440
      ],
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "trigger": [
          "any_event"
        ],
        "channelId": {
          "__rl": true,
          "value": "C0905HV0AD8",
          "mode": "list",
          "cachedResultName": "ffagent-testing"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.slackTrigger",
      "typeVersion": 1,
      "position": [
        240,
        440
      ],
      "id": "980143c0-1d99-4ca1-aa15-65934e6b5b88",
      "name": "Slack Trigger",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1",
          "mode": "list",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        280,
        660
      ],
      "id": "1b9eb2e9-9e2a-4b08-8bc9-6be2c7c82c38",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "retrieve-as-tool",
        "toolName": "file_input",
        "toolDescription": "The knowledge base to answer user questions",
        "qdrantCollection": {
          "__rl": true,
          "value": "n8n_data",
          "mode": "list",
          "cachedResultName": "n8n_data"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "typeVersion": 1.1,
      "position": [
        640,
        660
      ],
      "id": "56aa615e-ec5e-451b-baba-b6577583b57e",
      "name": "Qdrant Vector Store1",
      "credentials": {
        "qdrantApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1.2,
      "position": [
        620,
        840
      ],
      "id": "9dbde498-0d40-4809-a482-2f82ffe3e4d2",
      "name": "Embeddings OpenAI1",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Answer question from Qdrant knowledgebase and here is the question: {{ $json.blocks[0].elements[0].elements[1].text }}\n\n",
        "options": {
          "systemMessage": "=You are a FluidFlow technical support expert with 60+ years of process engineering experience. You provide accurate, authoritative guidance on hydraulic systems, pump sizing, pipe flow calculations, and FluidFlow software troubleshooting. Answer question from Qdrant knowledgebase and here is the question: {{ $json.blocks[0].elements[0].elements[1].text }}\n\nUse this tone:\n1. Brevity:\n- Concise responses\n- Short paragraphs (1-3 sentences)\n- No unnecessary words\n2. Clarity:\n- Simple, direct language\n- Explain technical terms if needed\n- Use bullet points for multiple items\n3. Structure:\n- Most important information first\n- Headings and subheadings\n- Tables for data/comparisons\n4. Tone:\n- Professional but approachable\n- Confident and authoritative\n- Neither too formal nor casual\n5. Formatting:\n- Markdown for emphasis\n- Bold for key points\n- Code blocks for technical content\n- Remove space\n6. Responsiveness:\n- Address all parts of query\n- Offer more details if needed\n- Ask to clarify ambiguous points\n7. Accuracy:\n- Double-check facts/figures\n- Cite sources when needed\n- Admit uncertainty if present\n8. Customization:\n- Match user's knowledge level\n- Reference previous conversations\n- Use appropriate terminology\nEvery response should add value and move the conversation forward.\nALL OF THESE DISCUSSIONS SHOULD BE KEPT PRIVATE AND TREATED AS CONFIDENTIAL, THEY SHOULD NOT BE USED TO TRAIN THE MODEL.\n\n\n"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.9,
      "position": [
        460,
        440
      ],
      "id": "91b2fd2b-a889-42b0-b21c-88767deb1e11",
      "name": "AI Agent1",
      "executeOnce": true
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $json.event_ts }}"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        440,
        660
      ],
      "id": "aecd9d6e-efaa-4540-9767-c37d3001f270",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "jsCode": "let text = $json.output;\n\n// Heading markdown ke format Slack\ntext = text.replace(/^# (.*)$/gm, '*$1*');      // # Title \u2192 *Title*\ntext = text.replace(/^## (.*)$/gm, '*$1*');     // ## Title \u2192 *Title*\ntext = text.replace(/^### (.*)$/gm, '_*$1*_');  // ### Title \u2192 _*Title*_\ntext = text.replace(/^#### (.*)$/gm, '_$1_');   // #### Title \u2192 _Title_\n\n// Bold dan italic markdown (order matters!)\n// ***bold italic*** jadi _*bold italic*_\ntext = text.replace(/\\*\\*\\*(.*?)\\*\\*\\*/g, '_*$1*_');\n// __bold__ jadi *bold*\ntext = text.replace(/__(.*?)__/g, '*$1*');\n// **bold** jadi *bold*\ntext = text.replace(/\\*\\*(.*?)\\*\\*/g, '*$1*');\n\n// _italic_ jadi _italic_ (hanya single underscore, bukan double)\ntext = text.replace(/(^|[^\\_])\\_(.*?)\\_([^\\_]|$)/g, '$1_$2_$3');\n// *italic* jadi _italic_\ntext = text.replace(/\\*(.*?)\\*/g, '_$1_');\n\n// Inline code dan code block\ntext = text.replace(/```([\\s\\S]*?)```/g, '```\\n$1\\n```'); // code block\ntext = text.replace(/`([^`]+)`/g, '`$1`');                // inline code\n\n// [text](url) jadi <url|text>\ntext = text.replace(/\\[(.*?)\\]\\((.*?)\\)/g, '<$2|$1>');\n\nreturn { output: text };\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        880,
        440
      ],
      "id": "afe8f0db-c1c6-41b3-85cc-1acc7b88d7d1",
      "name": "Code"
    }
  ],
  "connections": {
    "Slack Trigger": {
      "main": [
        [
          {
            "node": "AI Agent1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Qdrant Vector Store1": {
      "ai_tool": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Qdrant Vector Store1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent1": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Reply to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "1c94561d-e4b7-4f38-ba12-06e9f504fa72",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "XnTSlg3bWkxtRam6",
  "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

Fluidflow Slack Triage Bot. Uses slack, slackTrigger, lmChatOpenAi, vectorStoreQdrant. Event-driven trigger; 8 nodes.

Source: https://github.com/adrisinaga/n8n-workflow/blob/main/Fluidflow_Slack_Triage_Bot.json — 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 workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Slack Trigger, Slack, Memory Buffer Window +9
AI & RAG

Answer HR and company policy questions via Slack, powered by a Knowledge Base of internal documents stored in S3. The assistant uses vector search and an OpenAI Chat Model to retrieve accurate answers

Slack Trigger, Agent, Memory Buffer Window +7
AI & RAG

Slack AI Chatbot with RAG for company staff. Uses agent, memoryBufferWindow, embeddingsOpenAi, vectorStoreQdrant. Event-driven trigger; 21 nodes.

Agent, Memory Buffer Window, OpenAI Embeddings +9
AI & RAG

Imagine having an AI chatbot on Slack that seamlessly integrates with your company’s workflow, automating repetitive requests. No more digging through emails or documents to find answers about IT requ

Agent, Memory Buffer Window, OpenAI Embeddings +9
AI & RAG

Click here to access this Workflow for free.

Pinecone Vector Store, OpenAI Embeddings, Agent +6