1. Required fields
- `event_id`: stable ID used to prevent duplicate sends.
- `phone`: formatted customer number.
- `sms_consent`: true or false.
- `approval_status`: draft, approved, sent, skipped, or failed.
- `message_body`: approved copy only.
Proof hub / Tutorial sample
Goal: let a team prepare customer messages without sending anything until the approval field, consent field, and event ID pass a visible gate.
Watch rows, filter for `approval_status = approved`, check consent, check duplicate `event_id`, send through the SMS provider, then write the result back to the run log.
event_id, approval_status, sms_consent, send_status, reason
evt_001, approved, true, sent, provider accepted
evt_002, draft, true, skipped, not approved
evt_003, approved, false, skipped, no consent
"The system only sends approved rows with consent. Anything else is logged as skipped with a reason. If a row is edited later, the event ID protects against accidental duplicate sends."