Website chat

Set up the website chat

chat_setup · Changes data · Markdown

Creates or changes the business's website chat widget and who answers it, and returns the snippet for the website.

$0.001 a call

From your agent’s balance. A call that fails costs nothing.

An example

Put a chat on our website that you answer. Sign the replies Halverson Support and greet people with "Questions about a bike or a repair? Ask us."

Your agent callschat_setup$0.001 a call

The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.

With these arguments
{
  "name": "Halverson Cycle & Repair",
  "website": "https://halversoncycle.example",
  "greeting": "Questions about a bike or a repair? Ask us.",
  "agent_name": "Halverson Support",
  "color": "#1f4d3a",
  "language": "en"
}
What comes back
{
  "chat": {
    "widget_id": 4101,
    "name": "Halverson Cycle & Repair",
    "website": "https://halversoncycle.example",
    "greeting": "Questions about a bike or a repair? Ask us.",
    "agent_name": "Halverson Support",
    "color": "#1f4d3a",
    "language": "en",
    "experience": "chat",
    "starter_questions": [],
    "embed_html": "<script src=\"https://api.conecto.chat/widget.js\" data-widget=\"5fAAnIKPHXw4oJjcG0qno8TQnSKx6aS9\" async></script>",
    "install": "Put embed_html just before </body> on every page of the website.",
    "answer_with": "bot",
    "answering": "You answer. Every visitor message arrives as a chat.message_received event: subscribe a webhook to it (notify_add_channel, then notify_subscribe with events [\"chat.*\"]) to get it on your server at once, or call chat_wait in a loop. Reply with chat_reply; chat_typing shows \"typing\" while you work. Conecto runs no AI of its own in the chat.",
    "listening": false,
    "pricing": {
      "model": "per conversation",
      "price_usd": "$0.05",
      "conversations_this_month": 0,
      "charged_this_month_usd": "$0.00",
      "unpaid": 0
    }
  }
}

Use it when

The business wants a chat on its website that the agent answers, one its existing chatbot (n8n, Flowise, its own server) answers through a webhook, or one a model answers on the business's own OpenAI, Anthropic or other key while no agent is online; or the widget's name, greeting, colour or language should change.

What it does

Create or change the business's website chat widget, which you answer: each visitor message reaches you as a chat.message_received event (subscribe a webhook to it, or use chat_wait) and you reply with chat_reply. Or answer_with webhook: your own brain (your server, n8n, Flowise) gets each message as a signed POST and its reply goes to the visitor at once. Or answer_with model: a model on the business's own key answers, with instructions and knowledge you give. Conecto pays for no model in it. Only the fields you pass change. The reply has the HTML snippet to put on the website. $0.05 per conversation, charged on the visitor's first message; messages and replies are free.

What comes back

The widget: widget_id, name, website, greeting, agent name, colour, language, experience (chat or beside), starter questions, the embed_html to put before </body>, who answers (answer_with; for a webhook its address, for a model its provider, model, instructions and knowledge size, and for both the last error) and how, whether it is listening, and this month's conversations and cost. webhook_secret comes back once, when a webhook is first set or rotated; a model key never comes back. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
namestringThe business name. 1 to 120 characters.
websitestringThe website it goes on. Up to 255 characters.
greetingstringThe first line visitors see. 1 to 300 characters.
agent_namestringThe name your replies are signed with, e.g. "Acme Support". 1 to 60 characters.
colorstringAccent colour, e.g. #1a73e8. Matches ^#[0-9a-fA-F]{6}$.
languagestringWidget language, e.g. en, de. Matches ^[a-z]{2}$.
experiencestringchat: the classic chat widget. beside: Beside, which also tells you the page the visitor is on (its address, title and text) with each message. Same price. One of: chat,beside.
starter_questionsarray of stringsBeside: up to 3 questions visitors can tap to start. Up to 3 items.
answer_withstringbot (the default): you answer through events and chat_reply. webhook: each visitor message is POSTed to webhook_url and its reply goes to the visitor at once. model: a model on the business's own key answers (model_provider, model, model_api_key). One of: bot,webhook,model.
webhook_urlstringYour brain's https endpoint for each visitor message. Up to 500 characters.
webhook_tokenstringSent as Authorization: Bearer, for brains that want a key (Flowise, n8n header auth). Empty removes it. Up to 500 characters.
rotate_secretbooleanMake a new webhook_secret (the old one stops working). Default: false.
cant_answerstringWhat the chat says when your webhook or model gave no reply; it then asks for the visitor's email. Needed for languages other than en, de, es, fr, it, nl, pt and sv. Up to 300 characters.
model_providerstringWhose model answers with answer_with model. One of: openai,anthropic,openrouter,mistral,groq,azure.
modelstringThe provider's model name, e.g. gpt-5.4-mini or claude-sonnet-5-5; for azure the deployment name. It must support tool calling. 1 to 160 characters.
model_api_keystringThe business's API key for model_provider. Kept encrypted, never shown again; its usage is billed by the provider to the business. 1 to 500 characters.
model_base_urlstringazure only: the resource's address, like https://acme.openai.azure.com/openai/v1/. Up to 300 characters.
instructionsstringanswer_with model: how the model answers (tone, scope, what to offer), in the business's words. Up to 4,000 characters.
knowledgestringanswer_with model: facts it answers from (prices, delivery, opening hours). Replaces what was given before; empty removes it. The published help center is used as well. Up to 50,000 characters.

The call

Over MCP, call chat_setup on https://api.conecto.chat/mcp/chat. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/chat_setup \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Halverson Cycle & Repair","website":"https://halversoncycle.example","greeting":"Questions about a bike or a repair? Ask us.","agent_name":"Halverson Support","color":"#1f4d3a","language":"en"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
invalid_input400answer_with webhook came without an https webhook_url or with an address that is not public; answer_with model came without model_provider, model and model_api_key, or azure without its resource address; instructions or knowledge came while the bot answers; or cant_answer is missing for a language other than en, de, es, fr, it, nl, pt and sv.Fix what the message names. Nothing was charged.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md