← All stories

BRANCH · ef-072-sms-arrival-greeting

SMS arrival greeting

EF-072Roots in: day-of-operationsMatrix: Absent — ships as gap probe

Arrival greetings are absent. The check-in event is the source of truth: once a guest is checked in, a per-event SMS template resolves merge tokens, honors opt-out, sends once, and records delivery telemetry.

Contract

  1. Organizer configures the arrival greeting.

    The template has merge tokens, a per-event enable toggle, opt-out copy, and a test-send preview.

  2. Staff checks in a guest.

    The day-of check-in commit emits one arrival greeting job after the check-in is durable.

  3. Telemetry closes the loop.

    Queued, sent, delivered, failed, and suppressed states are visible on the event-day surface.

Failure modes

Day-of rubric

This story uses the day-of cluster: offline graceful queueing, two-staff idempotency, tampered QR anti-probing, network flaky behavior, already checked-in handling, wrong-event payload isolation, opt-out suppression, and visible gap state.

Stable test attributes

Visibility teeth. The active trigger and delivery UI must be visible when expected; hiding a placeholder does not satisfy the gap probe.

data-testWherePurpose
arrival-sms-gap-panelArrival SMS settingsAbsent capability marker
arrival-sms-settings-formArrival SMS settingsTemplate form
arrival-sms-enable-toggleArrival SMS settingsPer-event enable
arrival-sms-template-bodyArrival SMS settingsGreeting body
arrival-sms-test-send-ctaArrival SMS settingsTest send
arrival-sms-token-errorArrival SMS settingsToken validation
arrival-sms-optout-panelArrival SMS settingsOpt-out state
arrival-sms-delivery-tableDay-of reportsDelivery telemetry
scan-confirm-checkin-ctaCheck-in confirmationTrigger source
scan-successCheck-in confirmationCommitted check-in
kiosk-offline-bannerDay-of shellOffline queue indicator
scan-invalid-qrScannerAnti-probing message

Agent test plan

- arrival-sms-gap-panel-visible
- configure-arrival-template
- checkin-enqueues-one-sms
- offline-queues-arrival-sms
- two-staff-checkin-sends-once
- tampered-payload-no-sms
- optout-suppresses
- delivery-telemetry-visible