A conversation changed state. status is the new state and previous_status is what it was before.
Each status means something different for your side, so branch on it rather than storing the string. operator_attention is the one to raise an alert on: it means a human is needed.
closed carries two extra fields, context_reset and message_count. context_reset is not a deletion flag — nothing is deleted, the prior history simply stops being replayed to the AI as context. A partner who treated it as a deletion instruction would discard a transcript we still hold.
Semver for the payload shape. Fields are added without a major bump; nothing is removed or repurposed without one.
Return any 2xx as soon as you have stored the event. Anything else, or a timeout, is retried: 6 attempts over about an hour, then dead-lettered.