Broadcast composer
Send one message to many recipients — one API call each, with a live per-recipient result list. Opt-outs are respected by the API: anyone who texted STOP comes back failed and is never messaged.
0 recipients · 0 segments each0 total
Installation
npx shadcn@latest add @handset/broadcast-composerUsage
import { BroadcastComposer } from "@/components/handset/broadcast-composer";
<BroadcastComposer fromNumberId={tenant.numberId} />Each send carries a per-recipient Idempotency-Key, so a retry can't double-send. The segment counter multiplies by recipients so you can see the total before sending. For a real blast, drive the send from your backend with a queue — this is the in-product, small-list version (dozens, not thousands).
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| fromNumberId | string | — | The tenant number to send from (num_…). |
| onComplete | ({ sent, failed }) => void | — | Called once the batch finishes. |
| className | string | — | Merged onto the root card. |