Unable to connect Slack Trigger

Describe the problem/error/question

I can’t make my Slack trigger work, I am writing a message in Slack and n8n is not notified. This is because I am unable to validate n8n’s request URL in Slack API’s Event Subscriptions menu.

I followed the docs and some issues but I keep on seeing the error “Your URL didn’t respond with the value of the challenge parameter” despite trying all the weird workarounds out there (workflow activation, test/prod urls etc…)

What is the error message (if any)?

On Slack API: “Your URL didn’t respond with the value of the challenge parameter”

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.) 
{
  "nodes": [
    {
      "parameters": {
        "trigger": [
          "app_mention"
        ],
        "channelId": {
          "__rl": true,
          "value": "C09C6AMQDCZ",
          "mode": "list",
          "cachedResultName": "karlotta-voice-agent"
        },
        "options": {}
      },
      "id": "slack-trigger",
      "name": "Slack Trigger",
      "type": "n8n-nodes-base.slackTrigger",
      "position": [
        112,
        304
      ],
      "typeVersion": 1,
      "webhookId": "4f0263c9-7230-4510-9b90-9dc0cd3433a6",
      "credentials": {
        "slackApi": {
          "id": "G5rR22Tx0KBIKE2Q",
          "name": "Slack account Karlotta"
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "resource": "audio",
        "operation": "transcribe",
        "options": {
          "language": "en"
        }
      },
      "id": "openai-transcription",
      "name": "OpenAI Transcription",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        400,
        304
      ],
      "typeVersion": 1.8,
      "credentials": {
        "openAiApi": {
          "id": "t3mbF1yBA2wWwaGM",
          "name": "OpenAi account Karlotta"
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "You are a personal assistant that helps manage tasks, calendar events, and content ideas.\n\nBased on the following voice note transcript, determine which tools to use and take appropriate actions:\n\nTranscript: {{ $('OpenAI Transcription').item.json.text }}\n\nAvailable tools:\n1. Airtable - For logging content ideas (requires title and description)\n2. Google Calendar - For creating calendar blockers/meetings (you create the event name)\n3. Notion - For creating tasks (requires title and due date)\n\nFor each action you take, provide:\n- What you did\n- The details of what was created\n- Any relevant links or IDs\n\nRespond in a structured format showing all actions taken.",
        "options": {
          "systemMessage": "You are an efficient personal assistant. Always be clear about what actions you're taking and provide relevant details and links for anything you create.",
          "maxIterations": 5,
          "returnIntermediateSteps": true
        }
      },
      "id": "claude-agent",
      "name": "Claude AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        720,
        320
      ],
      "typeVersion": 2.2,
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C09C6AMQDCZ",
          "mode": "list",
          "cachedResultName": "karlotta-voice-agent"
        },
        "text": "🎙️ **Voice Note Processed Successfully!**\n\n{{ $('Claude AI Agent').item.json.text }}\n\n---\n*Processed at {{ $now.toFormat('yyyy-MM-dd HH:mm:ss') }}*",
        "otherOptions": {}
      },
      "id": "slack-reply",
      "name": "Send Slack Reply",
      "type": "n8n-nodes-base.slack",
      "position": [
        1168,
        304
      ],
      "typeVersion": 2.3,
      "webhookId": "3c262bf3-e3a3-4979-a2f2-63bca45ba6a3",
      "credentials": {
        "slackOAuth2Api": {
          "id": "FDF37XOSvGC9iWUf",
          "name": "Slack account 4"
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "calendar": {
          "__rl": true,
          "value": "[email protected]",
          "mode": "list",
          "cachedResultName": "[email protected]"
        },
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.googleCalendarTool",
      "typeVersion": 1.3,
      "position": [
        816,
        576
      ],
      "id": "05913868-251d-4610-a655-7598e648bc9b",
      "name": "Create an event in Google Calendar",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "6zxCOwooQqCOczTj",
          "name": "Google Calendar account"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-20250514",
          "cachedResultName": "Claude 4 Sonnet"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "typeVersion": 1.3,
      "position": [
        576,
        576
      ],
      "id": "80593ba1-23b5-4630-981e-72870320ed24",
      "name": "Anthropic Chat Model",
      "credentials": {
        "anthropicApi": {
          "id": "68Zy8XFOUT7ojlSr",
          "name": "Anthropic account"
        }
      }
    },
    {
      "parameters": {
        "operation": "create",
        "base": {
          "__rl": true,
          "value": "appOQemiEIGuxkCkH",
          "mode": "list",
          "cachedResultName": "Content Machine Karlotta",
          "cachedResultUrl": "https://airtable.com/appOQemiEIGuxkCkH"
        },
        "table": {
          "__rl": true,
          "value": "tblOSUIxvNt2wjfsn",
          "mode": "list",
          "cachedResultName": "Ideas Karlotta",
          "cachedResultUrl": "https://airtable.com/appOQemiEIGuxkCkH/tblOSUIxvNt2wjfsn"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {},
          "matchingColumns": [],
          "schema": [
            {
              "id": "Name",
              "displayName": "Name",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Notes",
              "displayName": "Notes",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Assignee",
              "displayName": "Assignee",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Status",
              "displayName": "Status",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "options",
              "options": [
                {
                  "name": "Todo",
                  "value": "Todo"
                },
                {
                  "name": "In progress",
                  "value": "In progress"
                },
                {
                  "name": "Done",
                  "value": "Done"
                }
              ],
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Attachments",
              "displayName": "Attachments",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "array",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Attachment Summary",
              "displayName": "Attachment Summary",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.airtableTool",
      "typeVersion": 2.1,
      "position": [
        1104,
        576
      ],
      "id": "32e5c2b9-8ecd-4d65-b998-12f50872182d",
      "name": "Create a record in Airtable",
      "credentials": {
        "airtableTokenApi": {
          "id": "lyxiUNL4emIyNyzU",
          "name": "Airtable Personal Access Token account Karlotta"
        }
      }
    },
    {
      "parameters": {
        "resource": "databasePage",
        "databaseId": {
          "__rl": true,
          "value": "259d7e6d-77a2-8073-abbf-dc083a630af1",
          "mode": "list",
          "cachedResultName": "Notion DB Karlotta",
          "cachedResultUrl": "https://www.notion.so/259d7e6d77a28073abbfdc083a630af1"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.notionTool",
      "typeVersion": 2.2,
      "position": [
        960,
        576
      ],
      "id": "42c411cd-3208-4dda-9404-2adce3694144",
      "name": "Create a database page in Notion",
      "credentials": {
        "notionApi": {
          "id": "m3Tny86wA3yBahsF",
          "name": "Notion account Karlotta"
        }
      }
    }
  ],
  "connections": {
    "Slack Trigger": {
      "main": [
        [
          {
            "node": "OpenAI Transcription",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Transcription": {
      "main": [
        [
          {
            "node": "Claude AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude AI Agent": {
      "main": [
        [
          {
            "node": "Send Slack Reply",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create an event in Google Calendar": {
      "ai_tool": [
        [
          {
            "node": "Claude AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Claude AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Create a record in Airtable": {
      "ai_tool": [
        [
          {
            "node": "Claude AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create a database page in Notion": {
      "ai_tool": [
        [
          {
            "node": "Claude AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "86973dd07454e7340fa44e1737336d9313735ff19e8e3a741baf963cbe65351b"
  }
}

Share the output returned by the last node

n/a

Information on your n8n setup

  • n8n version: 1.106.3
  • Database (default: SQLite): default
  • n8n EXECUTIONS_PROCESS setting (default: own, main): where is that?
  • Running n8n via (Docker, npm, n8n cloud, desktop app): cloud
  • Operating system: MacOS

Hey @Karlotta hope all is well. Welcome to the community.

What you need to make sure:

  1. you configured the trigger with credentials

  • you activated the workflow
  • you copied the production URL
    or
  • you ran the trigger node manually
  • you copied the test URL
  1. you pasted the url to the slack event subscription page

If this is what you are doing, make sure your workflow is reachable from internet (it is not 127.0.0.1 or localhost) - the dns resolves correctly and the endpoint responds if you test it from postman or one of other third party services like https://reqbin.com/ or https://resttesttest.com/ responds (the response could have wording implying something is wrong like “Workflow Webhook Error: Workflow could not be started”, it is ok, it is still a response).

Let us know how it goes.

I am having the same issue (it also started yesterday), I was able to execute workflow with no issues before but now it is not connecting

@jabbson thanks for that, unfortunately I already did all these steps (and tried again) and it still bugs when I am trying to validate the Webhook Production URL.

When I go on reqbin.com, the first error message is normal (as the workflow is not active

{
    "code": 404,
    "message": "The requested webhook \"POST 4f0263c9-7230-4510-9b90-9dc0cd3433a6/webhook\" is not registered.",
    "hint": "The workflow must be active for a production URL to run successfully. You can activate the workflow using the toggle in the top-right of the editor. Note that unlike test URL calls, production URL calls aren't shown on the canvas (only in the executions list)"
}

and after I activate the workflow:

Unauthorized

Whereas my security set up is done exactly as requested (through Slack API).

Any idea why I am not authorized?

Thank you so much for your help!

The fact that you are getting “The workflow must be active for a production URL to run successfully” means that the workflow is NOT active.

I know, I deactivated it just to show that I am following the steps one by one, please check my whole answer, I activated it right after to then see the Unauthorized issue.

Apologies, I misread your last message. I am not sure why the Unauthorized message, it also doesn’t make sense to me.

1 Like

I have figured this out:
You need to “Watch Whole Workspace” to be able to handle the challenge.

Also, bring the workflow activeif you use production webhook. It took me a while to figure this out.

Good luck.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.