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

# Continue a conversation on another channel

> Move a live SMS, WhatsApp, email, or voice thread onto web chat — or between any two channels — and keep the full transcript and AI-agent session in one conversation.

# Continue a conversation on another channel

When a customer who started on SMS asks to switch to their email, or a phone call needs to continue as a web-chat session, you can move the conversation without starting a new one. The conversation keeps its identity — same id, same full message history, same tags and assignees — and only the channel your next reply defaults to changes.

You can do this two ways:

* From the inbox, with the **Continue on another channel** control on the conversation header.
* Over the API, with `POST /conversations/{id}/resume-channel`.

Both behave identically; pick whichever fits your workflow.

## From the inbox

Open the conversation and click **Continue on another channel** in the header. Orbit only lists channels the contact can actually be reached on — for example, **Email** appears only when the contact has an email address on file, and **Web Chat** appears when the contact has a widget visitor session (or falls back to their email or phone). Each option explains itself: a channel the contact has no identity for is shown with its reason instead of failing after you pick it.

Pick the channel and confirm. The thread does not move anywhere — the history you are looking at stays put. What changes is the default channel for your next reply, and the customer now reaches you (and is reached) on the new channel.

## Over the API

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/conversations/conv_abc123/resume-channel \
  -H "X-API-Key: dv_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "target_channel": "web_chat",
    "reason": "Customer asked to switch to web chat"
  }'
```

| Field            | Purpose                                                                                                                                                         |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `target_channel` | The channel to continue on: `sms`, `whatsapp`, `email`, `rcs`, `viber`, `instagram`, `messenger`, `line`, `telegram`, `voice`, `apple_messages`, or `web_chat`. |
| `reason`         | Optional free-text note (up to 280 characters) recorded on the conversation's activity trail.                                                                   |

The response confirms the move — note `already_on_channel`, which distinguishes a real move from a repeat of the same request:

```json theme={null}
{
  "data": {
    "id": "conv_abc123",
    "channel": "web_chat",
    "previous_channel": "sms",
    "channels": ["sms", "web_chat"],
    "agent_active": true,
    "agent_id": "agent_42",
    "already_on_channel": false
  }
}
```

## What carries over, and what does not

Continuing a conversation never creates a new thread and never sends a message on its own. Concretely:

* **The conversation id and full transcript carry over.** Every prior message — from every channel the thread has touched — stays in the same conversation and keeps loading in the inbox.
* **The AI-agent session carries over.** If an AI agent was handling the thread, it keeps its session state and everything it already learned about the contact; it does not re-introduce itself or start from scratch on the new channel.
* **The default reply channel changes.** Your next reply — and the agent's next reply — goes out on the new channel without re-picking it each time.
* **No message is sent by the move itself.** Nothing notifies the customer automatically; if a context note helps, send one as a normal reply.

The move is repeatable. You can switch a thread back to a channel it used before — continuing SMS → email → SMS works, and each step is a real move rather than a lock.

## Behaviour to expect on the edges

* **Closed, archived, or snoozed conversations** cannot be continued. Reopen the thread first, then move it.
* **Repeating the same move is a no-op.** Asking to continue on the channel the conversation is already on succeeds and reports `already_on_channel: true`, with nothing changed.
* **Missing contact identity is a validation error, not a silent failure.** Continuing to a channel the contact has no address for — say, email with no email on file — returns a 400 explaining which identity is missing (`missing_field`).
* **Inbox-only labels are not channels.** `agent` and `video` describe how a thread is viewed, not how a customer is reached, so they are rejected with a 422.
