> ## 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 An Advanced Agent With Claude

> Give Claude your PRD and the skill, get the whole WhatsApp agent as a JSON file

Placing every step and wiring every branch by hand is slow. If the conversation
is already written down — a PRD, a sales script, a support playbook — hand it
to Claude with the skill below and get a finished WhatsApp Advanced agent:
persona, steps, branches and settings, in one JSON file.

***

## 1. Download The Skill

> **[callkaro-chat-advanced-agent.md](https://callcenterthink.blob.core.windows.net/jatin/callkaro-chat-advanced-agent.md)**
>
> The complete Advanced agent specification, written for Claude. \~50 KB.

It is Markdown — every step type, every field, the value sources and
conditions, the checks a flow must pass, and a complete example agent 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-advanced-agent/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 agent.

***

## 3. Give It Your PRD

With the skill attached, attach or paste the PRD:

> Here is the PRD for our clinic's WhatsApp booking assistant *(attach the
> file)*. Build a CallKaro WhatsApp Advanced agent from it.

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

| Put in the PRD | Why |
| - | - |
| The conversation, step by step | Becomes the flow — what to send, what to ask, what happens on each answer |
| What happens on *no*, *not now*, a question, a failure | Becomes the branches, so the agent does not stall |
| Things that can happen at any point — "talk to a person", "stop" | Become global intents |
| Tone, languages, approved facts (prices, timings) and what it must never say | Become the persona: instructions, rebuttals and guardrails |
| The WhatsApp templates it sends, by name | Become Send template steps |
| The APIs it calls, or their Python code | Become custom functions |
| Contact attributes it reads or saves (**Contacts → Attributes**) | Used by Update contact, Ask & save and conditions |
| Links to images, videos or documents | Become Send media steps |
| A voice agent ID, if it should call the user | Becomes a Schedule call step |

> [!TIP]
>
> Anything Claude cannot know comes back as a placeholder — a template marked
> `REPLACE_WITH_TEMPLATE_ID`, a voice agent marked `REPLACE_WITH_VOICE_AGENT_ID`,
> an example API URL — and Claude lists every one at the end of its answer.

***

## 4. What You Get

One JSON file: the agent's persona, its flow with every step placed on the
canvas, its custom functions and its settings. Bring it into the dashboard from
**Agents → Chat → Import**, then fill in the placeholders before you publish:

* **Send template** — pick the approved template, then check each variable's source
* **Schedule call** — pick the voice agent
* **Custom function** — the code is written against *your* API from the PRD; check it, and use `x_context["is_test"]` to return a stand-in in Test Chat
* **Update contact**, **Ask & save** and contact conditions — the attributes must exist in **Contacts → Attributes**
* **Send media** — the links must be public `https://` links

The issues badge on the canvas lists anything still missing — the same checks
that run when you publish. Then [test it](/chat-agents/advanced/testing).

***

## Next Steps

> **[Step types](/chat-agents/advanced/step-types)**
>
> What each step in the file does

> **[Testing](/chat-agents/advanced/testing)**
>
> Test Chat with the live step highlight


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