The three rules
Explicit opt-in
No marketing send to a channel without recorded opt-in for that channel.
STOP handling
Inbound STOP suppresses the number within seconds and logs it.
Quiet hours & Shabbat
Marketing SMS, voice and push to Israeli numbers are blocked at night and
on Shabbat. See the dedicated page.
Evidence log
Every consent change writes source, IP, timestamp and channel to an
append-only log.
Explicit opt-in
SMS sends to a number without a recorded SMS-channel opt-in (smsConsent = subscribed) are rejected. Email follows the same model. Source, IP, timestamp and channel are written to the consent log on every change.
Consent on import is conservative — a row is opt-in only if the file carries a truthy consent signal, and SMS is never auto-subscribed. See Consent & compliance.
STOP handling
Inbound STOP messages from the carrier (019 / CommPeak) delivery-receipt webhooks flow through event ingest, suppress the number for that workspace within seconds, dropsmsConsent to unsubscribed, and append to the consent log.
Transactional and OTP messages are exempt from STOP suppression and
quiet hours — the recipient requested them.
The email carve-out
Email is exempt from the legal Israeli quiet-hours + Shabbat block by
product decision. The merchant (or the flow trigger) decides when their
marketing email fires — email marketing in Israel isn’t carrier-regulated
the way SMS is, and the merchant, not the carrier, pays for the reputation.
Email still honours the merchant’s own configured windows.
Transactional separation
Transactional mail — order confirmations, OTP, password resets — flows through a separate path that bypasses frequency caps and quiet hours. The separation is at the message-type level, not the campaign level. Don’t route marketing content through the transactional path to skip the gates.Where enforcement lives
Because enforcement is at the worker, it applies equally to campaigns, flows, tests and API-driven transactional attempts.

