Events, rules and messages
Raven does not have a “send message” endpoint. You record that something happened; rules set in the instance decide who hears about it and on which channel. Posting an event is what makes Raven send.
Scope
Every event type has a scope. It decides which id the event must carry. A subject-scoped event names the student either by subject_id, Raven’s id, or by subject_ref, the reference your own system gave it — exactly one of the two, and the event that comes back carries subject_id either way.
date_field and dedupe
Each type names the payload field that carries its date, so Raven can schedule reminders relative to it. Each type also lists dedupe_fields: two events of the same type, on the same student, with the same values in those fields are one event. In the High school pack, absence dedupes on date, session.
Void
POST /events/{event_id}/void takes an event back and calls off the sends that have not gone. One already with the provider finishes; messages that went stay on record, and the event shows as voided. Nothing is deleted.