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

# Build a Workflow With Claude

> Give Claude your PRD and the skill, get the whole Chat Center Workflow as a JSON file

Placing every step and wiring every rule by hand is slow. If you know which messages your agent should not spend an LLM call on — button taps, payment links, a question limit, spam — hand that to Claude with the skill below and get a finished workflow, ready to import.

***

## 1. Download The Skill

> **[callkaro-chat-workflow.md](https://callcenterthink.blob.core.windows.net/jatin/callkaro-chat-workflow.md)**
>
> The complete Chat Center Workflow specification, written for Claude. \~35 KB.

It is Markdown — every step type and field, values and variables, conditions and counters, how code steps run and what the code checks refuse, the publish checks, and a complete example workflow that uses every step type.

***

## 2. Give It To Claude

**Claude Code**

Save it as a skill and it loads itself whenever the task calls for it:

```
~/.claude/skills/callkaro-chat-workflow/SKILL.md
```

**Claude apps**

Attach the file to the conversation, then give your PRD. Add it as a Project file if you will be building more than one workflow.

***

## 3. Give It Your PRD

> Here is how our WhatsApp sales chat should work *(attach the file)*. Build a CallKaro Chat Center Workflow in front of our sales agent `6ad8c1c6abc99f103f99c96f`: send the payment link after 5 off-topic questions, and stay quiet on repeated messages.

The more the PRD says, the less Claude has to guess:

| Put in the PRD | Why |
| - | - |
| The agent(s) to hand messages to, by id | Become Assign chat agent steps |
| The messages the workflow should answer itself | Become conditions and sends: buttons, keywords, media, repeats, limits |
| The APIs to call — URL, request, response — and the names of their secrets | Become Run code steps (keys always come from **Settings → Secrets**) |
| Contact attributes to read or keep (**Contacts → Attributes**) | Used by conditions, Update contact and `update_contact_custom` |
| The WhatsApp templates and media to send | Become Send template and Send media steps |

> [!TIP]
>
> Anything Claude cannot know comes back as a placeholder — `REPLACE_WITH_AGENT_ID`, a template marked `REPLACE_WITH_TEMPLATE_ID`, an example API URL — and Claude lists every one, with the secrets and attributes to create, at the end of its answer.

***

## 4. Import It

Save the JSON, then **Dashboard → Agents → Chat → Import**. Open the workflow, fill in the placeholders, and check the canvas:

* **Assign chat agent** — pick your agent if it shows a placeholder
* **Run code** — the code calls *your* APIs: check it, press **Verify**, and **Test** it with a sample message
* **Send template** — pick the approved template and check each variable's source
* Create the **secrets** and **contact attributes** Claude listed

The issues badge lists anything still missing — the same checks that run when you publish. Then [test it](/chat-agents/workflow/testing) and assign the WhatsApp number to the workflow.


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