Ship a website chatbot you can version, test and roll back.
Build the flow from ~55 executable block types, publish it as an immutable snapshot, A/B test two live versions, and undo a bad release in one click. It answers on your website and hands off to a human when it should.
Sign-up opens when the app launches. We will email you once — no marketing list.
- What's your refund policy?
- Refunds are handled case by case within 14 days of purchase. Want me to check your order?
- Yes — order 48291
- That order is outside the 14-day window. I'm looping in a person who can make the call — one moment.
- Handed off to Amara · Support
Three things most chatbot builders don’t give you
- Every publish is a snapshot you can undoAn append-only version row; the widget always serves the published snapshot, never your draft. Rollback is one click and itself becomes a new version — history is never rewritten.
- Real A/B testing, not a coin flipPin two published versions against each other with a traffic split and a goal node. Each visitor is hash-bucketed once and stays on that variant; results report conversion per variant.
- ~55 block types that execute, not decorateMessaging, validated input, branching, AI classification, variables and safe expressions, loops, webhooks, native CRM/ticket/order/stock actions, human handoff. Publishing validates the graph and refuses a broken flow.
Seventeen templates to start from
Start from a template, or describe the bot in plain English and edit the generated flow on the canvas.
The builder
The chatbot editor is seven tabs, and the one you’ll live in is Build.
| Tab | What it does |
|---|---|
| Build | Click-to-add blocks from an 11-group palette, wire with edges, right-click an edge to insert mid-path. |
| Train | Model + temperature, intents with a live test box, and knowledge sources: PDF upload, website crawl, manual Q&A pairs. |
| Test | Runs your unsaved draft in an in-editor chat tester — walk a path before anyone else does. |
What the bot can answer from, and what it remembers
A retrieval layer grounds every answer in your own content, and state carries across turns instead of resetting on each message.
Grounding sources
KB articles, PDFs, crawled pages and manual Q&A pairs feed the retrieval layer a KB-answer or RAG block reads from.
Conversation memory
Variables persist across turns — set from input, an API response, a JSON transform or an expression. Inputs validate email, phone, number or regex and re-prompt on a bad answer. Loop guard: 3 revisits max.
Expression safety
Purpose-built parser, no eval anywhere in the path. A malformed expression fails closed, not through the running flow.
Actions the bot can take
The chatbot doesn’t only answer. It writes.
Read — no side effects
Write — counted against the cap below
- SSRF-guarded webhooksWebhook and API-call blocks reach your own services through a guard re-validated on every attempt.
- Write cap: 5 per 10 minutesWrite-node executions per conversation — a deliberate abuse brake against a record-creation firehose.
Handoff to a human
When the bot should stop, it stops — a person takes the thread, because both sides of the conversation were persisted through the same code path as they happened.
“No agent available” is an explicit path, not a silent dead end, and a business-hours gate routes after-hours visitors to an offline branch instead of an unwatched queue.
Getting it live
Two testing surfaces run on the draft before a visitor sees it: the in-editor Test tab runs a real conversation, and publishing validates the entire graph — a 422 lists the problems rather than shipping a dangling edge or an unreachable node.
Step 1
Build or pick a flow. Start from a template, from scratch, or from a prompt.
Step 2
Test the draft in the editor and walk each branch.
Step 3
Publish. The graph is validated; a broken flow is refused with the reasons listed.
Step 4
Install the widget. One <script> tag pointing at your Oneop origin, plus tenant ID and widget key — as a config object or data- attributes. On WordPress, install the plugin and paste the widget key.
Drops onto any page, out of the way. The launcher sits bottom-right and picks up your brand's accent colour at install — set once, same widget for every visitor.
Seeing what it did, what runs it, and what it costs
Chatbot analytics read real event rows, not estimates.
A date-range funnel shows per-node entries, completions and drop-offs — where visitors give up. A/B experiments report conversion per variant; every conversation is a full two-sided transcript in the inbox.
Runs on Google Gemini, and only Gemini — no model picker, no GPT, no Claude.
Deterministic blocks — messaging, branching, variables, native actions — cost nothing; only model-backed blocks meter.
| Action | Credits |
|---|---|
| Chatbot reply | 1 |
| Copilot query | 2 |
| AI-written email | 2 |
| Document OCR pass | 3 |
| Agent action | 5 |
50
credits/mo — Free
1,000
credits/mo — Starter
5,000
credits/mo — Pro
15,000
credits/mo — Business
Chatbot or AI agent?
They are different tools, and mixing them up is how projects go wrong.
Use the chatbot for the front door. Use agents for the back office.
| Chatbot | AI agent | |
|---|---|---|
| Path | Follows the flow you designed: deterministic, same input walks the same path. | Decides its own path: reasons in a loop, chooses tools, stops at goal or a published ceiling. |
| Best for | Facing the public: predictable answers, validated inputs, capped writes. | Facing your own operations: triaging a queue, reconciling a batch, drafting follow-ups. |
| Control | You see exactly what will happen, on the canvas. | Runs under an autonomy mode you set. |
Ask it anything
Grounded in your knowledge base. Never a dead end.
Pick a question below. Retrieval grounds the answer in your own content, and the moment the bot's out of its depth it hands off to a person — mid-conversation, transcript intact.
- Guardrails with no off switchPrompt-injection blocking and PII redaction run on every model call, every plan — no setting disables them.
- Answers stay inside your workspaceThe expression engine has no
evalin its path, and every webhook or API call is re-validated per attempt, which is what defeats DNS rebinding. - Metered, never a surpriseEvery call runs through one credit choke point. At the cap you get a refusal, not an invoice.
Frequently asked
How long does it take to get a chatbot live?
Start from one of 17 templates, test the draft in the editor and publish — that path is minutes. Building a custom flow with knowledge grounding, validated inputs and handoff rules is an afternoon. Installing the widget is one script tag, or the WordPress plugin.
Can the chatbot answer from my own content?
Yes. Attach knowledge base articles, upload PDFs, crawl a website or add manual Q&A pairs, then use a KB-answer or RAG block to ground every answer in your own content — see it in action above.
Can I undo a bad publish?
Yes, in one click. Every publish snapshots the flow into an append-only version list, and rolling back restores that snapshot as the new live version — recorded as its own version row, so nothing is overwritten.
Which AI model does it use?
Google Gemini, and only Gemini — gemini-2.5-flash and gemini-2.0-flash-lite by default. There is no model picker and no support for GPT or Claude.
Can the bot create records in my CRM?
Yes. Native blocks create contacts and deals, open tickets, tag records, look up and create invoices, generate payment links, and handle orders, returns and appointments. Write actions are capped at five per conversation per ten minutes as an abuse brake.
Is the chatbot available on the free plan?
Yes. The chatbot entitlement is on every plan including Free, which allows one active flow and includes 50 AI credits a month.
Build the flow. Test it. Ship it. Roll it back if you're wrong.
The free plan includes one chatbot flow and 50 AI credits a month. No credit card.
Sign-up opens when the app launches. We will email you once — no marketing list.