Denly

Connect Slack to coding agents

Want to launch a coding agent from Slack? Denly does that: a /denly command or a reaction turns a message into an agent task that plans, builds, and opens a pull request, with progress delivered back to the channel.

Slack

Create tasks from /denly commands or reactions, route them by Slack user, and receive Denly notifications.

1. Create a Slack app

In Slack apps create an app. Copy its Signing Secret, create the /denly slash command, enable Event Subscriptions with reaction_added, and install the app to copy the bot token.

2. Create the Denly connection

Open Workspace → Integrations → Connect → Slack.

  • External workspace or repository: the Slack team ID.
  • Bot token: the token from installing the app.
  • Slack signing secret: the Signing Secret from step 1. This is what every request is verified against – the secret Denly generates is unused for Slack, so a connection without it rejects everything.
  • Slash-command aliases: /denly. Optionally set a Reaction trigger (robot_face by default) and map channels to projects.

Routing is optional. Leave Default Denly assignee blank for unassigned tasks, or choose one workspace member to own everything from this connection.

For per-person routing use Route by external assignee: each row pairs one person in the provider (left) with a workspace member (right), and + adds another row. Routing follows the item's assignee in the provider, not whoever created it, and a matching row beats the default above.

The left-hand value must be the identifier the provider actually sends, which the field's placeholder names for you. Matching ignores surrounding spaces and letter case, but nothing else: a near-miss routes nothing and looks the same as a broken integration.

Map keys are Slack member IDs (U012ABCDEF), which is what command and reaction payloads carry – not display names.

3. Configure Slack URLs

  1. Set the slash-command Request URL to Denly’s generated URL.
  2. Set the Events API Request URL to the same URL.
  3. Subscribe to reaction_added.
  4. Grant channel read permissions for reaction enrichment and chat:write for notifications.

Read Slack request verification.

4. Test and troubleshoot

Run /denly fix the failing test in a mapped channel or add the configured reaction. Processed creates a task; Skipped means the command, reaction, channel or project mapping did not match. Failed on a reaction usually means the bot cannot read the message it was added to. An empty list means the Signing Secret does not match.

See also

All integrations and providers → · Connect Microsoft Teams to coding agents · Connect Discord to coding agents · Full documentation