Build an agent
Prompt or flow agents, voices, tools, variables and post-call analysis.
An agent is the AI that answers and places calls for one of your clients. You build it in Wozena, and it runs on your Retell account. This page covers creating an agent and everything in the builder, from the prompt to post-call analysis.
- Retell is connected, with at least one voice in your Retell account. See Connect Retell.
- The client the agent is for already exists. See Clients.
- You can build agents without a paid plan, but publishing, test calls and numbers need an active subscription.
Choose an agent type#
There are two kinds of agent. You pick one when you create the agent.
| Prompt agent | Conversation flow | |
|---|---|---|
| How it works | One instruction drives the whole call. | A visual graph of nodes and branching logic. |
| Best for | Support, scheduling, intake and sales calls that follow a natural conversation. | Calls that must follow exact steps in a fixed order, such as a strict qualification script. |
| Where you edit it | A prompt editor. | A canvas of nodes and connections. |
| Effort | Quick to set up and easy to change. | More work, with node-by-node control. |
| Label in the product | “Recommended” | “Advanced” |
Start with a prompt agent unless you know you need step-by-step control.
Create an agent#
- Start the wizardOpen Agents and click “New agent”. The “Create a new agent” dialog opens.
- Choose the typeUnder “How should your agent work?”, pick “Prompt agent” or “Conversation flow”.
- Pick a templateUnder “Start from a template”, choose one, or “Start from scratch”. A template fills in the instructions, the first words and what to note after each call, using the workspace’s business name.
- Choose the workspaceOn “Name your agent”, set “Workspace” to a client, or to “Agency workspace” for an agent you share across clients. Client users can only create agents in their own workspace.
- Name it and pick a modelEnter the “Agent name” (a template suggests one) and choose the “Model”: “Recommended”, “Faster” or “More capable”, or any model under “All models”.
- CreateClick “Create agent”. The agent opens as a draft. Try it in “Test”, then publish.
The new agent gets the first voice Retell returns and the language English (US). Change all of these in the builder.
Each new agent counts toward your plan’s agent limit. See Your Wozena plan.
A tour of the builder#
Open any agent from Agents. The header has five modes:
| Mode | What it’s for |
|---|---|
| “Build” | Edit the prompt or flow, voice, tools, knowledge and analysis. |
| “Test” | Try your latest changes by voice call or text chat, before publishing. See Test and publish. |
| “Share” | A public call page and website widget. See Share an agent. |
| “Automations” | What happens after each call. See Post-call automations. |
| “Calls” | This agent’s call history. See Calls and reports. |
The header also holds “History”, “Publish” and, once the agent is published, “Test”.
Prompt agents
- Left rail: the agent card (type, workspace, voice, language, and “Live” or “Not deployed yet”), runtime stats, “Phone routing” (with a link to route a number) and “Delete agent”.
- Centre: the prompt editor.
- Right rail: “Voice & Settings”, then the resources “Functions & Tools”, “Knowledge Base” and “Post-Call Analysis”.
Conversation flow agents
The right panel has two tabs. “Global settings” opens with “Agent settings”: voice and language, the model (the gear holds model options), the global prompt and temperature. Everything else is one list below it: “Conversation start”, “Knowledge base”, “Voice & settings”, “Advanced”, “Phone routing”, “Functions & tools” and “Post-call analysis”. Each row shows its current value and opens in place; “Functions & tools” and “Post-call analysis” open their own page, with a back arrow to the list. “Node settings” shows the step you click on the canvas.
- “Functions & tools” has two tabs. “Functions” lists every function and how many nodes use it. “Integrations” shows each connected calendar, CRM, texting or ticket service with its health and the functions it gives the agent. A service whose functions no node uses turns amber; “Add to a node” adds the step that uses them. “Add an integration” sets up another one.
- “Set up” or “Change” opens the integration's own page: the connection, the event type for a calendar, the functions, and whether to add its step to the canvas. When the connection needs reconnecting or the plan doesn't include integrations, the page says so and what calls do meanwhile.
- A step an integration added carries its mark on the canvas, such as Twilio. Its function is fixed; the prompt and outcomes are yours. “Open integration” goes to its setup page, and “Fix” appears on the card when the connection needs reconnecting.
- “Webhook” opens a popup that adds a function calling your API, on one screen: its name, what it does, the endpoint, “Authentication” (an API key, a token, or a username and password, sent as a request header to your API), “What to send”, and “Save from the response”, which stores a value from the reply as a {{variable}}.
Every step opens in the same shape: what it should do, its “Outcomes”, a couple of switches and an “Advanced” section, with “Duplicate” and “Delete” at the bottom. The arrows in the header walk through the steps in reading order.
- Outcomes are every way the call can leave the step, one per row: what happened, and the step it goes to. Each row has the same colour as its port and line on the canvas. Rule-based outcomes are checked first, top to bottom; then the agent picks the best match among the described ones. “Otherwise” catches everything else, or the call stays on the step.
- An outcome that “doesn't lead anywhere yet” is flagged on its row and on the card. Click “Pick a step”, or drag from its port on the card to another step.
- A step no call can leave shows “Doesn't lead anywhere”, with “Add next step” below it.
- “Wait for the caller to reply”: turn it off for lines that need no answer, like a disclaimer. The step then moves on as soon as the agent finishes speaking, through one link.
- Function steps run a function as soon as the call reaches them. “What to send” lists its fields and where each value comes from: the caller, a {{variable}}, or a fixed value. “New function” adds one that calls your API; the flow's functions are also listed under “Functions & tools” in Global settings.
- The “Begin” card shows who speaks first. Drag its line to another step to start calls there.
Write the prompt and first words#
In a prompt agent, the centre editor holds everything the agent knows and does:
- “System prompt”: the instructions for the whole call.
- The model selector, to change the LLM.
- “Temperature”: from “Precise” to “Creative”. Lower is more consistent.
- Advanced model settings: “High-priority capacity” (dedicated resources for lower, steadier latency) and “Strict tool calls” (enforce the tool schema on the model’s tool calls).
- “Agent's first words”: what the agent says when it picks up, for example
Hi, thanks for calling! How can I help you today?Leave it empty and the caller speaks first.
The editor saves automatically a moment after you stop typing. Watch the status:
| Status | Meaning |
|---|---|
| “Saving…” | Your change is being saved. |
| “Saved” | The draft is up to date. |
| “Save failed — retry” | The save didn’t go through. Click to try again before you leave the page. |
| “Changed elsewhere — reload” | The prompt was changed somewhere else, such as another tab or a teammate. Reload before you keep editing. |
Voice, language and call settings#
Open “Voice & language” in the right rail (“Global settings” for flow agents: voice and language at the top, the rest under “Voice & settings”) for the voice, language and delivery. Technical options (interruptions, timing, voicemail detection and more) are under “Advanced settings”, below Functions & Tools, Knowledge Base and Post-Call Analysis. Settings save on their own, like the prompt; publish to use them on real calls.
- Voice: search with “Search voices…”, filter by voice provider, play a preview and star favourites. The voices come from your Retell account.
- Language: choose from 33 locales, or “Multilingual” for callers who may speak different languages.
- Call behaviour: further sections cover tone and speed, turn-taking and interruptions, background noise, transcription, “Call timing” (including “Max call length”), voicemail detection, and “Data & privacy” (recording and how long call data is kept).
Functions#
Functions let the agent take actions during a call. Open “Functions & Tools” and click “Add function”.
| Function | What it does | What you set |
|---|---|---|
| “End call” | Hangs up politely when the conversation is done. | When the agent should end the call. |
| “Transfer call” | Hands the caller to a human. | “Transfer to”: a number in international format, such as +14155550142, or a SIP address. Choose “Cold transfer” (connect immediately, no introduction) or “Warm transfer” (the AI briefs the human first, then hands the caller off). |
| “Press digit” | Navigates a phone menu (IVR) by pressing keypad digits. | When to press which digits. |
| “Custom function” | Calls your own web endpoint mid-call, for example to look up an order. | “Function name”, a description of when to call it, the “Endpoint”, the HTTP method and the parameters the agent must collect first. Options control whether the agent speaks while it runs and reads the result back. |
Function names use letters, numbers, _ or -, up to 64 characters. Write each description as an instruction to the agent: what the function does and exactly when to use it.
Calendar and CRM tools#
The “Functions & Tools” panel also connects a client’s calendar and CRM, so the agent can check availability, book, reschedule or cancel appointments, and find or create contacts during the call.
- Calendar (Cal.com or Calendly): “Set up scheduling”, then “Wire calendar”.
- CRM (HubSpot or GoHighLevel): “Enable in-call CRM”.
These need a plan that includes integrations. Without it you see “Not on this workspace's plan” and “View plans”. Set up the connection first in CRMs and calendars, then follow In-call tools.
Post-call analysis#
Post-call analysis turns each transcript into structured data your clients can read at a glance. Open “Post-call analysis”.
- “Always captured”: every call gets a summary, the caller's sentiment and whether the goal was reached. These are always on.
- Click “Add field” to extract something specific, such as caller intent or whether an appointment was booked. Choose a type: “Text”, “Choice”, “Yes / No” or “Number”. Give it a “Field name” and a description that tells the model what to extract. Choice fields need at least one option.
- “Show in analytics” makes the field available on the client dashboard.
- “Use as success metric” marks the one Yes / No or Choice field that decides whether a call achieved its goal. Pick which value counts as success. Only one field can be the success metric.
- Click a field to edit it: its name, a type, choices as chips (type one and press Enter), and how the agent decides. “Decides “Goal reached”” picks the answer that counts as success, and “Show on the client dashboard” adds it to Business outcomes.
- Drag a field by its handle to change the order, or press Alt with the up or down arrow.
- “Where results go” lists the automations that run on this agent's calls, what each does and when, with a switch to pause it. A connected destination nothing sends to yet shows “Not set” and “Add”.
- “See a past call” shows what a real call captured for each field. Fields you add apply to calls after you publish.
Results appear on each call. See Calls and reports.
Dynamic variables#
Variables let one prompt adapt to each call. Write a name in double curly braces, such as {{customer_name}}, and each call fills in its own value. Campaigns can supply values for each call; see Contacts and campaigns.
- Open “Variables” in the prompt editor to see every variable your prompt uses and set a “Default value”. The default is used when a call doesn’t send one.
- Some are built in:
{{current_time}},{{current_calendar}}(today and the next 13 days),{{user_number}}(the caller’s number) and{{agent_number}}(the agent’s number). - Every agent is told today’s date, the time and the next two weeks on every call, so it can work out “tomorrow” or “next Tuesday”. You don’t need to add this to your prompt. The time follows the agent’s “Time zone” setting, which starts in your own time zone.
- Every agent is also told the number the caller is calling from (
{{user_number}}), so it knows what “use this number” means. A prompt that already uses{{user_number}}is left as it is. - Test calls from “Test” let you type a value for each variable for that one call.
A prompt that uses variables, laid out in the sections the tips below recommend:
## Role
You are Sam, the front-desk assistant for Bright Smile Dental.
You answer calls for the practice. You are not a dentist.
## Goal
Help callers book, move or cancel cleanings and check-ups,
and answer questions about hours, location and insurance.
## Caller
The caller's name is {{customer_name}}. Use it once when you greet them.
The caller is phoning from {{user_number}}.
## Tone
Warm, brief and plain-spoken. One question at a time.
Keep answers under two sentences unless the caller asks for detail.
## Guardrails
- Never give medical advice or diagnose. Offer to book a visit instead.
- Never quote prices you haven't been given below.
- If you don't know an answer, say so and offer a callback.
## When to transfer
Transfer to the front desk if the caller has a dental emergency,
is upset, or asks for a person.
## Facts
Hours: Monday to Friday, 8am to 5pm.
Address: 12 Main Street, Springfield.Import an existing Retell agent#
If you already built agents in Retell, bring them into Wozena instead of rebuilding them. Only agency users can import.
- Open the import dialogOn Agents, click “Import”. The “Import from Retell” dialog lists the agents in your Retell account. Ones already imported show “Imported”.
- Pick the agentSelect an agent. If it isn’t listed, open “Import by agent ID instead” and paste its Retell agent ID (it looks like
agent_0123…). - Check its webhookOnce you pick an agent, the dialog shows where its call events go today, for example an n8n, Make or Zapier workflow. If the agent has no webhook of its own but your Retell account has an account-level webhook, paste that address so it keeps receiving this agent’s calls. See Keep your existing webhook working.
- Choose the client“Assign to client” is required when you’re in the agency-wide view. The same rule applies as for new agents: the client can’t be changed later.
- ImportClick “Import agent”. Wozena shows each stage: “Locating the agent”, “Copying the response engine”, “Rewiring call events” and “Creating the workspace record”.
- Wozena takes over the agent’s call events, then sends a copy of each event on to the webhook the agent already had. Any integration you built in Retell keeps working.
- If the agent speaks several languages, it keeps them. Pick them under “Voice & Settings” › “Language” › “Speaks several languages”.
- If the agent uses Retell’s retired built-in Cal.com tools, the import tells you. Retell stops accepting them on 30 Sep 2026: connect Cal.com under Integrations and add calendar tools to the agent instead.
- Imported agents count toward your plan’s agent limit.
- Retell agents that use several prompt states can’t be imported. You’ll see “Multi-state Retell LLMs aren't supported in the builder — flatten it to a single prompt in Retell first.”
Keep your existing webhook working#
Wozena needs an imported agent’s call events for the call log, billing and automations, so it points the agent’s webhook at your agency. Your previous webhook keeps getting every event it was subscribed to, unchanged: the same body Retell sends, signed so that anything verifying Retell’s signature with your key still passes.
- The agent page shows “Event forwarding”: where events go, which ones, and the recent deliveries. Change the address there when you move the workflow, or click “Stop forwarding”.
- Only a 2xx answer counts as delivered. A workflow that’s switched off (n8n answers 404) or down is retried for about a day, then marked failed. Click “Send again” to resend it.
- The address must be public. Private or internal addresses and redirects aren’t followed, and production needs
https://. - If someone changes the agent’s webhook in Retell’s dashboard, its calls stop reaching Wozena. A daily check notices, notifies you and shows “Calls aren’t reaching this workspace” on the agent. Click “Reconnect”.
Remove an imported agent#
Removing an imported agent doesn’t delete it from your Retell account. Wozena hands its webhook and event subscription back to what they were before the import, and the agent keeps running in Retell. Tick “Also delete it in Retell” to delete it there as well. The prompt, flow and knowledge bases that came with it stay in your Retell account even if you delete Wozena’s copies.
Prompt-writing tips#
These are recommendations, not rules. They reflect what tends to work for small-business phone agents.
- Give it a role. Name the agent, the business and what it is and isn’t (a receptionist, not a doctor).
- State one goal. Say what a successful call looks like: an appointment booked, a message taken, a lead qualified.
- Set the tone for voice. Ask for short answers and one question at a time. Long paragraphs sound unnatural on the phone.
- Write guardrails. List what it must never do: give medical or legal advice, invent prices, promise refunds.
- Say when to transfer. Name the situations (an emergency, an upset caller, a request for a person) and add a “Transfer call” function to match.
- Keep facts separate. Put hours and addresses in the prompt. Put long material such as price lists, FAQs and policies in a knowledge base.
- Test and adjust. Publish, place test calls, read the transcripts, and tighten the prompt where the agent went wrong.
Duplicate an agent#
Built a great receptionist for one dental practice? Duplicate it for the next one instead of starting over. The copy is a separate agent: editing one never changes the other.
- Open the agentOn the agent’s page, click “Duplicate agent” under the agent details.
- Choose where the copy goesPick the “Workspace”: the agency workspace or any active client. Client users, and you while viewing as a client, always duplicate into the current workspace.
- Name it and duplicateThe name defaults to the original name with “(copy)”. Click “Duplicate”. You land on the new agent, which is a draft until you publish it.
| Copied | Not copied |
|---|---|
| The prompt or conversation flow, model settings and first words | Calendar and CRM tools: connect them in the new workspace, then wire them to the copy |
| Voice, language and call settings | Phone numbers, the public link and call history |
| Post-call analysis fields | Knowledge bases, when the copy goes to a different workspace |
| Knowledge bases, when the copy stays in the same workspace |
A duplicate counts toward your plan’s agent limit. Agents imported from Retell as a raw provider agent can’t be duplicated until they run on an engine managed here.
Delete an agent#
In the builder’s left rail (or the canvas for flow agents), click “Delete agent” and confirm. You can’t delete an agent while a phone number still routes to it; you’ll see “+1… still routes calls to this agent. Point that number at another agent before deleting this one.” Re-route the number on Phone Numbers first.
Troubleshooting#
| What you see | What to do |
|---|---|
| “Voice provider not connected” | Connect your Retell key in Provider Connections. See Connect Retell. |
| “No voices are available from your provider — add a voice there, then try again.” | Your Retell account has no voices. Add one in Retell, then create the agent again. |
| A message that your plan’s agent limit has been reached | Delete an agent you don’t need, or upgrade. See Your Wozena plan. |
| “This Retell agent is already imported” | It’s already in Wozena. Find it in Agents. |
| “No agent with that ID exists on this workspace's connected voice provider account…” | Check the agent ID, and that it belongs to the Retell account whose key you connected. |
| Calendar or CRM tools say they’re not on the plan | This workspace’s plan doesn’t include integrations. See Your Wozena plan. |
| The agent still says the old thing on calls | You saved but didn’t publish. Click Publish changes. |