Skip to main content
Two objects, in this order. The agent is the conversation; the widget is how people reach it. One agent can sit behind several widgets.

1. Create The Agent

1

Open Chat agents

callkaro.ai/dashboard/agents → Chat agents → Create.
2

Choose channel Widget

The channel picker offers WhatsApp, Instagram and Widget. Pick Widget.
3

Choose Guided flow

Widget then asks how should it answer? — Guided flow or AI assistant.
Pick Guided flow. The chat widget runtime only runs flow agents: a widget pointed at an agent saved as AI assistant refuses every conversation with “This agent is not a flow agent.”You still get an AI assistant — as an AI card inside the flow, which is the supported way to have one and lets you put your own functions behind it.
4

Name it and save

You land on the agent page with an empty canvas and a Start card.
If you already have the conversation written down — a support script, an FAQ tree, a competitor export — do not draw it by hand. See Build a flow with Claude.

2. Draw The Flow

Drag cards from the palette, wire each exit to the next card. Every card type is listed in Card types. A first flow that is worth building:
1

A Buttons card as the main menu

Five to eight topics. More than that and nobody reads to the bottom.
2

An Ask card where you need something

Order id, email, phone. Ask before a handoff, never after — an advisor picking up a chat with nothing collected starts from zero.
3

An AI assistant card for "something else"

The topics you cannot enumerate. Give it a narrow job and, if it needs to look anything up, a function.
4

A Handoff card for what only a person can close

And configure what happens when nobody is available — raise a ticket.
5

An End card on every other path

Every path must finish somewhere: an End card, a Handoff, or a loop back to the menu. A path that just stops is the most common bug in a first flow.

Try It

Try it on the canvas walks the flow exactly as a visitor would, without publishing. Use it after every few cards rather than at the end — a wrong exit found early is one card to fix, not thirty.

3. Publish

Publish makes the version live. The builder refuses while anything is unwired or incomplete, and tells you which card — the full list of what blocks a publish is in Card types.
Editing a published flow does not change what visitors see. You must publish again. A conversation already in progress on a card you deleted is restarted rather than left stranded.

4. Create The Widget

1

Open Widgets

2

Type: Chat

Then pick the agent you just published.
3

Fill in the form

All of it is editable later, and none of it needs the agent republished — Appearance.
4

Copy the widget id

You get a wgt_… id and, on the widget’s Integration tab, the snippets already filled in with it.

5. Put It In Front Of People

The shortest possible test — paste this in a browser with your own id:
Then pick your platform in Install in your app.

Before You Call It Done

Including the ones you think nobody takes. An unwired exit on a rare branch is still a dead end for whoever finds it.
Mark yourself unavailable and ask for a person. You should get your away message and a real ticket — not silence. Raise a ticket →
The knowledge base is read without starting a chat, so it deflects the questions your flow would otherwise have to answer. It lives on the agent and ships with a publish. Knowledge base →
Without it a visitor can open the panel and read your knowledge base, but starting a conversation is refused. Billing →
Check that the variables you expect are listed beside the transcript. If an order id is missing there, it is missing from your tickets too. Contacts →

Next Steps

Card types

All fourteen cards

Install in your app

Web, iOS, Android, React Native, Flutter