> ## Documentation Index
> Fetch the complete documentation index at: https://docs.impellabs.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Channels

> Where a merchant's customers actually talk to them.

An assistant is channel-independent — the same knowledge, tools and prompt
answer on every surface. A **channel** is how a conversation reaches it, and
each one has its own provisioning, its own limits and its own events.

<CardGroup cols={2}>
  <Card title="WhatsApp" icon="whatsapp" href="/reseller/channels/whatsapp/setup">
    **Provisionable.** Connecting needs one browser step Meta mandates; after that,
    numbers, conversations, templates and delivery status are all API.
  </Card>

  <Card title="Website widget" icon="window" href="/reseller/channels/website">
    **Provisionable, fully headless.** One call returns a publishable key and a
    script tag.
  </Card>

  <Card title="Voice" icon="phone" href="/reseller/channels/voice">
    **Live, by request.** Assistants answer calls, but numbers need procurement and
    KYC we cannot do on your behalf yet.
  </Card>

  <Card title="Instagram" icon="instagram" href="/reseller/channels/instagram">
    **Not built.** No webhook, no ingestion, no send. Named in an API call it is
    rejected.
  </Card>
</CardGroup>

## What differs between them

|                   | Website widget           | WhatsApp                                                              | Voice                                 |
| ----------------- | ------------------------ | --------------------------------------------------------------------- | ------------------------------------- |
| Provisioning      | one API call             | API + one browser step                                                | talk to us                            |
| Who starts        | the visitor, always      | either side                                                           | either side                           |
| Messaging window  | none                     | 24 hours, then templates only                                         | none                                  |
| Identity          | anonymous until they say | a phone number from the first message                                 | the calling number                    |
| Delivery receipts | none                     | sent, delivered, read, failed                                         | none                                  |
| Cost              | AI credits only          | AI credits **plus** Meta's per-message charge, billed to the merchant | AI credits **plus** telephony minutes |

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](/reseller/channels/whatsapp/templates) 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 same
`role` values, and reaches you through the same
[webhook endpoint](/reseller/webhooks). `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.

## Choosing one

Most resellers start with the website widget, because it is one call and the
merchant already owns the surface. WhatsApp is where the conversations
actually are for most small businesses, and it is worth the extra browser step
in onboarding.

Voice is a conversation you should have with us before you sell it — not
because it does not work, but because a number takes days to procure and a
merchant told "next week" will remember.
