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

# Why Unpod

> The communication backend for agentic apps.

**Unpod is the communication backend for agentic apps.** One SDK to build
agents that call, message, email, remember context, run durable workflows,
and react to every customer interaction in real time.

Supabase made database, auth, storage and realtime feel like one backend —
Unpod does the same for software that talks to people.

## One backend problem

The moment an agent's job is a human conversation, it inherits questions no
model answers and no channel API solves: who is this person across channels?
What happened before? Which channel right now? What happens when they reply
tomorrow? Did it produce the outcome? Teams answer them by stitching together
a channel API, a workflow engine, an agent framework, a database, a CRM, a
vector store, and an observability stack. Those are not seven integration
problems — they are one backend problem.

## Four layers, one substrate

Unpod answers it with four layers over a single substrate of communication
state. The Calling Engine is the trusted anchor, but it is one Transport
channel — an app can live on WhatsApp and email without placing a call.

| Layer               | Unpod primitives                                 | Role                                   |
| ------------------- | ------------------------------------------------ | -------------------------------------- |
| Communication state | Entities, Conversations, Context Graph, Outcomes | The durable system of record           |
| Execution           | Flows, Journeys, Agent Workforce                 | Decides and performs what happens next |
| Transport           | Calling Engine, WhatsApp, Email, other Channels  | Reaches the human                      |
| Control             | Teams, Policies, Events, Observability           | Governs, secures and exposes execution |

**Status:** the Calling Engine (\~5 lakh calls a month on owned voice rails),
Agent Workforce, Outcomes, and Teams carry production traffic today;
Conversations, Flows & Journeys, and the unified event stream are in build.
The [Core Engine overview](/core-engine/overview) walks the full map, with
an honest status per component.

## Why Execution and Transport are the hard layers

Speech is solved. Telephony is solved. The layers that run the conversation
are where projects stall.

<CardGroup cols={1}>
  <Card title="Prompts lose the plot" icon="triangle-alert" horizontal>
    Every top model drops \~39% from single-turn to multi-turn - mostly
    unreliability, not capability. Take a wrong turn and the conversation
    never recovers. Prompt-tuning plateaus around 85%: nothing in a
    100-page prompt is addressable, so nothing is testable.
  </Card>

  <Card title="Big models miss the beat" icon="timer" horizontal>
    Humans swap turns in \~200ms; past \~700ms a caller hears a machine. The
    LLM is \~70% of that budget, and frontier models spend 1.1-1.4s before
    their first token - the whole budget, on one hop.
  </Card>
</CardGroup>

## What Unpod runs

This is why Unpod owns the runtime instead of wrapping a model:

<CardGroup cols={1}>
  <Card title="Playbooks" icon="git-branch" horizontal>
    Conversations as checkpoints and outcomes, not prose. Every step is
    addressable - so it can be simulated, fixed, and regression-tested.
  </Card>

  <Card title="Context layer" icon="layers" horizontal>
    Each turn gets only the context it needs - so the agent stays fast on a
    third-party model, or - in early access - faster on a fine-tuned \~1B SLM
    trained on your workflows ([Intelligence](/core-engine/intelligence)).
    Swap either way without touching the conversation.
  </Card>

  <Card title="Sessions" icon="repeat" horizontal>
    Pass a session id and the agent keeps its state - across turns, and
    across calls.
  </Card>
</CardGroup>

## Quickstarts

The fastest path is the [Quickstart](/get-started/quickstart) - a real call
placed and read back in six SDK calls. Or use a trained agent like a model:

| Surface                           | I/O                 | Live in     |
| --------------------------------- | ------------------- | ----------- |
| [Chat](/get-started/chat)         | text in, text out   | 1 URL swap  |
| [Realtime](/get-started/realtime) | audio in, audio out | 1 WebSocket |
| [Phone](/get-started/phone)       | a phone number      | 1 click     |

Same trained agent, three ways in. Your orchestration, speech, and transport
stay where they are.

<div className="ul-stack" role="img" aria-label="Layer diagram: agent platforms use Unpod, which builds on raw telephony providers.">
  <div className="ul-stack__title">Where Unpod sits</div>

  <div className="ul-layer">
    <span className="ul-layer__tag">Layer 3</span>

    <div className="ul-layer__card">
      <span className="ul-layer__name">Agent platforms</span>
      <span className="ul-layer__vendors">Vapi / Retell / Bland</span>
    </div>
  </div>

  <div className="ul-link"><span className="ul-link__lbl">used by</span></div>

  <div className="ul-layer is-brand">
    <span className="ul-layer__tag">Layer 2</span>

    <div className="ul-layer__card">
      <span className="ul-layer__name">Unpod</span>
      <span className="ul-layer__vendors">Communication infra</span>
    </div>
  </div>

  <div className="ul-link is-down"><span className="ul-link__lbl">builds on</span></div>

  <div className="ul-layer">
    <span className="ul-layer__tag">Layer 1</span>

    <div className="ul-layer__card">
      <span className="ul-layer__name">Raw telephony</span>
      <span className="ul-layer__vendors">Twilio / Plivo / Bandwidth</span>
    </div>
  </div>
</div>

## Start building

<CardGroup cols={3}>
  <Card title="Getting Started" icon="play" href="/get-started/getting-started">
    Choose your path - and the right credential for it.
  </Card>

  <a className="pg-card" href="https://superdialog.unpod.ai/playground?tab=preview" target="_blank" rel="noreferrer">
    <span className="pg-card__badge">Try it</span>

    <span className="pg-card__icon">
      <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
        <path d="M12 2l1.9 5.3L19 9.2l-5.1 1.9L12 16.4l-1.9-5.3L5 9.2l5.1-1.9L12 2z" />

        <path d="M18.4 14.1l.85 2.3 2.3.85-2.3.85-.85 2.3-.85-2.3-2.3-.85 2.3-.85.85-2.3z" />
      </svg>
    </span>

    <span className="pg-card__title">Playground</span>
    <span className="pg-card__desc">Build and hear an agent in the browser. No account needed.</span>
  </a>

  <Card title="GitHub" icon="github" href="https://github.com/unpod-ai/unpod">
    Open source, MIT. Self-host the full stack.
  </Card>
</CardGroup>
