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-composer

Usage

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

Props
PropTypeDefaultDescription
fromNumberIdstring—The tenant number to send from (num_…).
onComplete({ sent, failed }) => void—Called once the batch finishes.
classNamestring—Merged onto the root card.