Quick overview
This workflow listens for Slack app mentions in a thread, extracts agreed-upon tasks using Anthropic Claude, validates assignees and due dates, and creates corresponding issues in Nulab Backlog via the Backlog API, then replies in the original Slack thread with results.
How it works
- Triggers when someone mentions the Slack app, and checks the user is on an allowed list and that the mention is posted inside a thread.
- Pulls the full Slack thread replies and retrieves Slack user profiles to resolve user IDs to display names.
- Fetches Backlog project details including project members, issue types, priorities, and recently created issues to support validation and deduplication.
- Sends the formatted thread transcript to Anthropic Claude to extract a JSON list of agreed tasks with exact quotes, suggested titles, optional assignee wording, and optional due-date wording.
- Verifies each extracted task by matching the quotes against the original message text, mapping the assignee to exactly one Backlog member, and converting relative due-date phrases into an absolute due date based on the message date.
- Skips tasks that already have a Backlog issue created from the same Slack message, creates the remaining issues in Backlog, and posts a single summary reply back into the Slack thread with issue links and any warnings or skipped items.
Setup
- Create and install a Slack app that subscribes to app_mention events, invite it to target channels, and add an n8n Slack credential with permissions to read thread history, list users, and post messages.
- Create a Backlog API key, add an n8n HTTP Query Auth credential that sends it as the apiKey query parameter, and set your Backlog space URL and project key in the workflow configuration.
- Add an Anthropic credential in n8n and select the Claude model used by the workflow.
- Update the Config values (allowed Slack user IDs, default issue type, default priority, timezone, and optional Slack display name → Backlog member name mapping) before activating the workflow.