Preview environment — data may be reset without notice. Do not use for real work.

Integrations

Slack notifications

Get a Slack DM when you're @-mentioned or assigned, and inline previews when MadiPlan share links land in a Slack channel. Two-step setup: workspace once, member once.

What you get

  • DM when you're @-mentioned in a comment, description, or progress note. The DM links straight back into the task.
  • DM when you're assigned a task. Same actor — the person who assigned you — is named in the DM.
  • Link previews when someone pastes a MadiPlan share link (madiplan.app/share/…) in a Slack channel where our bot is installed. Shows project name, description, task + member counts.
  • Slack DMs run alongside the in-app notifications — they're an extra channel, never a replacement. If Slack is unreachable for a moment, the in-app notification is still authoritative.
  • Optional channel announcement for member time off: if the workspace owner sets an announce channel, vacation / business-trip entries post there automatically — and edit or delete in place when the entry changes. See the Time off guide.

Step 1: connect the workspace (owner)

On /workspace → Settings, the Slack card shows a Connect button. Clicking it sends you to Slack's standard "Allow" screen and back; the connection lives at the workspace level, so this step happens once per Slack workspace.

  • Permissions we ask for: posting DMs (chat:write, im:write), reading workspace member emails (users:read, users:read.email — so we can match Slack accounts to MadiPlan accounts), and rendering link previews (links:read, links:write).
  • The bot never reads message history. It DMs the people who connected their own Slack account in step 2, and — only if you set a time-off announce channel (see Time off) — posts member time-off notices to that one channel. Nothing else is posted to channels.
  • Disconnect any time from the same card. We wipe the encrypted bot token from our DB and stop sending DMs immediately. Per-member bindings stay in place — if you reconnect later to the same Slack team, members don't need to re-bind.

Step 2: connect your account (each member)

Once the workspace is connected, a second Slack card appears for every member. Click "Get DMs in Slack" — we match your MadiPlan email to a Slack user in the connected workspace and, when found, bind the two so future mentions and assignments DM you.

  • Different Slack email? Expand "Use a different Slack email" on the card and enter the address you have on Slack — many people use a separate one from their MadiPlan email. We'll save it so a future reconnect prefills.
  • Match failure shows the address we looked up so you can spot a typo. Slack only matches by exact email — there's no partial / case-insensitive fallback.
  • Disconnect any time — the per-member card shows your bound Slack ID and a Disconnect button. Workspace owners' Slack connection is independent; disconnecting your own binding doesn't affect anyone else.

URL previews

Paste a share link (madiplan.app/share/<token>) in any Slack channel where our bot is installed and Slack will replace the bare URL with a small card: project name, one-line description, workspace name, task + member counts.

We deliberately do NOT preview /projects/<slug> URLs. Those need auth in MadiPlan, and other members of the Slack channel might not have access to that project — showing a preview would leak the project name to readers who can't actually open it. Share links carry the read access with the URL, so the preview is safe to render.

Troubleshooting

  • "Slack integration is not configured" — the operator hasn't set the Slack credentials on this environment yet. Contact support if you need them set.
  • "Your MadiPlan email isn't in this workspace's Slack" — your email differs between the two systems. Either side can be updated; once they match, click Connect again.
  • Not receiving DMs after connecting — verify the per-member card shows "Connected as @<your-slack-id>". If it does, send yourself an @-mention on a task to test; the DM lands in MadiPlan bot DMs (the same channel where the OAuth completion message arrived).
  • URL preview not rendering — only /share/<token> URLs unfurl. Confirm the project is set to public sharing under the project's Share menu; without that, the link itself wouldn't work either.

Quick reference

  • Owner step — /workspace → Settings → Slack → Connect.
  • Member step — Same page, second Slack card, "Get DMs in Slack".
  • Email match — Your MadiPlan email must equal your Slack email.
  • Privacy — DMs, plus an optional time-off announce channel; never reads message history.