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

# Chat Center Workflow

> A WhatsApp agent that runs your code, conditions and sends on every message, with no LLM, and hands the rest to your chat agents

A **Chat Center Workflow** is the third type of WhatsApp chat agent, next to Basic and Advanced. It has no prompt and no model. On every message the user sends, it walks a workflow you design on a canvas — by code — and either answers the message itself or hands it to one of your Basic or Advanced agents, which then replies with its own model.

Use it in front of an agent to answer the messages that do not need an LLM: a tapped button, a payment link, a limit on off-topic questions, a repeated message, a photo. Those cost nothing but the message itself; everything else still reaches your agent.

| | **Basic / Advanced** | **Chat Center Workflow** |
| - | - | - |
| Answers with | An LLM, on every message | Your code and conditions; an LLM only when it assigns an agent |
| You build | A prompt, or a persona and a flow | Steps on a canvas: Run code, Condition, sends, Assign chat agent |
| Branches on | What the AI judges | What code checks: code results, the contact, the message, counts over the chat |
| Cost per message | Message + LLM | Message only, unless it hands the message to an agent |

> [!WARNING]
>
> The type is fixed once the agent is created, and every version of it is a workflow. Chat Center Workflows are WhatsApp only.

## How a message runs

**1. The message arrives on the workflow's number**

Voice notes are transcribed and images stored first, if the workflow's **Audio Transcription** and **Image Context** are on (Conversation page), so the steps see the words and the image link.

**2. The workflow runs from Start**

Step by step, by code: [Run code](/chat-agents/workflow/code-steps) steps call your APIs, [Conditions](/chat-agents/workflow/conditions) pick a branch, Update contact saves values, send steps queue messages. Every message starts again from Start; what happened before is read from the chat and the contact.

**3. It ends**

At an **End** step, at an exit that goes nowhere, or at **Assign chat agent**. The messages it queued are sent, in order, and billed like any other message.

**4. Or it hands the message to an agent**

**Assign chat agent** passes the message to a Basic or Advanced WhatsApp agent, at its **published** version. That agent replies with its own model as if the number were its own: its LLM cost, its follow-ups, its replies. An optional note passes what the workflow found to it.

Nothing in a workflow calls an LLM. When you want a model or classifier to judge a message, a Run code step calls yours (or one such as Jev) over HTTP — see [Examples](/chat-agents/workflow/examples).

## Create one

**1. Start a chat agent**

**Dashboard → Agents → Create Agent → Chat Agent**, then pick **WhatsApp**.

**2. Pick Chat Center Workflow**

Under **Agent type**, choose **Chat Center Workflow**.

**3. Build the workflow**

The **Workflow** page is the canvas. Add steps with **Add step** or the **+** at the end of any loose exit — see [Step types](/chat-agents/workflow/step-types).

**4. Test, then publish**

**Test chat** on the canvas runs the workflow and lights up the path each message took — see [Testing](/chat-agents/workflow/testing). Publish checks the workflow, and every agent it assigns to.

**5. Put it on the number**

Assign the WhatsApp number to the workflow. The agents it hands messages to do not need a number of their own: their replies go out on the workflow's.

## What the workflow does not have

* **No model, prompt or functions.** Code lives in the Run code steps themselves.
* **No follow-ups of its own.** Follow-ups come from the agent that replied last, with that agent's settings.
* **No simulations.** Simulate the agents it hands messages to.

## The editor

| Page | What it holds |
| - | - |
| **Workflow** | The canvas, with Add step, Test chat, Tidy up, the issues badge and step search |
| **Conversation** | History length given to code steps, voice-note transcription, image storage, message gap and the session cap |
| **Webhook** | This agent's own webhook |

## In this section

> **[Step types](/chat-agents/workflow/step-types)**
>
> All nine steps and their fields.

> **[Run code steps](/chat-agents/workflow/code-steps)**
>
> Your Python, what it can read, Generate with AI and Verify.

> **[Conditions](/chat-agents/workflow/conditions)**
>
> Rules, keywords, message types and counts over the chat.

> **[Testing](/chat-agents/workflow/testing)**
>
> Test Chat with the path highlight, and the publish checks.

> **[Examples](/chat-agents/workflow/examples)**
>
> A question limit with Jev, buttons, media and spam.

> **[Build with Claude](/chat-agents/workflow/build-with-claude)**
>
> Give Claude your PRD and the skill, get the workflow as a JSON file.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.