Provisionable. Connecting needs one browser step Meta mandates; after that,
numbers, conversations, templates and delivery status are all API.
Website widget
Provisionable, fully headless. One call returns a publishable key and a
script tag.
Voice
Live, by request. Assistants answer calls, but numbers need procurement and
KYC we cannot do on your behalf yet.
Not built. No webhook, no ingestion, no send. Named in an API call it is
rejected.
What differs between them
The 24-hour window is the difference that shapes a product. On the website a
merchant can always reply; on WhatsApp they can reply freely only within a day
of the customer writing, and must use an approved
template outside it. An inbox that
does not show which state a thread is in will let somebody write a reply that
cannot be sent.
Conversations are the same shape everywhere
Whatever the channel, a conversation carries the same fields and the samerole values, and reaches you through the same
webhook endpoint. conversation.channel says which
surface it arrived on, and the channel block on a message carries whatever is
specific to it — a wamid and delivery status for WhatsApp, nothing for the
widget.
That is deliberate: an inbox should be written once.

