> ## 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.

# Outbound channel templates lifecycle: concept

> How outbound copy moves from draft to approved to retired across per-channel message templates and reusable content templates — and how its lifecycle rules differ from agent prompt templates.

# Outbound channel templates lifecycle

Outbound messaging runs on saved copy, not free text. An SMS campaign, a
WhatsApp notification, a fax — each channel either approves your copy before
you may use it (WhatsApp, RCS) or lets you send the moment you save it
(SMS, email, and the other OTT channels). The **Message Templates** page is
where that copy lives and where its entire lifecycle plays out.

This page frames the two template families the page holds and the lifecycle
each one follows. If you are looking for the prompts your AI agents run,
that is a different template world — the
[prompt template lifecycle](/concepts/prompt-template-lifecycle) concept
covers it, and section 2 below maps the boundary.

## 1. Where outbound templates live

All outbound template management sits at **Messages → Templates**
(`/messages/templates`). An older address, `/outbound/templates`, redirects
there permanently, so a bookmark from an earlier release keeps working. The
page presents two template families in one hub:

* **Templates** — the per-channel template store. Each row belongs to one
  channel (SMS, WhatsApp, RCS, email, Viber, Telegram, Line, Messenger,
  Instagram, fax, Apple Messages, and more) and holds copy alongside the
  approval state that channel demands. A WhatsApp row carries the approval
  status from Meta's review queue; an SMS row is platform-side copy.
* **Content Templates** — the reusable author layer. One logical content id
  groups per-channel variants (an SMS body and a WhatsApp Marketing variant,
  for example) with a fallback order, so a campaign sends one content id and
  the platform resolves the best variant the destination channel supports.

Voice does not belong to either family. Scripted voice copy — IVR lines,
queue announcements, text-to-speech prompts — is authored in the Agents and
Studio surfaces, not in message templates. Section 4 covers why channels
eat differently at this level.

## 2. Two template worlds: message copy versus agent prompts

Orbit has two distinct template models, and the vocabulary overlap —
"template", "version", "approve" — confuses them only until you map the
boundary once:

* **Outbound channel templates** (this page) hold the *customer-facing
  message body*: the SMS, the WhatsApp notification, the RCS message. The
  approval they pass through belongs to the **carrier** — Meta's review
  queue for WhatsApp, MNO/MAAP review for RCS. Every send that uses a
  template resolves a channel-appropriate variant.
* **Prompt templates** belong to AI agents and hold the *system-level
  instructions* an agent speaks from. Their approval gate is **internal** —
  separation-of-duties between the author and the reviewer inside your
  organization — and the promoted version freezes prompt, model, and
  temperature together. The [prompt template lifecycle](/concepts/prompt-template-lifecycle)
  concept walks that five-step path; this page does not repeat it.

A campaign that pairs an agent with outbound messaging crosses both worlds:
the agent runs on a promoted prompt version, the message it sends resolves
a channel template. The two lifecycles stay yours to manage separately,
which is exactly why their concepts are separate pages.

## 3. Lifecycle semantics: approve, pause, archive

Each per-channel template row moves through states, and which states matter
depends on whether the channel reviewers approve copy before it can send:

* **Approval-required channels** (WhatsApp, RCS): a saved template starts in
  `draft`, and only the carrier-approved status — `approved` — lets a send
  through. `pending`, `rejected`, `paused`, `disabled` all block the send
  because the carrier would refuse it. Meta can surface further statuses the
  dashboard renders verbatim: `Meta review pending`, `Resolving with Meta`
  (the template name already exists on Meta's side), and `In appeal` after
  you appeal a rejection.
* **Platform-only channels** (SMS, email, Viber, push, and the other OTT
  channels): no external review stands between you and a send — a template
  you just saved is usable immediately. A send is blocked only when the row
  enters a terminal or suspended state: `archived` (your soft-delete),
  `paused`, `rejected`, `disabled`, `deleted` / `pending deletion`, or a
  carrier rate `limit exceeded`.

`approved`, `active`, and `draft` are the states a workable template wades
through; everything else is either a carrier verdict or a decision you made.
**Archive** is the operator-level deprecation: an archived template drops
out of send pickers everywhere (the Templates hub and the SMS composer's
template picker share one sendability rule, so an archived or paused row
can never sneak into a composer) while staying on the list for audit until
you restore or delete it. **Pending deletion** is the tail of that arc — the
row is about to disappear and nothing can send through it.

## 4. Channel capabilities set the stakes

A template is only as good as what its channel can actually carry, and the
differences are not cosmetic:

* **WhatsApp** runs on Meta's HSM (Highly Structured Message) format —
  pre-approved structured copy with typed placeholders. Media headers,
  buttons, and marketplace categories all ride inside the approval Meta
  grants, which is why a rejected template names Meta's stated reason in the
  row and offers re-submission.
* **RCS** passes through mobile-operator (MNO/MAAP) review, closer in shape
  to WhatsApp than to SMS because the channel enforces branded, structured
  payloads rather than free text.
* **SMS and the OTT channels** (Viber, Telegram, Line, Messenger, Instagram)
  accept platform-side copy with no upstream reviewer — the lifecycle is
  entirely yours, and `{{variables}}` placeholder resolution happens at send
  time. The row flags unresolved placeholders before you send so a literally
  rendered `{{name}}` never ships.
* **Voice** follows a different production model entirely: copy rendered as
  speech through text-to-speech belongs to agent prompts and Studio IVR
  scripts, which is why the template hub's channel filter deliberately
  omits voice. HSM and plain-text message channels are the template store's
  game; spoken prompts live where agents and call flows are authored.

## 5. Who can do what

The Message Templates page restricts access by role: owners, admins, and developers see and manage templates; other roles do not reach the surface. Within that gate the lifecycle divides the same way the channels
do — statuses like `approved`, `rejected`, and `In appeal` arrive from the
carrier and are read-only on your side, while `draft`, `archived`, and
`pending deletion` are operator decisions. An appeal against a rejection is
the operator-initiated exception: the action is yours, but the verdict
returns to the carrier.

## 6. Reading further

* [Prompt template lifecycle concept](/concepts/prompt-template-lifecycle)
  — the agent-prompt leg of the two template worlds.
* [Prompt Template Library guide](/agents/prompt-templates) — the hands-on
  walkthrough for the prompt side.
* [Agent versions and rollbacks](/agents/agent-versions) — the version-history
  surface prompt promotions land on.
