Connect Slack
Bind a project to one or more Slack channels so that conversations there are read into the project — decisions, actions, risks and the like that get raised in chat end up in your registers instead of being lost.
Where to set it up
Section titled “Where to set it up”Open the project’s Settings → Connections and find the Slack section.
There are two levels:
- Connecting the workspace — authorising ddx PMO to read your Slack. This is done once for your whole organisation, and only an org admin can do it.
- Binding channels — choosing which channels feed this project. Anyone with permission to change the project’s connections can do this once the workspace is connected.
Connecting the workspace
Section titled “Connecting the workspace”In the Slack section, click Add to Slack. You’re taken to Slack to approve the request, then returned to ddx PMO with the workspace connected — its name and a masked token appear in the Slack section header. Nothing to copy or paste.
ddx PMO only ever asks for read-only access: it reads channel and message history, and basic profile information (name and email, to match people to your stakeholders). It never posts to Slack and only sees channels the bot is added to. The credential is stored encrypted and never shown.
Binding a channel
Section titled “Binding a channel”With the workspace connected, choose Add channel… and search for the channel. Channels whose names match the project (its name, code, asset or contracting organisation) are suggested at the top.
- Public channel — choose Join & bind; the app’s bot joins the channel automatically. (If the bot is already a member, the button just reads Bind.)
- Private channel — Slack won’t let the bot add itself. In the channel, run
/invite @ddx-pmo, then come back and refresh. The picker shows /invite first until the bot is a member.
Each binding has a unit setting:
- Burst (default) — messages are grouped into conversation units after a quiet gap, so a back-and-forth is read as one piece of context. Best for most channels.
- Every message — each top-level message is read on its own. Use only for low-volume, urgent channels; on a busy channel it processes far more.
Back-fill of recent history
Section titled “Back-fill of recent history”When you bind a channel, choose backfill now to pull its history straight away. The button shows live progress. After the first run it becomes re-backfill, and the channel’s status reads synced.
Back-fill walks the channel’s full history (including thread replies), groups messages into units, and reads each one. From then on, new messages sync automatically every few minutes — you don’t need to back-fill again for routine updates.
What gets ingested
Section titled “What gets ingested”Channel messages and their thread replies arrive in the project Inbox as a Slack source, are read into the right registers, and feed Sentiment. System messages (joins, topic changes and the like) are skipped.
Managing a binding
Section titled “Managing a binding”Each bound channel row gives you:
- pause / resume — stop or restart automatic syncing for that channel.
- unbind — stop syncing; already-imported items stay.
- unbind & delete data — also removes the items imported from that channel and the register entries derived from them. The raw Slack archive is kept, so re-binding and rebuilding restores them.
From the Slack section header (org-admin actions) you can also:
- pause sync / resume sync — an org-level switch that stops all Slack syncing (the forward sync is skipped and backfills won’t start) until you resume.
- reconnect — re-run the Slack authorisation, for example to refresh the connection. It swaps the stored credential in place: your channel bindings and already-synced data are untouched, and it does not trigger a backfill.
- disconnect — remove the workspace connection (unbind its channels first).