Compose — 1:1 or bulk (comma-separate numbers)
Marketing texts: quiet hours 8am–9pm CT enforced (auto-reschedules), “Reply STOP to opt out” auto-appended, opt-outs + Troutman do-not-contact honored at enqueue. Staff allowlist + 30/10-min rate limit server-side.
Send a verification / reset code
6-digit codes, hashed at rest, 10-min expiry, 5 tries, 5/hour per contact. Auto-picks SMS for phones, email for addresses — same engine the login/reset flows call via mcp_otp_send / mcp_otp_check.