Skip to content

feat(incidents): Collect postmortem meeting attendees by reaction - #455

Open
sentry-junior[bot] wants to merge 8 commits into
mainfrom
feat/postmortem-attendee-collection
Open

sentry-junior[bot] wants to merge 8 commits into
mainfrom
feat/postmortem-attendee-collection

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Richard:

Adds logic to get our triage bot (jr) to try to schedule a meeting by collecting interested parties then find an appropriate time slot.


Jr:

When a P0/P1 incident moves into Postmortem, Firetower now posts a message in the incident channel asking people to react if they want to be invited to the postmortem meeting. After a configurable window, it posts a follow-up that hands the reaction message off to a scheduler bot (e.g. Junior), which reads the reactions, schedules the meeting, and replies with the Google Meet link.

When the scheduler bot posts a message containing a Google Meet link in a Postmortem/Done incident's channel, Firetower saves it as the incident's new POSTMORTEM_MEETING_LINK link (shown as "Postmortem meeting"). A later link replaces the earlier one.

The existing MEETING_RECORDING link type stays separate and is renamed to POSTMORTEM_MEETING_RECORDING (shown as "Postmortem meeting recording"). The migration moves existing MEETING_RECORDING links over and reverses cleanly. API clients that write external_links.meeting_recording need to switch to postmortem_meeting_recording.

Firetower itself never reads reactions, so no new Slack scopes are needed; the meeting link is picked up from the message.channels/message.groups events Firetower already receives. The follow-up is a one-off django-q schedule, same pattern as the statuspage reminders, and it's skipped if the incident has been reopened or canceled by the time it fires. Private incidents are skipped entirely (no prompt, schedule, or bot mention).

New [slack] config:

  • postmortem_attendee_collection_days: how long to gather reactions after resolve. Unset disables the feature.
  • postmortem_scheduler_bot_user_id: bot to invite and mention in the follow-up, and whose Meet links are recorded. Falls back to triage_bot_user_id when unset; with neither set, the prompt is posted without a mention and no links are recorded.
  • postmortem_scheduler_bot_prompt: follow-up text, with {incident_number} and {prompt_url} placeholders. The default asks the bot to reply with the Google Meet link.

Whether the scheduler bot responds to a mention posted by another bot (Firetower) hasn't been verified yet. That should be checked when this is first deployed.

via Richard Gibert.

--

View Junior Session [Sentry]

Co-Authored-By: Richard Gibert <richard.gibert@sentry.io>
@sentry-junior
sentry-junior Bot requested a review from a team as a code owner October 28, 2026 15:39
sentry-junior Bot and others added 4 commits October 28, 2026 15:42
Co-Authored-By: Richard Gibert <richard.gibert@sentry.io>
Co-Authored-By: Richard Gibert <richard.gibert@sentry.io>
Co-Authored-By: Richard Gibert <richard.gibert@sentry.io>
Co-Authored-By: Richard Gibert <richard.gibert@sentry.io>
Comment thread src/firetower/incidents/tasks/postmortem.py Outdated
sentry-junior Bot and others added 3 commits October 28, 2026 16:47
…ents

Private incidents should not post attendee prompts, schedule follow-ups,
or invite and mention the scheduler bot, matching the existing triage-bot
and statuspage reminder guards.
Rename MEETING_RECORDING to POSTMORTEM_MEETING_RECORDING instead of
folding it into the meeting link, and store the scheduler bot's Meet
link under a separate POSTMORTEM_MEETING_LINK type.

Co-Authored-By: Richard Gibert <richard.gibert@sentry.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant