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

# SMS task recipes: batch, webhook, or dashboard

> Pick the right SMS path — one-off batch, a durable webhook consumer, or a full dashboard campaign — then follow the chained guides for hygiene, sender registration, and post-send monitoring without re-reading the whole docs tree.

# SMS task recipes: batch, webhook, or dashboard

The messaging guides are step-by-step — this page is the index that says which steps to take, in which order, depending on what you are actually trying to do. It deliberately does not restate [campaign end-to-end](/guides/campaign-end-to-end); use this page to pick a task path, then follow its links.

## Decide: batch vs webhook vs dashboard

| Want to...                                                                  | Use                                              | Guide                                                        |
| --------------------------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------ |
| Send one message to many recipients, once (or scheduled)                    | **Batch path** — a single `POST /messages/batch` | [Batch SMS](/guides/messages-batch-sms)                      |
| React to delivery receipts or inbound replies from your own system          | **Webhook-consumer path**                        | [Build a durable webhook consumer](/guides/webhook-consumer) |
| Run a recurring or measured send with audiences, drafts, A/B, and analytics | **Dashboard campaign path**                      | [Send a campaign end-to-end](/guides/campaign-end-to-end)    |

Pick **batch** when the recipient list is finite and there is no campaign machinery to maintain. Pick **webhook-consumer** when your product (not a person) needs to consume DLRs and replies. Pick **campaign** when marketing will iterate on the send. The rest of this page chains the supporting guides for each intent.

## Batch path — review and send

1. Open the **Messages → Batch SMS** wizard or call `POST /messages/batch` directly.
2. Work through the review-and-send loop: upload or paste E.164 recipients, then check the rendered segment count and per-country cost before confirming.

Follow [Batch SMS](/guides/messages-batch-sms) for the full wizard flow and the API contract, including scheduled vs immediate sends.

## Webhook-consumer path — wire receipts and replies before launch

1. Register a webhook endpoint and verify HMAC signatures in Node.js or Python: dedupe events, ack fast, survive retries and dead letters, rotate secrets. [Build a durable webhook consumer](/guides/webhook-consumer) has the full contract.
2. Choose the event stream you need: delivery receipts (DLRs) update your message bookkeeping; inbound replies drive two-way flows.
3. Before you send production traffic, walk [Send gates: pre-flight checklist](/guides/send-gates-preflight-checklist) — wallet posture, opt-out/sync health, quiet hours, frequency caps, and the TCPA voice window — so the first batch is not admitted and blocked in the same afternoon.

## Data hygiene — clean the list before any of the three paths

These four guides are path-independent; run them before sending and revisit them after every import:

* [Import and migrate contacts](/guides/import-and-migrate-contacts) — pick the right import surface (CSV wizard, async jobs, CDP ingest, or platform connectors), dry-run, map consent, dedupe.
* [Opt-out lists](/guides/opt-out-lists) — honor STOP keywords and maintain opt-out entries at the right scope.
* [Message suppression](/guides/message-suppression) — keep a tenant-owned suppression list so blocked numbers are filtered at send time.
* [DNC pre-flight scrub](/guides/dnc-preflight-scrub) — scrub recipient lists against do-not-contact entries before launch.

## Local compliance — sender identity per destination country

* [Sender ID country matrix](/guides/sender-id-country-matrix) — check which sender types (alphanumeric numeric, short code, long number) each destination supports and what registration each requires.
* US traffic: complete [10DLC registration](/guides/10dlc-registration) before sending from a US long number; keep [10DLC rejections and re-vet](/guides/10dlc-rejections-and-revet) open for campaign-review rejections. [Toll-free verification](/guides/toll-free-verification) covers US toll-free numbers instead.

## After the first send — monitor and inspect

* [Delivery log](/guides/delivery-log) — search every delivery by message ID, provider reference, recipient, or sender and work a result row to its answer.
* [Insights: deliverability](/guides/insights-deliverability-reading) — read the consolidated dashboard across channels to spot degradation before it lands in complaint tickets.
* [Smart route preview](/guides/smart-route-preview) — call `POST /messages/route-preview` to see which channel the router picks, why, and what it costs when the selected channel underperforms or the destination is better served by WhatsApp or RCS.

## Troubleshooting — the common misreads

* **"Delivered batch shows zero events."** Webhooks are path-dependent: the batch wizard and `POST /messages/batch` send but do not register an endpoint for you. Register the endpoint ([Build a durable webhook consumer](/guides/webhook-consumer)) and confirm it acks within its timeout before re-sending test traffic.
* **"Blocked at a gate" reads as "provider rejected."** A gate is a tenant-owned admission check (wallet, quiet hours, suppression, frequency cap). The [pre-flight checklist](/guides/send-gates-preflight-checklist) shows the admission order; count blocked rows after launch in the same checklist guide.
* **"Deliverability dashboard is clean but recipients say nothing arrived."** DLRs are per-recipient; check the [Delivery log](/guides/delivery-log) for the specific recipient's status rather than the aggregate window.
* **"The legislation oddly prohibits alphanumeric senders."** That is the destination, not a platform bug — confirm from the [Sender ID country matrix](/guides/sender-id-country-matrix) and pick a compliant sender type per country.
* **"US recipients flagged as blocked despite clean registration."** Check brand/campaign review status in [10DLC rejections and re-vet](/guides/10dlc-rejections-and-revet), not the aggregate dashboards.

Use [messaging services console](/guides/messaging-services-console) when compliance or routing needs a dedicated sender pool per region or use case.
