B Blengi docs

Build your agent

Setup helper

The setup helper sets up an AI employee from what its owner says they need. It reads the customer's website, takes a description in the owner's own words, asks at most five short questions for whatever is still missing, and shows every setting in plain sentences before anything is saved. The owner tries a few answers with the new settings, presses Apply, and can Undo afterwards.

The AI only fills in a form. It never writes settings: they change when the owner applies them, through the same validation and the same writer as the AI employee's own tabs, so the setup helper can never store a value the tabs would refuse.

Where to find it

  • An AI employee's Overview: the Setup helper card.
  • The Personality tab: the button at the top.
  • The last step of the setup wizard, after the site has been read.
  • Directly: /app/agents/{agent}/assistant. Members who may edit the AI employee can use it; viewers cannot.

The steps

  1. What we found. The homepage is fetched once (a real browser user agent, every redirect checked against internal addresses, at most 1.5 MB) together with the first part of up to three indexed pages. Without AI: the business name (og:site_name, the JSON-LD organisation name, else the page title), the language (the words on the page, then <html lang>, then the indexed documents), whether the site says “u” or “je” (pronouns counted; answered only on a clear majority) and the brand colour (the browser theme colour, a CSS variable named like a brand colour, else the most used clear colour). With one AI call: tone, an opening message, three starter questions a visitor would ask, and topics.
  2. In your own words. Optional free text. The AI fills the form from it, and only from it: every choice the owner did not write about stays "not said" (silence is never read as "no").
  3. Up to five questions, one at a time, pre-filled, skipping what the owner already said: what matters most; what it must never do or say (prices, only answering from its own information, own rules); when to ask for contact details and which; whether a visitor can talk to a person; language, “u” or “je”, and tone.
  4. Check. Every setting in a sentence, with Changes on what would change, where each value came from (your website, what you wrote, your choice) and a Change link per row. Things it cannot do are listed under Not possible yet; documents the owner mentioned under Documents to upload; anything the AI suggested that the owner never wrote under Left out.
  5. Try it. Test questions answered with the settings about to be applied, the way a visitor's first question on the homepage is answered: a request for a person gets the handover line (or the fallback when no one can be reached), a matching fixed answer is given as is, a booking request with a Calendly link gets the booking line, and anything else goes through the homepage's category, retrieval, the real prompt and the same clean-up (Dutch openings, one question for an advisor, prices removed when they may not be said, source markers removed). A note under the answer says which of these happened. Nothing is saved and no conversation is created.
  6. Apply, then Undo if needed.

Every step is saved with the run, so a reload continues where the owner was, including the questions they skipped. Stop this setup throws an unfinished draft away; nothing was changed. When the opening message or starter questions are still in another language than the one chosen (for example after the AI could not rewrite them), the check page says so and offers Rewrite them.

What it can set

In the setup helperThe setting
Name visitors see, rolepersona.name, persona.role (Personality)
Languagelanguage_default
Addressing visitors (“u” or “je”)persona.address_form: one sentence in the prompt (Personality › Way of speaking)
Tonepersona.tone: Friendly, Expert or Concise
Opening message, starter questionstheme.intro_message, starter_prompts
What matters mostprimary_goals (Advisor Mode)
Pricesprice_display: may mention = text_and_card, never = link_only (Price display)
Only from your own information; when it does not knowstrict_knowledge, strict_fallback_message (Strict Knowledge Mode). Switched on only when the owner asks for it in so many words ("only", "alleen", "nur", "never make anything up"…), or says what to do when it does not know.
RulesOne marked block in the system prompt, its marker lines in the AI employee's language (English --- Rules from the setup helper --- … --- End of rules ---, Dutch --- Regels van de instelhulp --- … --- Einde van de regels ---, German, French and Spanish likewise). The owner's own text around it is never touched; a later run replaces only the block, whatever language its markers are in.
Contact details: when, which, where to sendlead_prompt_strategy, lead_form_fields (labels in the AI employee's language and “u”/“je”; the owner's own extra fields stay), lead_notify_emails (added to, never replaced)
Talking to a personhuman_handoff_mode: always, when someone is online, never
Calendly linkcalendly_url; only a calendly.com address, because the booking button opens Calendly's own popup
Also learn fromA new Single URL source per website that also reads the pages it links to (one level). Skipped when a source already reads it, for a Google Doc (add it under Knowledge › Google Docs) or when the plan has no room.
Brand colourtheme.primary

It does not set opening hours (Settings › Human takeover), documents (upload them under Knowledge) or anything outside this table. Requests it cannot meet — appointments in a calendar other than through Calendly, WhatsApp, phone calls, orders, a CRM — are shown under Not possible yet, never quietly dropped.

Keeping the AI honest

  • The AI fills a form with fixed choices, each explained in plain words, and is told to use only what the owner wrote. Its answer is held to a JSON schema (structured output). On Cloudflare Workers AI the primary model answers; the configured fallback model is never used for this — in tests it filled the form wrongly — and on an error the next provider (OpenRouter, in strict mode) is tried.
  • A check without AI then keeps only what the owner actually wrote: a website must have its host in the owner's text; a lead e-mail address and a booking link must appear verbatim; a rule, a wish it cannot meet, a document, a starter question, an opening message or a role must share a real word with the text; a “when it does not know” sentence may only contain phone numbers, e-mail addresses and links the owner wrote. Whatever it drops is listed under Left out.
  • The website may fill a setting on its own only when the setting is empty, or on an AI employee that no visitor has used yet and that was never set up by the setup helper (its name, language and look are still the creation defaults). Otherwise the site's language is offered as a suggestion in the questions.

Ask for a change

Once an AI employee has been set up, the setup helper opens with Ask for a change: “make it more formal”, “also ask for a phone number”. The AI returns the whole form with that one change; only what differs is taken, a new website, rule or contact detail must pass the same check against the request, and a choice is never cleared by a change request. The check page shows exactly what will change.

Undo

Applying records every changed setting with its value before and after (agent_setup_runs.changes). Undo restores each one that still holds the applied value; a setting the owner changed again afterwards is theirs and stays. Websites that were added stay under Knowledge.

Endpoints

RouteWhat it does
GET /app/agents/{agent}/assistantThe page.
POST …/assistant/startmode = setup (reads the site) or change. Replaces an abandoned draft.
POST …/assistant/{run}/describeThe owner's text → the form. One AI call.
POST …/assistant/{run}/answerAnswers and edits, taken as given.
POST …/assistant/{run}/rewriteThe opening message, starter questions and fallback sentence in the chosen language and “u”/“je”. One AI call.
POST …/assistant/{run}/previewOne test answer with the unsaved settings. Writes nothing.
POST …/assistant/{run}/skipstep = describe or a question key; kept on the run.
POST …/assistant/{run}/discardStop an unfinished draft (an applied run cannot be discarded).
POST …/assistant/{run}/apply, …/undoApply the draft; undo an applied run.

Every route needs the update permission on the AI employee and a run of that AI employee. The POST routes are throttled (40 a minute). When the AI cannot help, the answer is 503 with a plain message and nothing has changed.