Skip to main content
Voice, chat, WhatsApp, SMS and email are different ways to reach the same human. The design goal is that every one of them writes the same spine - entity, conversation, interaction, outcome, event - so adding a channel changes routing, not architecture. Voice gets there first: it is in production on the Calling Engine. Chat is in production as an API. The messaging channels are in build - see Status. Two kinds of connector, and the distinction matters. Channel connectors (WhatsApp, email, SMS, web chat) carry conversations - they deliver interactions to an entity and back. System connectors (Google Sheets and Shopify today) push and pull rows - they sync records with the Context Engine but never carry a conversation. A Sheets sync updates rows; a WhatsApp message extends a conversation. Same backend, different verbs.

The primitives

Voice is a channel too - the largest one. It has its own component page because the rails underneath it are deep: see the Calling Engine.

On the spine

Channels sit in the Talk layer: they reach the human. An inbound message resolves its sender identity to an entity, lands in that entity’s channel-neutral conversation, and runs as one interaction; an outbound message is an interaction routed out through the channel the entity is reachable on. Every delivery, reply, and failure emits an event, so the rest of your system reacts to a WhatsApp reply exactly the way it reacts to a completed call.

What stays hidden

Provider quirks, wherever normalization is safe. WhatsApp template approval mechanics, email bounce classification, per-carrier SMS segmentation, chat transport details - these differ per provider and change under you. The goal is a message with a status, with the connector absorbing the rest. Where a channel has semantics you genuinely need (WhatsApp’s 24-hour session window, for one), they are meant to surface as explicit fields, not leaked provider payloads.

Status

Per channel, honestly:
  • Voice - production, via the Calling Engine.
  • Web chat - production as an API: the Chat API (text in, text out; you render the UI). No embeddable widget yet.
  • WhatsApp - in build. Two-way agent conversations over the Meta Cloud API are coded end to end, but not generally available.
  • Email - in build, through Gmail-connected flows. Unpod’s own email sends platform notifications only.
  • SMS - in build for conversations. A narrow in-call action (a template SMS to Indian numbers) is in production.
  • LinkedIn - not available.
There is no SDK messages resource yet. Until there is, each channel is reached through the paths linked here.

Go deeper

Calling Engine

The voice channel: owned rails, numbers, calls, streams.

Conversations

The channel-neutral thread every channel writes into.

Chat API

Web chat today: text in, text out, one URL swap.

Telephony

SIP, PSTN, and carrier-level details for the voice channel.