Skip to main content
This event is fired when a user answers or dismisses a question card your agent asked with requestDiscussionQuestion. Subscribe to it so your agent resumes on the answer instead of polling the discussion. questionRequestId is the id requestDiscussionQuestion returned. questions lists every question on the card with the option ids Plain gave them, so you can match selections back to your labels. status is ANSWERED or DISMISSED:
  • ANSWERED: selections has one entry per question. optionIds lists what the user picked, and otherText is what they typed in the card’s text box, or null
  • DISMISSED: the user closed the card without answering, and selections is empty
discussion.agentStatus tells you where the discussion is now. It stays TOOL_CALL_APPROVAL_PENDING while an approval is still open. Otherwise an answer moves it to IN_PROGRESS so your agent can carry on, and a dismissal moves it to IDLE, or IN_PROGRESS if a tool call is still PENDING. Plain’s own Sidekick Agent questions do not produce this event. It is sent only for a discussion a connected agent drives. This event was added in webhook version 2026-10-26. Targets on earlier versions don’t receive it.

Schema

View JSON Schema → Example:

Using the Webhooks SDK

You can use the @team-plain/webhooks package to parse and verify this event with full type safety: