What this workflow does
- Slack: new message in #it-help (Slack Trigger) fires on each message in the channel.
- Filter and build prompt (Code) drops bot posts, edits and thread replies, then builds a low-effort classification request with a strict schema and a fixed category list: how-to, access request, hardware, outage, account lockout, purchase, other.
- Claude: classify request (HTTP Request) calls the Anthropic Messages API with structured outputs.
- Parse and route (Code) parses the JSON and handles
refusalandmax_tokens. The Claude node’s error output is wired here too, so a failed API call still becomes a ticket instead of a lost message. Priority comes from category and urgency rules in code. - Route request (Switch) sends confident how-to questions to the knowledge base, everything else to ticketing, and outages to on-call as well.
- Search knowledge base (HTTP Request) runs a Confluence Cloud search in your IT space, and Format KB reply (Code) turns the top three results into links.
- Articles found? (If) replies in the thread with the links, or falls through to a ticket when nothing matched.
- JSM: create request (HTTP Request) creates a Jira Service Management request with the summary, extracted fields and original message. Slack: confirm ticket posts the issue key in the thread.
- Slack: page on-call alerts the on-call channel for outages. Slack: IT ops exceptions reports any request that could not be created.
Before you import
- n8n 1.x with a public URL so Slack can reach the trigger.
- A Slack app with Event Subscriptions for
message.channelsand thechannels:history,chat:writeandusers:readscopes. - An Anthropic API key.
- An Atlassian Cloud site with Jira Service Management and Confluence, plus an API token for an agent account.
Setup
- Import the JSON and attach the Slack, Anthropic and Jira Software Cloud credentials. The Jira credential (email and API token) also authenticates the Confluence search.
- Set
REPLACE_WITH_IT_HELP_CHANNEL_IDon the trigger and paste the trigger URL into your Slack app’s Event Subscriptions. - In Parse and route, set
REPLACE_WITH_SERVICE_DESK_ID, eachREPLACE_WITH_REQUEST_TYPE_ID_...andREPLACE_WITH_KB_SPACE_KEY. SetSET_PRIORITY_FIELDto true only if your request types expose Priority. - Replace
REPLACE_WITH_ATLASSIAN_SITEin the two Atlassian URLs and in Format KB reply. - Set
REPLACE_WITH_ONCALL_CHANNEL_IDandREPLACE_WITH_IT_OPS_CHANNEL_ID.
Test it
Post three messages in a test channel: a how-to question your knowledge base covers, an access request, and “Outlook is down for the whole office”. Expect a thread reply with links, a JSM request with its key in the thread, and a ticket plus an on-call alert. Then post a how-to question with no matching article and confirm it becomes a ticket.
Make it production-ready
- Add an error workflow in workflow settings so a broken trigger or credential alerts IT.
- Add a “did this fix it?” follow-up so knowledge base answers can be counted as deflections.
- Map the Slack user to a JSM customer so requests are raised on their behalf.
- Add manager approval and identity provider actions only for an allowlist of reversible changes, such as group membership.
claude-haiku-5-5is a cheaper option for this volume of short messages. Review a sample of classifications weekly.
Read the full guide at How to automate IT helpdesk requests, or talk to us if you want help with approvals and Microsoft Graph actions.