> ## 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 Flow With Claude

> Describe the bot in plain language, get an importable JSON file

Drawing sixty cards by hand is slow. If you already have the conversation
written down — a support script, an FAQ tree, a spreadsheet of issues, an export
from another chat tool — you can hand it to Claude with the file below and get a
finished flow you import in one step.

***

## 1. Download The Skill

<Card title="callkaro-chat-flow-skill.txt" icon="file-arrow-down" href="/media/callkaro-chat-flow-skill.txt">
  The complete flow-graph specification, written for Claude. \~25 KB.
</Card>

It is Markdown — every card type, every field, the validation rules, and the
exact shape of an importable agent file. **Save it as `SKILL.md`** (or any
`.md` name) once you have it.

***

## 2. Give It To Claude

<Tabs>
  <Tab title="Claude Code">
    Save it as a skill and it loads itself whenever the task calls for it:

    ```
    ~/.claude/skills/callkaro-chat-flow/SKILL.md
    ```
  </Tab>

  <Tab title="Claude apps">
    Attach the file to the conversation, then describe what you want. Add it as
    a Project file if you will be building more than one flow.
  </Tab>
</Tabs>

***

## 3. Describe The Bot

With the skill attached, either paste a spec:

> Here is our support script *(attach the file)*. Build a CallKaro chat flow
> from it. Everything in Hindi, and anything about fraud should go straight to a
> human after collecting the details.

…or just describe it:

> Build me a chat flow for a matrimony app. Main menu with five topics: matches,
> payments, profile edits, fraud reports, and how to use the app. Payments and
> fraud should reach a human. Collect the order id before any payment handoff.

Claude returns a single JSON file.

<Tip>
  Ask for one topic first, import it, and check it in **Try it**. Getting the
  shape right on a small flow is much faster than reviewing sixty cards at once.
</Tip>

***

## 4. Import It

Save what Claude gives you as `something.json`, then:

**Chat agents → Import** → drop the file → **Create**

The agent is created with its flow already drawn, and opens on the canvas.

<Warning>
  Import **creates** the agent; it does not publish it. Check it in **Try it**,
  then press **Publish**.
</Warning>

You can also go the other way: **Export** an existing agent, hand that file to
Claude to extend, and import the result back.

***

## What To Check Before Publishing

Claude fills gaps with placeholders when your description was silent, and those
are the parts that look finished but are not:

* **API endpoints and URLs** on any *API call* card
* **Media URLs** on any *Send image or file* card
* **Deep-link schemes** — `myapp://…` needs to be your real scheme
* **Turnaround promises** — "within 24 hours" is a guess unless you said so
* **Ticket code** — see [Raise a ticket](/widget/chat/ticket-fallback)
* **AI card functions** — the Python in any generated function is a sketch
  against *your* API, not a working integration. See
  [The AI card](/widget/chat/ai-card#functions)

The skill tells Claude to list these back to you explicitly. If it did not,
ask: *"which values in this flow did you invent?"*

***

## What It Will Refuse To Build

The skill documents the platform's limits so Claude tells you instead of faking
them — routing a handoff to a particular team, transferring a chat between
teammates, or asking for a file on an `ask` card (attachments only exist on an
AI card and during a handoff).

The rest are listed in [Human handoff](/widget/chat/human-handoff#what-this-does-not-do-yet).

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Card types" icon="diagram-project" href="/widget/chat/card-types">
    What the generated cards actually do
  </Card>

  <Card title="Install in your app" icon="code" href="/widget/chat/install">
    Getting it in front of people
  </Card>
</CardGroup>
