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

# End-to-end flows

> Master map for shipped Public API v1.

## Outbound custom CRM

<Steps>
  <Step title="Request API key">
    [Request API access](/get-started/guides/request-api-access) — name the key, then Super Admin approve.
  </Step>

  <Step title="Dashboard prerequisites">
    [Prerequisites](/get-started/guides/dashboard-prerequisites) — number, script, credits.
  </Step>

  <Step title="Create API campaign in UI">
    [Create API campaign](/get-started/guides/create-api-campaign). Confirm with [List campaigns](/api-reference/endpoint/outbound/list-campaigns) / [Get campaign](/api-reference/endpoint/outbound/get-campaign).
  </Step>

  <Step title="Push leads">
    [Push leads](/get-started/guides/push-leads) via `POST /leads` or `/events`. For WhatsApp/email with no dial, [Send WhatsApp and email](/get-started/guides/send-whatsapp-and-email) (`GET /omni/templates` then `POST /leads`).
  </Step>

  <Step title="Operate">
    Cancel / delete / follow-up via Contacts API; pull dials via `GET .../calls` and analysis via `GET .../calls/{callId}`; optional webhooks; kill switch if needed.
  </Step>
</Steps>

## Direct WhatsApp / email (no dial)

<Steps>
  <Step title="Omni Channel in dashboard">
    Verified mailbox and/or WhatsApp profile + attached templates. API campaign started.
  </Step>

  <Step title="List ids">
    `GET /api/v1/omni/templates?campaignId=…` — [List Omni templates](/api-reference/endpoint/core/list-omni-templates).
  </Step>

  <Step title="Send">
    `POST /leads` with `"channels": ["whatsapp","email"]` (no `call`), plus `templateVariables` / `whatsappParams`.
  </Step>

  <Step title="Poll">
    `GET /contacts/{id}` for `whatsappQueueStatus` / `emailStatus`.
  </Step>
</Steps>

Full walkthrough: [Send WhatsApp and email](/get-started/guides/send-whatsapp-and-email).

## Inbound agent via API

1. Own a DID — dashboard **or** Public API: `GET /credits` → `GET /numbers/available` → `POST /numbers/purchase`
2. `POST /inbound-agents` → activate
3. Optional: `POST .../crm/lookup`
4. Healthcare HMS: webhook + `appointmentScope` — [Healthcare HMS integration](/get-started/guides/healthcare-hms-integration)

[Create inbound agent](/get-started/guides/create-inbound-agent)

## What this is not

* Campaign CRUD over API
* Twilio / Telnyx purchase or credit top-up via Public API (dashboard). Pool DID purchase **is** available via `POST /api/v1/numbers/purchase`.
