Agent setup guide
Incident Comms Drafter
Engineers' raw incident updates turned into calm customer status updates the incident commander approves, plus a postmortem draft in Notion once it's resolved.
What it does
Engineers' raw incident updates turned into calm customer status updates the incident commander approves, plus a postmortem draft in Notion once it's resolved.
- Starts within seconds of each message in your #incident-updates channel and skips chatter.
- Remembers each incident's updates for 14 days (the last 20), keyed by the incident id or thread; remembered text is treated as untrusted context.
- AI drafts the customer-facing update: Investigating / Identified / Monitoring / Resolved, impact in plain words, the next update time — no blame, speculation or internal names.
- The incident commander approves (and can edit) every update; it's then posted to #status-comms and emailed to your customer-notice list.
- When an update is Resolved, reads the incident channel and drafts a blameless postmortem skeleton (timeline, impact, open questions) in Notion.
What it needs
- A paid plan (agents run live on paid plans).
- An AI provider key (Settings → AI Providers).
- Slack (with channel history permission) and Notion, connected in Settings → Integrations, and a Notion postmortems database.
- A customer-notice mailing-list address.
What it doesn't do
- It isn't monitoring or alerting and doesn't find root causes.
- Nothing reaches customers without the incident commander's approval.
- It doesn't post to Statuspage or Instatus by default (an HTTP step with your status-page API key can be added).
- The postmortem reads top-level channel messages (up to 200), not thread replies.
Availability and plans
Available
Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.
Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.
Before you start
- A paid plan: agents run live, and the Free plan only runs Dry Runs.
- An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
- These apps, connected in Settings → Integrations: Slack and Notion.
- The app it watches, connected in Settings → Integrations (the agent starts from an app event).
- About 20 minutes.
Set it up step by step
Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.
1. Connect your AI provider
The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.
2. Connect Slack
Connect the Slack workspace with your incident channels (Settings → Integrations → Slack).
3. Connect Notion
Connect Notion and share your postmortems database with the Fluxo Flow integration (Settings → Integrations → Notion).
4. Pick the incident channel
Open the trigger and pick your Slack account and #incident-updates.
| Setting | What to enter | In step |
|---|---|---|
| Slack account (#incident-updates) | The Slack workspace with your incident channel. Pick your connected Slack account. | “New message in #incident-updates” |
| Incident channel | The channel engineers post raw updates in, e.g. #incident-updates. Invite the app first (/invite @Fluxo Flow). | “New message in #incident-updates” |
5. Write your incident rules
Open “Is it an incident update?” and “Draft the customer status update” and replace the placeholder in each with the same rules.
| Setting | What to enter | In step |
|---|---|---|
| Your incident rules | Replace the placeholder with your company and product names, customer-facing component names, how engineers mark an incident, update cadence, status page link, words never used publicly and sign-off. It starts as “[PASTE YOUR COMPANY AND PRODUCT NAMES, YOUR COMPONENT NAMES AS CUSTOMERS KNOW THEM, HOW ENGINEERS MARK AN INCIDENT (E.G. “INC-123” IN EVERY UPDATE, OR ONE THREAD PER INCIDENT), YOUR UPDATE CADENCE PER SEVERITY, YOUR STATUS PAGE LINK, WORDS YOU NEVER USE PUBLICLY AND YOUR SIGN-OFF HERE]” until you replace it. | “Is it an incident update?” |
| Your incident rules (drafting) | Paste the same rules again, so drafts use your component names, cadence and sign-off. It starts as “[PASTE YOUR COMPANY AND PRODUCT NAMES, YOUR COMPONENT NAMES AS CUSTOMERS KNOW THEM, HOW ENGINEERS MARK AN INCIDENT (E.G. “INC-123” IN EVERY UPDATE, OR ONE THREAD PER INCIDENT), YOUR UPDATE CADENCE PER SEVERITY, YOUR STATUS PAGE LINK, WORDS YOU NEVER USE PUBLICLY AND YOUR SIGN-OFF HERE]” until you replace it. | “Draft the customer status update” |
6. Pick where approved updates go
Open “Post to #status-comms” and pick the account and channel, then “Email your customer-notice list” and enter the list address and Reply-to.
| Setting | What to enter | In step |
|---|---|---|
| Slack account (#status-comms) | The Slack workspace approved updates are posted to. Pick your connected Slack account. | “Post to #status-comms” |
| Status comms channel | The channel approved customer updates are posted to, e.g. #status-comms (support and success watch it). | “Post to #status-comms” |
| Customer-notice list address | Replace the example address with the address approved updates go to: a mailing-list or Google Group alias that reaches affected customers. It starts as “status-notices@your-company.example” until you replace it. | “Email your customer-notice list” |
| Your support inbox (replies) | Customer replies to the update come back to this address (Reply-to). | “Email your customer-notice list” |
7. Pick the postmortems database
Open “Read the incident channel” and “Save the postmortem draft” and pick your Slack and Notion accounts and the database.
| Setting | What to enter | In step |
|---|---|---|
| Slack account (read the channel) | The same Slack workspace, to read the incident channel for the postmortem (needs channel history permission). Pick your connected Slack account. | “Read the incident channel” |
| Notion account | The Notion workspace with your postmortems database. Pick your connected Notion account. | “Save the postmortem draft” |
| Postmortems database | The Notion database postmortem drafts are added to, with the properties Name (title), Status (select with a Draft option), Incident (text). | “Save the postmortem draft” |
8. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
9. Switch the trigger on
Open the trigger and press “Activate app trigger”: from then on each engineer update gets a customer draft in Reviews.
How it works
The agent is a normal workflow with 18 steps (3 AI steps, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.
- New message in #incident-updates — Starts on “New message in channel (instant)” in Slack (an app event). Starts within seconds of a message in your incident channel, where engineers post raw updates (including thread replies). The app's own messages never start it.
- Is it an incident update? — AI step (runs on your AI provider key). AI decides whether the message is an update about an incident (not chatter) and which incident it belongs to.
- An update? — Decision: picks the branch to follow. Chatter in the incident channel is left alone.
- Not an update — Kept in the run history. Branch: Not an update. The run history keeps the message.
- Recall this incident's updates — Recalls what it remembered earlier (memory “incident-comms-drafter”). Branch: Update. Reads the last 20 updates already posted for this incident (kept for 14 days after the last one). Nothing is found for a new incident.
- Draft the customer status update — AI step (runs on your AI provider key). AI drafts the customer-facing update: status (Investigating / Identified / Monitoring / Resolved), impact in plain words and the next update time, with no blame or speculation.
- Incident commander approves — A person approves or rejects it in Reviews (the run waits). The incident commander reads the engineers' message and the drafted update in Reviews, edits it and approves. Nothing reaches customers before that.
- Not sent — Kept in the run history. Branch: Rejected. The incident commander rejected the draft; nothing was posted or remembered.
- Post to #status-comms — Slack: Post a message. Branch: Approved. Posts the approved update to your status-comms channel.
- Email your customer-notice list — Sends an email from your workspace's sender. Emails the approved update to your customer-notice list address (e.g. a Google Group or mailing-list alias).
- Remember this update — Remembers it for later runs (memory “incident-comms-drafter”, kept 14 days). Saves the engineers' message and the approved update with this incident's earlier ones (the last 20, for 14 days after the last one).
- Update sent — Kept in the run history. The run history keeps the engineers' message and the approved update.
- Resolved? — Decision: picks the branch to follow. Branch: Approved. Updates still Investigating, Identified or Monitoring stop here; once the approved status is Resolved, a postmortem draft is started from the incident channel.
- Still ongoing — Kept in the run history. Branch: Ongoing. No postmortem yet.
- Read the incident channel — Slack: Read recent channel messages. Branch: Resolved. Reads up to 200 messages of #incident-updates since the incident started (top-level messages; thread replies aren't included).
- Draft the postmortem — AI step (runs on your AI provider key). AI drafts a blameless postmortem skeleton from the channel and the approved customer updates: timeline, customer impact, what helped, and open questions for the team.
- Save the postmortem draft — Notion: Create a page in a database. Adds the postmortem draft to your Notion postmortems database with Status Draft.
- Postmortem drafted — Kept in the run history. The run history keeps the Notion link.
Test it with Dry Run
Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live. The sample has the same shape as a real event from the app.
Sample data fields
text, user, ts, thread_ts, channel, subtype, bot_id, team_id, event_id.
- Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
- Approval steps use the Dry Run decision you pick in the step's settings (approved, rejected or timeout), so you can try each branch.
- Memory steps don't read or write stored memory: a recall finds nothing, and a save only shows what it would store.
Go live
- Open the trigger and press “Activate app trigger”: from then on each engineer update gets a customer draft in Reviews.
- Activating the app trigger needs the trigger's connected account. The first check only remembers what's already there, so older items don't start runs; the same item never starts two runs.
- The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
- When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.
Questions
How does it know which incident an update belongs to?
By the incident id in the message (e.g. INC-123), or the thread when engineers keep one thread per incident. Say which your team uses in the rules.
Can it post to Statuspage or Instatus?
Not by default. You can add an HTTP step after the approval with your status-page API key; the approved text is in the review's output.
Does it find the root cause?
No. It isn't monitoring or alerting and never guesses causes; the postmortem draft lists open questions for your team.
How do I email many customers?
Use a mailing-list or Google Group address as the recipient: the email step sends to up to 5 addresses.
Troubleshooting
- “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
- A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
- An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
- Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
- No runs start: activate the app trigger with a connected account. Only items created after activation start runs.
- A run shows as paused: it's waiting for someone in Reviews to approve or reject it.
- A step failed: open the run in History and check that step in the Trace tab for the error and what it received.
Generated from the agent's own workflow, so it always matches what the agent does. Last updated .