Skip to content
ProductOpen console

Build your agent

Rina runs Nordwell, a furniture shop with two showrooms and about four hundred products online. They deliver across the city. Every day the same four questions arrive: is this in oak, where is my delivery, do you come out to my area, and can I see it before I buy. Some arrive by web chat, most by WhatsApp, and the awkward ones by phone at eight in the evening.

Rina and Nordwell are invented, a stand-in business so that every step has a real problem attached to it, while the console screens, journeys and channels described are the actual ones.

Rina has no engineers. What follows is what they did, in order, and what each step gave them. Twenty steps across eight stages, spread over about two weeks without rushing.

The order matters more than the speed. Several steps are meaningless until the one before them is decided, and two of them are the reason a later step works at all.

Stage What happens Steps
1. Set it up A workspace, and an agent that already looks like your business 1 to 3
2. Teach it The brief, your knowledge, your help articles, your products 4 to 7
3. Shape how it talks Shortcuts, exact wording, and knowing who is on the other end 8 to 10
4. Give it hands Journeys, your existing tools, and where the work lands 11 to 13
5. Choose the engine and prove it Pick the model, then score it before a customer does 14 to 16
6. Put it on your site The widget, and the moment a human takes over 17 to 18
7. Give it a phone Languages, a voice, a greeting, a number 19
8. Run it Reports, budgets, your team, and what to fix next 20

The goal today is not a good agent. It is an agent that exists, has your logo on it, and says your company name back to you.

Two words carry all the structure, so they are worth thirty seconds.

Workspace is your company. Your team, your billing and your usage sit at this level. App is one brand inside it, with its own agent, its own knowledge and its own inbox.

Nordwell is one company selling one thing, so Rina needs one of each. Signing up creates both, so in practice this step is done before you first see the console. A second app only earns its place when there is genuinely a second brand that would give different answers to the same question.

What this gives you. A home for everything that follows, with your team and your billing already attached to it.

The setup wizard offers two doors. Behind the first you paste your website address and the platform reads your homepage. Behind the second, for businesses with no site worth reading, you answer a few short questions instead.

Rina pastes the Nordwell address. A minute later the review screen comes back with a proposed name, the brand colour found in the page, the logo picked out of the markup, a first draft of how the assistant should introduce itself, and a set of questions and answers pulled from the site copy.

Agent / Set up from my website
Review what we foundApply selectedTurn off anything you would rather write yourself.
NameNordwellon
Brand colorRead from the page themeon
LogoFound in the page markupon
Assistant personaA first draft you will rewrite in step 4on
8 questions and answers2 look like marketing copyoff
Nothing is applied until you press Apply. Every proposal has its own switch, so you keep the logo and drop the two FAQ entries that were marketing rather than fact.

What this gives you. An agent carrying your logo, your colour and a rough draft of your voice, before you have written a word.

Four fields decide how the agent presents itself: its name, a one line tagline, the brand colour, and a plain English description of how it should behave. Rina names it Nordwell Assistant, taglines it Furniture, delivery and showroom questions, and writes three sentences of description.

Then the part people skip. Open Preview and talk to it. Preview runs the agent exactly as it is configured right now, and nothing you say there reaches your inbox or your reports, so you can ask the rude question you would never risk in front of a customer.

It will be bad. That is the point of finding out now.

What this gives you. A working agent you can hold a conversation with, and an honest first read on how far it has to go.


This stage decides whether the agent is good. Everything after it is tuning. The console groups these four screens as the Brain, and they deserve most of your time.

The brief is everything the agent knows about who it is and how to reply. You do not write one long instruction. You add a separate prompt for each thing you want it to get right, and each one carries a type that tells the agent what kind of thing it is reading.

Type What it is for
Identity Give the agent its voice and character
Role Define the job it does and where it stops
Instruction Tell it the steps to follow
Context Give it facts to always have on hand
Memory Record what it has learned about the business
Sample Show it what a good answer looks like
Rule Set a limit it must never cross
Agent / Agent Brief
Agent BriefPublishEverything your agent knows about who it is and how to reply.
Prompts 6Composed and publish
IdentityHow we talk to customerson
RoleWhat I answer, and when I hand overon
RuleNever quote a delivery dateon
RuleNever say an item is in stockon
SampleOak versus walnut, answered wellon
ContextShowroom addresses and hourson
IdentityRoleRuleSampleContext
Rule carries a mark because publish protects it from AI rewriting. The other six types are categories, not severities, so they share one quiet treatment.

Rina writes six. Three things about this screen save real time later. Every prompt can be switched off without deleting it, so you can test whether a rule is what caused a bad answer. Every prompt keeps its own version history. And the Composed and publish tab shows the whole brief exactly as the agent receives it, with a bar showing how much of the budget each type is eating.

What this gives you. An agent that stays on message, knows what it may not guess at, and can be rolled back one prompt at a time.

Detail on how the seven types compose is in Writing the brief.

An agent with no material to read is a confident stranger. This screen has three tabs.

Sources is anything that updates on its own. Add a website and set how many pages and how deep to go. Add an RSS or podcast feed and every item becomes a document. Documents is everything indexed, from any origin: PDFs, text, markdown, spreadsheets, CSVs, or something you write by hand right there. Usage shows what the indexing cost and what ran when.

Agent / Knowledge / Sources
KnowledgeAdd knowledge source
Documents 74Sources 2Usage
nordwell.exampleWebsite · max 120 pages · depth 3Done
61Found
61Fetched
58Docs
0Errors
The four counters are the point of this tab. A crawl that found 61 pages and produced 12 documents did not work, and without these numbers you would not know until an answer was wrong.

Rina crawls the site, then uploads the delivery zone sheet as a spreadsheet and the care instructions PDF the manufacturer sends. Then they write two documents by hand, because the site has never said either out loud: the real returns window, and the fact that Sunday delivery exists but costs extra.

What this gives you. Answers that come from your own material instead of being invented to fill a gap.

More in Adding knowledge.

Help articles do two jobs at once. Visitors browse them inside the chat widget like a small help site, and the agent answers from them. A good article is paid for twice.

This is the place for the questions you answer by hand every day. Rina writes eight, starting with the four that were the reason for buying any of this: oak versus walnut, delivery areas and timings, the returns window, and how to book a showroom visit.

Keep crawled pages in Knowledge and keep the articles you wrote on purpose here. The separation matters when an answer goes wrong, because you want to know instantly whether the source was something you authored or something the crawler found.

What this gives you. The ten questions that used to interrupt your day get answered without you, and visitors can browse them without asking at all.

Knowledge lets the agent describe your products. The catalog lets it show them, with a picture, a price and a link, inside the chat.

Each item takes a title, images, a category and collection, tags, a description, a list of features, a link to the product page, and a price. Price is flexible on purpose: a fixed amount, a per unit amount, a set of duration tiers for anything hired rather than sold, or nothing at all when the honest answer is on request.

Agent / Catalog
CatalogImport CSVProducts and services for your widget, also indexed so the AI can recommend them.
Ashmere oak dining tableDining · from 1,240Ready
Lindholm two-seat sofaLiving · from 890Ready
Verity bar stoolKitchen · price not setMissing image, price
Demand gapsAsked for 14 times this fortnight, nothing matched: bar stools
Readiness is checking four things per item: image, price, category, description. An item with no image renders as a blank card in the chat, which looks worse than not showing it.

Four hundred products is too many to type, so Rina exports from the shop system and uses the CSV import. Readiness then flags every item missing an image, a price, a category or a description. Demand gaps collects what customers searched for and found nothing for. After a fortnight Rina discovers people keep asking for bar stools, which Nordwell sells but never listed online.

What this gives you. The agent recommends real products with real pictures and real prices, and starts telling you what you are missing.


The agent now knows things. This stage is about manners: making replies quick to answer, making certain sentences exact, and learning who is on the other end.

When the agent asks a question, it can offer the answers people usually give as tappable pills. You write a rule by giving it the words that appear in the agent’s question and the options to show.

The widget on a phone
The Ashmere comes in oak and walnut. Which were you thinking?
OakWalnutNot sure yet
Oak
Good choice. Oak is in both showrooms if you want to see it before you buy.
Shortcuts, not a menu. The visitor can ignore every pill and type whatever they want, and roughly half of them do.

Rina adds three rules. Wood gets Oak, Walnut and Not sure yet. Delivery gets the three zones. Showroom gets the two branches.

What this gives you. Conversations that finish in three taps instead of three paragraphs, which matters a great deal on a phone.

More in Suggestion pills.

Some sentences must be exact. Bank details, a booking confirmation, a refund policy line, the opening greeting. You do not want a language model choosing its own words for any of those, however good it is.

A saved response is a message you wrote, delivered exactly as written, with live values filled in. Each one has a key and can hold a version per language. There are two ways one gets used. Bound responses fire automatically at a moment, such as the greeting. Referenced responses are called by name from a prompt in your brief, so the agent decides when the moment has arrived but not what to say.

Rina writes four: the greeting, the delivery charge explanation, the showroom booking confirmation, and the returns policy. There is a Draft with AI button that gets you a first version, which you then edit until it is your wording.

What this gives you. The sentences you cannot afford to have paraphrased become impossible to paraphrase.

More in Saved responses.

Two separate settings live here, and confusing them is the common mistake on this screen.

Soft identification is the agent casually asking who it is talking to. You choose how many messages in it asks, which details it collects from name, email and mobile, and you write the exact wording of every ask. It never blocks the chat. If someone ignores the question, the conversation carries on.

Verification is a one time code, and it does block.

Agent / Visitor identity
Identity and verificationSave identity settings
Soft identification
Ask who I am talking toNever blocks the chaton
Ask after N messages2
Collectnameemailphone
Verification (OTP)
Require verificationoffon_demandrequired
Verify viaemailphone
Browsing sofas needs no code. Asking where your delivery is does. That is the whole reason this step comes before journeys.

The three verification settings are off, which never asks; on_demand, which asks only when a task needs it, such as looking up an order; and required, which asks for a code before any conversation at all.

What this gives you. Every conversation has a name attached to it, and anything private sits behind a check rather than a hopeful assumption.


Up to here the agent talks. From here it does things: finishing a task, reaching into the systems you already run, and putting the result where your team will see it.

A journey is a job the agent completes rather than only answers. There is a gallery of ready made ones grouped by what they are for. You do not build them. You switch one on, tell it where to send the result, and publish it.

Group Journeys
Support Submit a ticket, Talk to a human, Request a return, Email transcript
Sales Capture a lead, Request a quote, Callback request
Commerce Find a store, Find a product, Track order, Place an order, Pre-order for tomorrow, Share order feedback
Billing Pay an invoice, Manage subscription, Book an appointment
Journeys
JourneysGoal-completing journeys for your agent. Enable, bind an action, then publish.
Commerce
Track orderlive tracker · auth: verifyPublished
Find a productcard · auth: noneNot enabled
Support
Talk to a humancard · auth: nonePublished
Request a returncard · auth: identifyDraft
Enable, bind the action, then publish. A journey saved as a draft is configured and inert, which is the right state to leave one in overnight.

Each journey arrives with the questions it will ask, the phrases that trigger it, and how it presents the result. You can rewrite all three. Three settings decide how it behaves:

  1. The action. Either a built in one, such as filing a ticket or handing the chat to your inbox, or a web address of your own that receives the collected answers as a single message.

  2. The result. A summary card, a set of buttons, or a live tracker.

  3. The access level. Open to anyone, needs a name and email first, or needs a verified code first.

Rina turns on four: Track order pointed at the delivery system, Book an appointment for showroom visits, Talk to a human, and Capture a lead. Track order is set to need a verified code, which is why step 10 came first.

What this gives you. The agent finishes jobs. A delivery question ends with a tracked delivery, not with a promise that somebody will get back to you.

More in Journeys.

There are two doors into your other systems, and they suit different situations.

Integrations are the ready made connections: Shopify, WhatsApp Business, WordPress, HubSpot, Stripe, Calendly and Google Drive. You enable one at the workspace level and assign it to the app that should use it. Grant the least access that makes it work, because a read only connection cannot cause an incident.

Connected tools is the general purpose door, for systems with no ready made connection. If yours can publish its actions over MCP, the shared standard tools now use to describe what they can do, you paste its address and a key and the agent can call those actions mid-conversation. The connection is scoped to one app, so a tool connected for Nordwell is not silently available to a second brand.

Rina connects Shopify for stock and Calendly for showroom slots, and leaves the general purpose door alone until there is a reason to open it.

What this gives you. The agent reads and writes in the systems that hold the truth, instead of holding a stale copy of it.

More in Channels and integrations and MCP.

A conversation that produces work is only useful if the work leaves the conversation. Five places catch it, and most businesses need two of them.

Where What it holds
Tasks Follow ups and tickets attached to the app. A filed ticket lands here
Data store Custom records the agent reads and writes, for anything that is not a ticket
Events The running stream of what happened, which is where you look when something did not fire
Webhooks Those events, pushed to a system of yours
Workflows Steps chained together, with approvals where a person should sign off first

Rina uses Tasks and one webhook into the delivery system. The rest can wait until there is a real need.

What this gives you. Work that starts in a chat ends in your team’s queue, rather than in a transcript nobody reads.


The console groups these three screens as Ship. They are the last three before anybody outside your company can reach the agent.

The model is the engine that writes the replies. Faster ones cost less and are fine for short factual answers. Stronger ones handle nuance and awkward questions better, and cost more per conversation.

You choose a provider and a model, and four dials sit underneath. Temperature controls how varied the wording is. Top-p is a second control on the same thing, and most people leave it alone. Max tokens caps how long a reply can be. There is also a system prompt override, which you should leave empty, because the Agent Brief already writes that for you.

Two guardrails are worth knowing about. Only models your plan includes appear in the list. And switching sends a real test message to the new model first, so it cannot be set to something that does not answer.

What this gives you. The trade between cost and quality becomes a decision you make on evidence.

This screen turns changing the agent from a gamble into a routine. It has five tabs.

Suites are your real questions. Not the ones you wish customers asked. The awkward one about price belongs here. Scorers define what counts as a good answer. Runs and A/B runs a suite, and can run the same suite against two models side by side so you see the difference rather than argue about it. Continuous watches the pass rate on live conversations. Gates marks a suite as one that must pass, which stops a bad change going out quietly.

Agent / Testing and evals / Runs and A/B
Nordwell, the real twentyRun suite
Suites 1ScorersRuns and A/BContinuousGates
20Cases
14Passed
6Failed
70%Pass rate
Do you deliver on Sundays?Confidently wrong. No document says soFail
How much is the Ashmere?Correct but evasive. A rule is too tightFail
Is the Lindholm in walnut?Answered from the catalogPass
Six failures is a morning of work, not a mystery, because each one names what was missing.

Rina writes twenty questions from the last month of WhatsApp messages. The first run fails six. Four are missing knowledge, one is a brief rule that was too strict, and one is the model being genuinely wrong.

Three failure shapes cover almost everything:

What you see What it means
Confidently wrong Knowledge is missing, so it filled the gap
Correct but evasive A brief rule is too tight
Correct but endless You never told it to be brief, and nobody reads paragraph four in a chat window

What this gives you. You can change the brief, the knowledge or the model and know within minutes whether you made it better or worse.

More in Testing and publishing.

One switch decides whether guests can reach this agent at all. The same screen shows what is currently in effect, what will change when you publish, and how much bigger or smaller the brief has become since last time.

Taking it offline later stops new conversations without deleting anything, so going live is a reversible decision rather than a final one.

What this gives you. The agent is reachable. Everything from here is about where people can reach it from.


The widget is the front door most customers will use, and it is a small product in its own right rather than a box that appears in the corner.

The Widget Studio walks five stages in order: Configure, Preview, Test, Deploy, Monitor. Configure holds seven panels: Branding, Header and home, Content, Behavior, Business hours, AI and advanced, and Features.

Widget / Configure / Features
ConfigurePreviewTestDeployMonitor
File attachmentsLet visitors upload images and documents in chat.on
CSAT ratingAsk for a satisfaction score after each resolved conversation.on
Human handoffRoute to a live agent in your inbox when the AI is not enough.on
Voice inputShow a mic affordance so visitors can speak a message.off
Proactive messagesAuto-open with a nudge after a delay or on exit intent.off
Proactive is off on purpose. A box that jumps at a customer browsing sofas is the fastest way to teach them to close it.

Rina turns on attachments, because customers send photos of the room they are furnishing, plus the rating and the handoff. Proactive stays off.

Deploy then gives ten routes to get it live: a plain snippet for any website, a prompt you can hand to an AI coding assistant to wire it into your codebase, Google Tag Manager, WordPress, Webflow, Wix, Squarespace, a Shopify theme embed that needs no code, a mobile app SDK for iOS and Android, and a QR code pointing at a hosted chat page.

What this gives you. A front door on every page of your site, in your colours, plus a printable one for the physical world.

More in Widget.

The agent needs to know when to stop. Four settings screens decide that, and they take about twenty minutes together.

Business hours set when your team is online and what the agent says when they are not. Conversation covers greetings, automatic closing of stale chats, and how messages are handled. Notifications decide when your team is emailed or alerted. Privacy sets how long chat and call data is kept.

Everything handed over lands in the Inbox, where a person picks it up and continues the same conversation the customer was already in. The customer never starts again.

What this gives you. The agent knows its limits, and a customer who hits one is passed to a person rather than to a dead end.

More in Inbox.


Voice is added to an agent that already works in writing. A phone agent that says the wrong thing simply says it out loud, faster, to somebody who cannot scroll back.

Voice settings form a chain. Each link is meaningless until the one before it is decided, and the last one is the step people skip.

DECIDE IN THIS ORDERAgentbrief, knowledgeLanguagesand their orderVoiceone per languagePhrasesper languageWarmrecord themNumberassign to agentA readiness checklist ticks each link off as you finish it.
Warming has no visible result until you skip it. The phrases are already correct without it. They are just slow the first time each caller hears them.

Work in that order. Enable voice for the app, choose the languages in spoken order, pick a voice for each language, write the greeting and fixed phrases per language, warm them, then connect a number and assign it.

Voice AI / Overview
Voice AIShare demo dialerAnswer and place phone calls with Nordwell Assistant’s AI agent.
OverviewInboxInsightsNumbersCampaignsVoice and Routing
Readiness
Voice enabledThe agent will answer calls.Done
Language and voice setEnglish, BengaliDone
Phone number connectedDone
Number assigned to an agentNothing answers until this is setTo do
Every item ticks off as you finish its link in the chain. When they are all green, a Test call button appears, plus a demo dialer link you can send to a colleague.

Five tabs run it afterwards: Overview, an Inbox of calls, Insights, Numbers, and Campaigns for outbound calling.

What this gives you. The phone gets answered at eight in the evening, in the language the caller actually speaks, by the same agent that answers your website.

The full setup, with the parts this summary skips, is in Set up a voice agent.


The build is finished. What is left is the loop that keeps it good, and it takes about half an hour a week.

Six places tell you how it is going. You only need to open three of them regularly.

Where What it answers
Reports Volume, response time, satisfaction scores and automatic quality checks
Conversations The transcript archive. Read five a week. This is where you find the questions your suite is missing
LLM What you are spending across every brand, with budget alerts before a surprise rather than after one
Customers The people who have talked to you, built from what step 10 collected
Audit Who changed what, which matters the first time somebody asks why the agent started saying something new
Team Roles and permissions, so a showroom manager can work the inbox without being able to rewrite the brief

The loop is short. Read a few conversations, find the worst answer, decide whether it was missing knowledge, a brief rule or the model, fix that one thing, add the question to your test suite, and publish. Then do nothing else until next week.

What this gives you. You find out the agent is wrong from a report you read on a Monday, rather than from a customer who has already left.


One agent, many doors. The brief, the knowledge, the catalog and the journeys are shared across every channel, so your answers do not depend on which app somebody opened.

Channel What it covers What you need Status
Website widget Your own site, in your colours, with articles and product cards Nothing, it is built in Live
WhatsApp The channel most customers reach for first A WhatsApp Business account and its access token Live
Facebook Messenger Messages to your Facebook Page Page access, granted by signing in Live
Instagram DM Direct messages to your Instagram account Instagram account access Live
Telegram A Telegram bot answering as your business A bot token from BotFather Live
Slack Internal desks: staff asking the agent questions A Slack app token and signing secret Live
SMS Text messages, for customers with no app A number and account with an SMS provider Live
Email Your support inbox, answered as a conversation Mailbox login details Live
Voice (phone) Inbound and outbound calls, covered in stage 7 A telephony account and a number Live
Twitter / X DM Direct messages on X Account access tokens Live
OU Chat The platform’s own chat app, and a short link per business Nothing, it is built in Live
Programmable API Anywhere else: your app, a kiosk, an in-car screen Developer time on your side Live
LINE The main messenger in Japan, Thailand and Taiwan Channel credentials Coming
TikTok Messages to a TikTok business account Business account access Coming
LinkedIn Page Publishing as your company, and replying to comments Page admin access Coming

Two things vary between channels, and both are worth knowing before you connect a second one. Some let you message first, and some only let you reply inside a time window after the customer wrote to you. And rich things like product carousels and buttons render fully in the widget and become plain text elsewhere, so write answers that read correctly as plain text and treat the rich version as a bonus.


When Steps What you are doing
Day 1 1 to 3 Read your website, set the profile, talk to it in Preview. About an hour
Days 2 and 3 4 to 7 The brief, the knowledge, the help articles, the catalog. This is the work that decides quality
Day 4 8 to 11 Suggestions, saved responses, identity, and the two or three journeys you need
Day 5 14 to 17 Pick the model, run twenty real questions, publish, put the widget on the site

That leaves steps 12, 13, 18, 19 and 20 for week two: connecting your other systems, deciding where the work lands, the handover settings, voice, and the weekly reporting loop. Each is an addition to something that already works, and each is easier once the agent underneath is answering well.

Omazy CX documentation. One voice. Every channel. Always on.

Founded by Mosthofa Imran · imran@omazy.ai