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

# Deployment

> Put your agent live. Embed a script on your website, restrict allowed domains, share a public widget link, connect WhatsApp, Instagram, Messenger, X, and Telegram, plug in telephony providers, and finally, activate the agent.

<Note>
  Deployment is the **last step** for every agent variant. The page has three tabs (**Website**, **Social**, **Telephony**) plus an **Agent Status** card at the top and a **Deployment Status** strip below it that shows live chips for all 10 channels at a glance. The step is optional, you can activate without connecting anything (the agent will simply have no traffic until you do).
</Note>

## What this step does

This is where the agent goes from a draft you've been building in the wizard to a live system answering real customers. You'll do three things here:

1. **Pick where it shows up.** Your website embed, social channels, phone numbers, or any combination.
2. **Activate it.** Flip from **Draft** to **Active**, the agent starts taking traffic.
3. **Watch the status strip.** A row of green / muted chips tells you at a glance which channels are wired and which are not.

## Agent Status card

The top of the page. Title reads **Agent Status** with a small status pill on the right of the title:

* **Active** , green pill with a green dot. The agent is online.
* **Draft** , muted grey pill. The agent has been saved but isn't taking traffic.

Description text changes by status:

* Draft: *Bring this agent online so it starts answering conversations across every connected channel.*
* Active: *Take this agent offline. It will stop answering conversations until you activate it again.*

The action button on the end:

| Status | Button                                       | Color                 | Confirmation?              |
| ------ | -------------------------------------------- | --------------------- | -------------------------- |
| Draft  | **Activate Agent** (with a check icon)       | Emerald green         | No, activation is positive |
| Active | **Deactivate Agent** (with a power-off icon) | Red border + red text | Yes, see below             |

### Activation

Click **Activate Agent**. The button shows a brief loading state, then a toast reads *Agent activated* and the status flips to **Active** with a green pill. From this moment on, every connected channel starts routing customer traffic to the agent.

If something goes wrong, the toast reads *Failed to activate. Please try again.* The agent stays in Draft.

### Deactivation

Click **Deactivate Agent**. A confirmation dialog opens with the title **Deactivate this agent?** and the body *The agent will stop responding on every connected channel. You can activate it again from this step at any time.*

Two buttons: **Cancel** to keep the agent live, or the red **Deactivate** to take it offline. Toast on success: *Agent deactivated.* The chips in the Deployment Status strip below stay green (the channels are still connected), only the agent's response loop is paused.

## Deployment Status strip

A card titled **DEPLOYMENT STATUS** with a row of pill chips, one per channel. Each chip has a colored dot and the channel name:

* **Green chip with green dot** , channel is connected and the agent will respond there.
* **Muted chip with grey dot** , channel is not connected, no traffic.

Channels shown (text-only and voice-only agents see fewer):

| Chip                                                       | When green                                                       |
| ---------------------------------------------------------- | ---------------------------------------------------------------- |
| **Website**                                                | At least one allowed domain has been added                       |
| **WhatsApp**                                               | WhatsApp Business has been linked                                |
| **Telephony** (SIP)                                        | SIP Trunk has been enabled                                       |
| **Instagram**, **Facebook**, **X (Twitter)**, **Telegram** | Each social channel toggle is on (hidden for voice-only agents)  |
| **Twilio**, **Telnyx**, **WhatsApp Calls**                 | Each telephony provider is enabled (hidden for text-only agents) |

The strip is purely informational, you can't click chips to enable channels. Configure each channel in its own tab below.

## Tab navigation

Three tabs in a rounded container below the status strip:

* **Website** (globe icon)
* **Social** (share icon) , hidden for voice-only agents
* **Telephony** (phone icon) , hidden for text-only agents

The active tab is filled with the brand gradient and white text. Click to switch.

## Tab 1: Website

### Embed code card

Title: **Connect your agent via apps or APIs**. Description: *Embed this snippet into your HTML and get your agent running in minutes.*

A syntax-highlighted `<script>` snippet block. The agent ID is filled in for you. A **Copy** button on the corner copies the snippet to your clipboard. After clicking, the button briefly reads **Copied** before reverting.

Paste the snippet into your website's HTML, ideally just before the closing `</body>` tag. The widget will appear in the bottom corner of every page where the script loads.

### Generate a Shareable Widget Link

A button labeled **Generate a Shareable Widget Link**. Click to open a modal with the title **Shareable Widget Link** and the subtitle *Share your agent as a standalone page.*

The modal contains:

* An intro line: *Your agent is accessible at the link below. Share it anywhere, no embedding required.*
* The full agent URL in a copyable input.
* A **Copy Link** button.
* A note: *This link is public unless you restrict domains in the Website tab.*
* A **Close** button.

Use this link to send the agent to non-technical stakeholders, paste it in QA tickets, or link to it from email signatures.

### Allowed Domains card

Title: **Allowed Domains**. Description: *Only these URLs will be authorised to load the widget.*

A controlled whitelist. The widget on any unlisted domain will refuse to load.

Above the list, an input row:

* **Input field** with placeholder: `https://example.com`.
* **Add URL** button (primary), changes to **Adding...** with a spinner during the call.

Validation:

* Domain must start with `http://` or `https://`. On invalid input, the inline error reads *Enter a valid URL starting with http\:// or https\://*.
* Case-insensitive duplicates are blocked: *This domain is already in your list.*
* After adding successfully, you'll see a toast: *Domain activated.*

### Domain rows

Each domain in the list shows:

* A green check-circle icon
* The domain in monospace font
* A **trash icon** that appears when you hover the row

Click any domain to edit it inline (same validation as Add). Press **Enter** to save, **Escape** to cancel. Click outside to commit (or revert if invalid).

Click the trash icon to open a confirmation: **Remove domain** with the body *Are you sure you want to remove this domain? The widget will no longer load on this URL.* Cancel to keep, or click the red **Remove** to delete.

When the list is empty: *No domains added yet. Add a URL above to restrict where the widget can load.*

## Tab 2: Social (hidden for voice-only)

Top of the tab is an intro banner with the title **Connect your agent to Messaging Apps and Social Channels** and the description *Once connected, your agent handles conversations natively inside each platform. Customers never leave their favourite app. Across all channels your agent can:*

Four feature cards summarize what works on every channel:

| Feature                | What it covers                                                            |
| ---------------------- | ------------------------------------------------------------------------- |
| **Voice Notes**        | *Transcribes and replies to voice messages in Arabic or English*          |
| **Images and Photos**  | *Analyses pictures and responds with relevant information*                |
| **Documents and PDFs** | *Reads uploaded files and answers questions about their content*          |
| **Rich Messaging**     | *Sends formatted replies, quick-reply buttons, and interactive carousels* |

### Channel cards

Five cards in a 2-column grid. Each card shows:

* The channel logo (rendered with the platform's brand color)
* Channel name and a one-line description
* A status pill: **Connected** (green) or **Not connected** (muted)
* A toggle switch on the corner

#### WhatsApp

Description: *Requires a verified WABA. Send and receive messages via WhatsApp Business API.* Instructions: *A verified WhatsApp Business Account (WABA) is required. Apply via Meta Business Suite, then connect your approved phone number here.*

The toggle launches Meta's Embedded Signup flow. After completing the form on Meta's side, the connection is wired and the chip turns green automatically.

#### Instagram

Description: *Auto-reply to Instagram DMs and story mentions. Keep followers engaged 24/7.* Instructions: *Connect via Facebook Business Manager to enable Instagram DMs.*

The toggle launches Facebook's OAuth flow. Authorize on Facebook, you're redirected back, the chip turns green.

#### Facebook (Messenger)

Description: *Handle Messenger conversations from your Facebook Page automatically.* Instructions: *Connect your Facebook Page to enable Messenger conversations.*

OAuth flow same as Instagram.

#### X (Twitter)

Description: *Respond to Direct Messages automatically. DMs only, no public posting.* Instructions: *Enables your agent to respond to X DMs. Requires X API access (Basic tier or above).*

The toggle launches X's OAuth flow. Returns the same way.

#### Telegram

Description: *Deploy as a Telegram bot. Great for private and group chat automation.* Instructions: *Create a bot via @BotFather on Telegram, then paste the token below.*

Telegram is the only manual-setup channel. Enable the toggle, then a **Bot Token** field appears with the placeholder *From @BotFather*. Paste the token from BotFather and the connection persists.

### Disconnect any channel

Switching the toggle off opens a confirmation: **Disconnect {Channel}?** with the body *This action will stop all conversations on this channel.* Plus a warning: *Disconnecting will immediately stop your agent from receiving and sending messages on {Channel}. Any active conversations will be interrupted.*

The buttons are **Cancel** (default) and the red **Yes, Disconnect**.

## Tab 3: Telephony (hidden for text-only)

Top of the tab is an intro banner with the title **Connect your agent to your Telephony System** and the description *Bridge your AI agent with your phone infrastructure so it can receive inbound calls, make outbound calls, or both. Choose your provider and configure call direction per number.*

Four feature cards summarize the supported call modes:

| Mode                      | What it covers                                                                                                       |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Inbound Only**          | *Agent answers incoming calls. IVR, support queues, and lead qualification*                                          |
| **Outbound Only**         | *Agent proactively dials contacts. Campaigns, follow-ups, and appointment reminders*                                 |
| **Bidirectional**         | *Full two-way calling on the same number. Maximum flexibility for your use case*                                     |
| **SIP / VoIP Compatible** | *Works with any SIP-compatible PBX. Asterisk, 3CX, FreePBX, Cisco, Avaya, Genesys, Bright Pattern, Maqsam, and more* |

### Provider cards (4)

Below the banner, four provider cards in a 2-column grid: **Twilio**, **Telnyx**, **Telephony (SIP Trunk)**, and **WhatsApp Calls**.

Each card has:

* The provider logo and name
* A short description (e.g. Twilio: *Cloud communications. Phone numbers in 100+ countries.*)
* A status pill (**Connected** / **Not connected**)
* A toggle to enable / disable

When the toggle is **on**, the card expands to show the configuration form.

### Call Direction picker

Inside every enabled provider card. A 3-button group titled **Call Direction**:

* **Inbound Only**
* **Outbound Only**
* **Bidirectional** (default for most providers, except WhatsApp Calls which is inbound only today)

The active option has a primary border and primary tinted background.

### Provider-specific credentials

| Provider                  | Credential fields                                                                                                  |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Twilio**                | **Account SID**, **Auth Token** (both under an **Account Info** sub-card)                                          |
| **Telnyx**                | **API Key**                                                                                                        |
| **Telephony (SIP Trunk)** | No credentials, the system generates a SIP URI for your PBX. See **How to configure your telephony system** below. |
| **WhatsApp Calls**        | **Phone Number ID**, **Access Token**, plus a requirements banner (see below)                                      |

All credential inputs are hidden password fields with autocomplete off. The **WhatsApp Calls** card shows a requirements banner: *Your WhatsApp Business account must be approved for Calls API access via Meta. This is a separate approval to the standard Messaging API. Once approved, connect the same WhatsApp number configured in the Social tab.*

### How to configure your telephony system (SIP Trunk only)

The SIP Trunk card includes inline setup instructions. Title: **How to configure your telephony system**. Description: *To route calls to your AI agent, add the SIP URI below as a SIP trunk or SIP endpoint in your PBX or telephony platform:*

A monospace SIP URI box with a copy button. Below it, 5 numbered setup steps:

1. *Open your PBX/telephony admin panel and navigate to SIP Trunks or Outbound Routes*
2. *Create a new SIP trunk and paste the SIP URI below as the destination host*
3. *Set the transport to UDP or TLS (recommended)*
4. *Assign the phone number(s) that should route to this agent*
5. *Save and test by calling one of the assigned numbers*

### Phone Numbers

Below credentials, a sub-card titled **Phone Numbers** with the hint *Numbers assigned to this provider*.

Each row has:

* A type chip: **Phone Number** or **Extension**
* The number itself
* A remove (trash) icon

The **+ Add Phone Number** button below the list opens an inline form with two fields (number, type) and a **Save and Connect** button. Up to **10** numbers per provider.

### Save and disconnect (telephony)

Each provider card has a **Save Changes** primary button at the bottom of the form. Click it to persist credentials, direction, and phone numbers in one go.

Toggling a provider off opens a confirmation: **Disconnect {Provider}?** with *This action will stop all conversations on this channel.* The red **Yes, Disconnect** button removes credentials, phone numbers, and the connection.

## How saves work on this step

| Action                                     | When it persists                                                                                                      |
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
| Add or remove an allowed domain            | Click **Save Draft** or **Next step** at the bottom of the wizard. The wizard saves the full domain list in one call. |
| Connect or disconnect a social channel     | Immediately on the toggle / OAuth completion.                                                                         |
| Connect or disconnect a telephony provider | Immediately on toggle / Save Changes / Disconnect.                                                                    |
| Activate / Deactivate                      | Immediately, with a toast.                                                                                            |

The wizard's **Save Draft** button on this step writes the deployment fields (allowed domains primarily) and shows a toast. The **Next step** button isn't there on this step, since this is the last one. Activation is the closing action.

## Common questions

<AccordionGroup>
  <Accordion title="I clicked Activate but the status still says Draft.">
    Check for the failure toast (*Failed to activate. Please try again.*). The most common cause is that no required fields from earlier steps are saved, scroll back through the wizard and look for red error borders on Step 1, 2, or 5.
  </Accordion>

  <Accordion title="My website widget shows up locally but not in production.">
    Check the **Allowed Domains** list. The widget refuses to load on any URL not in the whitelist. Add your production domain (e.g. `https://www.yoursite.com`) and save the step.
  </Accordion>

  <Accordion title="WhatsApp says Connected, but I'm not getting messages.">
    Two things to check: (1) the agent is **Active**, not Draft, (2) the WhatsApp number you connected is the production number, not the test number Meta gives you during signup. Send a message from a different phone to your business number to verify.
  </Accordion>

  <Accordion title="The Telephony tab is missing from my agent.">
    The Telephony tab is hidden for text-only agents (since they have no voice capability). Switch to the variant picker if you need telephony, or convert your agent to Hybrid. Same logic for Social: hidden for voice-only agents.
  </Accordion>

  <Accordion title="I disconnected a social channel by accident. Did I lose my history?">
    No. Disconnecting only stops new messages from routing to the agent. Past conversations are still in the inbox under Manage Agent. Reconnect to resume.
  </Accordion>

  <Accordion title="My SIP trunk says 'registered' in my PBX but no calls reach the agent.">
    Three checks: (1) the agent is **Active**, (2) you've added at least one phone number under Phone Numbers and assigned it in your PBX, (3) the call direction matches what your PBX is configured to do (Inbound Only won't accept outbound dial attempts and vice versa).
  </Accordion>

  <Accordion title="Can I activate without connecting any channels?">
    Yes, but the agent will receive no traffic. Activation just marks the agent as live, it doesn't connect anything for you. Connect at least one channel before activation, or right after.
  </Accordion>

  <Accordion title="Where do I see live conversations once the agent is active?">
    Manage Agent. Click the agent in your dashboard sidebar and the **Chat Conversations** / **Voice Conversations** tabs show every live and historical conversation per channel.
  </Accordion>
</AccordionGroup>

## Next

<Card title="Manage your live agent" icon="chart-line" href="/en/Systems/AI-Agents/Manage-Agent/Manage-Agent-Overview">
  Track conversations, leads, tickets, agent performance, and analytics for the live agent.
</Card>
