AutomationFlowsAI & RAG › Slack

Slack

Slack. Uses slackTrigger, agent, lmChatGoogleGemini, slack. Event-driven trigger; 8 nodes.

Event trigger★★★★☆ complexityAI-powered8 nodesSlack TriggerAgentGoogle Gemini ChatSlackMemory Buffer Window
AI & RAG Trigger: Event Nodes: 8 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → Google Gemini 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
{
  "updatedAt": "2025-11-16T12:10:03.000Z",
  "createdAt": "2025-11-16T09:29:34.344Z",
  "id": "CEREUymv8Tli6LYh",
  "name": "Slack",
  "description": null,
  "active": false,
  "isArchived": true,
  "nodes": [
    {
      "parameters": {
        "trigger": [
          "message"
        ],
        "watchWorkspace": true,
        "options": {
          "resolveIds": false
        }
      },
      "type": "n8n-nodes-base.slackTrigger",
      "typeVersion": 1,
      "position": [
        -1440,
        -96
      ],
      "id": "b07fbe97-b809-404b-84bc-ce5699d8d658",
      "name": "Slack Trigger",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=You are an AI assistant that lives in a Slack workspace.\n\nYour job:\n- Have friendly, helpful conversations with users.\n- Always respond as a helpful coworker, not a robot.\n- Your answer will be sent as a *thread reply* to the user\u2019s original message.\n\nAvailable tool:\n- \"Get Thread Messages\": use this tool to fetch the existing Slack thread so you can see previous messages and maintain context.\n  - Call this when the user\u2019s message seems to be a follow-up, unclear, or missing context.\n  - After you read the thread, respond based on the full conversation, not just the last message.\n\nReply rules:\n1. **Always assume your reply will be posted in the same thread** as the message with the given timestamp.\n   - Do NOT output channel IDs, thread_ts, or any metadata \u2014 only the message text itself.\n2. Be concise and clear. Prefer short paragraphs and bullet points when helpful.\n3. If something is ambiguous, ask a short clarifying question instead of guessing.\n4. Use the user\u2019s name naturally once at the start if it feels appropriate.\n5. Do not mention tools or internal implementation details in your reply.\n\nContext:\n- User first name: {{ $json.first_name }}\n- Channel ID: {{ $json.channel }}\n- Thread timestamp: {{ $json.timestamp }}\n- User message: {{ $json.text }}\n\nGiven the user message and the context above, decide whether you need to call \"Get Thread Messages\". \nThen, write the best possible reply that should be posted as a Slack thread message.\n\n\n",
        "options": {
          "systemMessage": "You are a helpful assistant, your name is Jarvis, your ai assistant for today"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3,
      "position": [
        -656,
        -224
      ],
      "id": "b14a55c9-62d2-4def-8d89-61524b020f86",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        -672,
        288
      ],
      "id": "8f4f333e-f79d-4511-8a94-b8c82ef48f30",
      "name": "Google Gemini Chat Model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "user",
        "user": {
          "__rl": true,
          "value": "={{ $json.user }}",
          "mode": "id"
        }
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -1040,
        -80
      ],
      "id": "303aebe9-defb-4676-8955-668aa16a474d",
      "name": "Get information about a user",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "80f580b8-2091-4235-99fb-858510bff83e",
              "name": "timestamp",
              "value": "={{ $('Slack Trigger').item.json.ts }}",
              "type": "string"
            },
            {
              "id": "576c521b-199b-430b-82bc-f8f9d0b389bf",
              "name": "user",
              "value": "={{ $('Slack Trigger').item.json.user }}",
              "type": "string"
            },
            {
              "id": "7936a6ba-62aa-49f3-b600-8910a6c210f4",
              "name": "channel",
              "value": "={{ $('Slack Trigger').item.json.channel }}",
              "type": "string"
            },
            {
              "id": "5698a03c-cdd0-46ca-86bb-312802f7066f",
              "name": "text",
              "value": "={{ $('Slack Trigger').item.json.text }}",
              "type": "string"
            },
            {
              "id": "2d0d000c-45c1-4256-b72c-d00d2d6651e2",
              "name": "first_name",
              "value": "={{ $json.profile.first_name }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -832,
        -48
      ],
      "id": "9f265e32-c116-4319-bde8-84961b361ff7",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C09PQU0KVB3",
          "mode": "list",
          "cachedResultName": "bookings"
        },
        "text": "={{ $json.output }}",
        "otherOptions": {
          "includeLinkToWorkflow": false,
          "thread_ts": {
            "replyValues": {
              "thread_ts": "={{ $('Edit Fields').item.json.timestamp }}"
            }
          }
        }
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -288,
        -64
      ],
      "id": "5c819c3b-9712-4dfe-b739-6e5078ce8a80",
      "name": "send message and reply to a thread",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $json.user }}"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        -496,
        32
      ],
      "id": "5c2b72d8-4f3f-4bd2-bb03-1828f0899d4d",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "20626904-1647-4305-be34-a3f1a9fd2bc4",
              "leftValue": "={{ $json.bot_id }}",
              "rightValue": "={{ $json.user }}",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -1264,
        240
      ],
      "id": "c3076ed2-2242-4b89-9bf7-4ec1d7f2d317",
      "name": "If"
    }
  ],
  "connections": {
    "Slack Trigger": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "send message and reply to a thread",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get information about a user": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Get information about a user",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "a9346146-249e-4216-9226-f4d3d0842488",
  "activeVersionId": null,
  "versionCounter": 3,
  "triggerCount": 0,
  "shared": [
    {
      "updatedAt": "2025-11-16T09:29:34.346Z",
      "createdAt": "2025-11-16T09:29:34.346Z",
      "role": "workflow:owner",
      "workflowId": "CEREUymv8Tli6LYh",
      "projectId": "6TsYTzg0HY92xH2K",
      "project": {
        "updatedAt": "2025-11-14T08:33:27.896Z",
        "createdAt": "2025-11-14T07:49:25.938Z",
        "id": "6TsYTzg0HY92xH2K",
        "name": "Christine Kam <windowrevival@gmail.com>",
        "type": "personal",
        "icon": null,
        "description": null,
        "creatorId": "bc31a112-3ed8-48ca-b94c-7225571c3d7b"
      }
    }
  ],
  "tags": [],
  "activeVersion": null
}

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

Slack. Uses slackTrigger, agent, lmChatGoogleGemini, slack. Event-driven trigger; 8 nodes.

Source: https://github.com/donPuerto/n8n-workflows/blob/1218084aa4a7b90465c878f09c6960f21d9f1f9e/workflows/Slack.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 connects Slack with Google Workspace, Cal.com, OpenWeather, and Google Gemini to act as a Slack-based assistant for Gmail, Calendar, Docs, Sheets, Drive, and Contacts, and to post an aut

Slack Trigger, Agent, Google Gemini Chat +12
AI & RAG

💸💬 Slack Pro is powerful — but the price hurts, especially for growing teams. This workflow is designed as a low-cost alternative solution that provides some Slack Pro functions (searchable history +

Slack Trigger, Agent, Google Gemini Chat +4
AI & RAG

Customer support agent. Uses httpRequest, googleSheets, memoryBufferWindow, googleSheetsTool. Event-driven trigger; 19 nodes.

HTTP Request, Google Sheets, Memory Buffer Window +5
AI & RAG

Customer support agent. Uses httpRequest, googleSheets, memoryBufferWindow, googleSheetsTool. Event-driven trigger; 19 nodes.

HTTP Request, Google Sheets, Memory Buffer Window +5
AI & RAG

This workflow integrates Google Analytics 4 (GA4) with Slack, enabling users to query their website data using natural language inside a dedicated Slack channel. An AI Agent interprets user queries, f

Slack Trigger, Agent, Google Analytics Tool +3