Slack
Deliver Decuga notifications to Slack channels and DM recipients - and manage tasks, tickets, and change requests right from a Slack conversation with the Decuga AI assistant. Powered by a Bot OAuth Token.
Overview
The Slack connector does two things. First, it's a notification channel - once connected, every in-app notification your project generates is also delivered as a formatted Slack Block Kit message. You configure three separate channels - one each for Project Management, Service Desk, and Change Management events - so each team sees only the notifications relevant to them.
Second, on Pro and higher plans, Decuga becomes a two-way AI assistant right inside Slack - DM it or @mention it in a channel to create and update tasks, triage tickets, move change requests through approval, and more, in plain English. See AI assistant below.
In addition to channel posts, Decuga will attempt to DM each notification recipient directly in Slack. If the recipient's Decuga email matches a Slack workspace member, they receive a personal message even if they're not watching the channel.
Setup
Click Connect Slack
In your Decuga project, go to Integrations β Connections and click Connect on the Slack card. You're redirected straight to Slack's own authorization screen - no app to create, nothing to copy or paste.
chat:write- post messages to channels and DMschannels:read/groups:read- list channels for the dropdownschannels:history/groups:history- read a channel thread's messages, so the AI assistant has the whole thread as context, not just the one message that mentioned itim:write/im:history- open DM conversations and receive replies sent thereusers:read/users:read.email- look up recipients by email to DM themusers.profile:read- identify who's messaging the Decuga bot, by their Slack profile emailapp_mentions:read/files:read- the Decuga bot's DM/@mention features (Pro+)
Approve the requested permissions
Slack shows exactly which workspace you're installing to and what the Decuga bot will be able to do. Review it, then click Allow.
You're redirected straight back into Decuga's Integrations tab with the Slack card already showing Connected - there's no token to copy, and nothing is ever shown to you in plain text.
Pick a channel for each notification category
Once connected, click Configure on the Slack card. Three channel dropdowns appear - one for each notification category. The dropdowns are populated automatically by asking the bot to list every channel it can see.
/invite @Decuga (or Channel settings β Integrations β Add apps). Private channels only appear in the dropdown after the bot has been invited.| Setting | Events routed here |
|---|---|
| Task Notifications Channel | TASK_ASSIGNED Β· TASK_STATUS_CHANGED Β· TASK_DUE_TODAY Β· MENTION / COMMENT_REPLY / COMMENT_ASSIGNED on tasks or documents |
| Service Desk Channel | TICKET_ASSIGNED Β· TICKET_STATUS_CHANGED Β· TICKET_CUSTOMER_REPLY Β· TICKET_SLA_BREACHED Β· MENTION / COMMENT_REPLY / COMMENT_ASSIGNED on tickets |
| Change Management Channel | CHANGE_SUBMITTED Β· CHANGE_APPROVED Β· CHANGE_REJECTED Β· CHANGE_COMPLETED Β· CHANGE_FAILED Β· CHANGE_ROLLED_BACK Β· MENTION / COMMENT_REPLY / COMMENT_ASSIGNED on change requests |
All three fields are optional - if a channel is left blank, the channel post for that category is skipped. Direct messages to recipients are always attempted regardless of channel configuration.
Click Save. The Integrations tab now shows a Notifications active badge. Notifications flow automatically from this point; there is no manual import trigger.
Channel routing
Each notification event is posted to exactly one channel. Most event types have a fixed destination, but MENTION, COMMENT_REPLY, and COMMENT_ASSIGNED are context-sensitive - they follow the object they belong to rather than always going to the PM channel:
| Object type | Channel used |
|---|---|
| Task or Document | Task Notifications Channel |
| SD Ticket | Service Desk Channel |
| Change Request | Change Management Channel |
The bot must be a member of each channel it posts to (public or private) - invite it with /invite @Decuga. Without membership Slack rejects the post and nothing appears in that channel. The same applies to @mentioning the bot in a channel: it only receives mentions from channels it has joined. Direct messages do not require channel membership.
In addition to the channel post, Decuga always tries to DM the recipient:
- Look up the recipient's Decuga email in the Slack workspace (
users.lookupByEmail). - If found, open (or reuse) a direct-message channel (
conversations.open). - Post a personalised βHey Nameβ message to that DM channel.
Notification types
All 15 Decuga notification event types are supported. The Channel column shows which configured channel receives the event.
| Event | Slack label | Channel | Recipient |
|---|---|---|---|
| TASK_ASSIGNED | π Task assigned | PM | Sent to the assignee when a task is created or reassigned. |
| TASK_STATUS_CHANGED | π Task status changed | PM | Sent to people watching a task when its status changes. |
| TASK_DUE_TODAY | β° Task due today | PM | Sent to the assignee on the day a task is due. |
| MENTION | π¬ You were mentioned | Context | Routes to PM, SD, or Change channel based on where the mention occurred. |
| COMMENT_REPLY | π Reply to your comment | Context | Routes to PM, SD, or Change channel based on the object being commented on. |
| COMMENT_ASSIGNED | π Comment assigned to you | Context | Routes to PM, SD, or Change channel based on the object being commented on. |
| TICKET_ASSIGNED | π« Ticket assigned to you | SD | Sent to the assignee when a service desk ticket is created or reassigned. |
| TICKET_STATUS_CHANGED | π Ticket status changed | SD | Sent to the ticket creator when an agent changes the ticket status. |
| TICKET_CUSTOMER_REPLY | π¬ Customer replied on a ticket | SD | Sent to the assignee, and to watchers who are project members, when a customer replies through the portal or by email. |
| TICKET_SLA_BREACHED | β³ Ticket SLA breached | SD | Sent when a service desk ticket breaches its SLA. |
| CHANGE_SUBMITTED | π₯ Change submitted for approval | Change | Sent to the assigned reviewer when a change request is submitted. |
| CHANGE_APPROVED | β Change request approved | Change | Sent to the CR creator when all approvers have approved. |
| CHANGE_REJECTED | β Change request rejected | Change | Sent to the CR creator when any approver rejects. |
| CHANGE_COMPLETED | π Change completed successfully | Change | Sent to the CR creator when the pipeline moves to COMPLETED. |
| CHANGE_FAILED | π¨ Change implementation failed | Change | Sent to the CR creator when the pipeline moves to FAILED. |
| CHANGE_ROLLED_BACK | βͺ Change rolled back | Change | Sent to the CR creator when the pipeline moves to ROLLED_BACK. |
AI assistant
Once connected, Decuga is a real conversational assistant in Slack - the same one available from the dashboard's chat panel, with access to virtually everything you can do there: creating and updating tasks, triaging Service Desk tickets, moving change requests through approval, managing sprints, goals, and roadmap items, and more. Every reply is automatically scoped to your own Decuga account and permissions - exactly like logging into the dashboard yourself.
In a direct message
Just type - no need to mention the bot by name. Every message you send Decuga in a DM is treated as a request.
In a channel
Start with @Decuga so it knows the message is for it and not the rest of the channel. The bot must be a member of the channel first - invite it with /invite @Decuga.
Replying to a question Decuga asked: if it asks you something back (βWould you like me to create a new task with that title?β), just reply in the same thread - you don't need to @mention it again. Decuga recognizes its own threads and picks the conversation back up; a plain reply anywhere else it didn't start is left alone, the same way you wouldn't expect a reply in someone else's thread to be about you.
Referring to a task, ticket, or change request: use its code (e.g. DT-51) when you know it, or describe it in plain words (βthe task about the login redirectβ) and Decuga will look it up for you. If more than one thing matches, it asks which one you meant rather than guessing.
Example commands
A sample of what you can ask - not an exhaustive list. Type naturally; these are just starting points.
Tasks & sub-tasks
- βCreate a task to update the login page copy
- βAdd a sub-task of DT-51 called Fix mobile layout
- βAssign DT-42 to Amit
- βMove DT-42 to In Review
- βWhat are my open tasks?
- βShow me DT-51
Sprints & backlog
- βWhat's in the current sprint board?
- βStart Sprint 5
- βWhat's in the backlog?
- βComplete the current sprint
Comments & watchers
- βAdd a comment to DT-51 saying it's deployed to staging
- βWho's watching DT-42?
- βAdd Priya as a watcher on DT-51
Service Desk
- βCreate a ticket for a customer who can't log in
- βWhat tickets are assigned to me?
- βChange ticket TKT-118 to Resolved
Change management
- βSubmit CR-12 for approval
- βApprove CR-12
- βWhat change requests are pending my review?
Goals, roadmap & reporting
- βWhat's the status of our Q3 OKRs?
- βAdd a roadmap item for dark mode
- βGive me a project analytics summary
- βShow the burndown for the current sprint
Troubleshooting
No messages appearing in any channel
Confirm the Decuga installation shows "Notifications active" in Integrations β Connections. If it shows "Disconnected" instead, the workspace admin may have removed the app from Slack - reconnect from that same screen.
Messages appear in some channels but not others
The bot must be a member of each channel it posts to. Open the channel in Slack and type /invite @Decuga. Also verify the correct channel is selected in the Configure panel for that category.
Channel dropdowns are empty after connecting
The bot can only list channels it has been added to, plus public channels in most Slack plans. Invite the bot to the channels you want first, then reopen Configure.
Recipients are not receiving DMs
DMs require the user's Decuga account email to match a Slack workspace member. Confirm emails match. Some Slack plans also restrict DMs from apps - check your workspace settings under Permissions.
Notifications stopped after working for a while
Someone likely removed the Decuga app from your Slack workspace, or a workspace admin revoked its access directly. Decuga detects this automatically and marks the connection disconnected - just click Connect again in Integrations β Connections to reauthorize.
I assigned a task to myself but got no Slack message
Self-notifications are intentionally suppressed - if you are both the actor and the recipient of an event, no notification is sent (in-app or Slack).
Can I send Change Management events to the same channel as PM events?
Yes - set the same channel ID in both dropdowns. Each category is routed independently; pointing them at the same channel is fine.
I @mentioned Decuga in a channel but it didn't reply
The bot must be a member of that channel first - type /invite @Decuga there, then try again. If you're on a Free plan, the assistant is a Pro-and-higher feature; Decuga replies with a link to upgrade instead of ignoring you.
I replied to Decuga's question in a thread and nothing happened
Decuga only treats a mention-less thread reply as directed at it when it's a thread Decuga itself started - ordinary conversation between teammates in another thread is left alone. If the bot asked the question in a DM, just reply normally; if it was in a channel, make sure you're replying in that same thread, not starting a new message.
I laid out details across a whole thread, then @mentioned Decuga to act on it - but it asks basic questions as if it never read the thread
If your workspace connected Decuga before this capability was added, the underlying Slack app may be missing the channels:history/groups:history scopes it needs to read a channel thread's messages - without them, Decuga can only see the single message that mentioned it, not the rest of the thread. Go to Integrations β Connections, disconnect the Slack card, then reconnect it - that re-runs OAuth and picks up any scopes added since you first connected.