Skip to main content

Writing better instructions for your AloAi Voice Agent

How to write a single-prompt AloAi Voice Agent that runs a full call reliably, and what Aloware already handles for you so you don't have to write it.

Written by Laarni D

A single-prompt voice agent is the simplest kind of AloAi voice bot. You write one set of instructions and the bot runs the whole call from them. No flowcharts, no code. It reads what you wrote and decides what to say on each turn.

This guide is for admins building a voice agent without writing code. It shows you how to write that one prompt well, and just as importantly, what you do not need to write because Aloware already handles it for you.

The main idea is this. A new Aloware-managed bot ships with voice best-practices, speech normalization, noise suppression, interruption handling, greeting and goodbye, and post-call analysis already turned on. Your effort should go into the parts that are genuinely yours: the bot's job, its persona, its tools, its variables, and how it handles pushback.


What Aloware already handles for you

Everything below is already configured on a new Aloware-managed bot. You don't need to write any of it into your prompt, and rewriting it usually makes the bot worse, not better.

Speaks for the ear. The bot is automatically told to:

  • Keep replies short (about one to three sentences) and ask one thing at a time

  • Talk in plain spoken language, with no text formatting, lists, or emojis

  • Spell phone numbers digit by digit, and spell out emails and web addresses

  • Say times naturally, like "three thirty PM"

So it says "forty-two dollars and fifty cents" instead of "$42.50," and reads a number as "four one five, eight nine two." These rules are built in. Do not rewrite them.

Reads things correctly (speech normalization is ON). Currency, dates, numbers, and common abbreviations are spoken the way a person would say them:

  • "Dr." → "Doctor"

  • "September 30, 2024" → "September thirtieth, two thousand twenty-four"

  • "$1,200" → "one thousand two hundred dollars"

Hears the caller clearly. Noise suppression is ON by default, so a caller from a busy street or noisy cafe still comes through. Callers can also cut in mid-sentence, and the bot stops talking and responds gracefully.

Opens and closes the call. Who speaks first is set by your greeting setting, not call direction:

  • Greeting blank - the bot opens with a natural greeting it generates itself

  • Greeting empty - the bot waits for the caller to speak first

  • Goodbye - a default sign-off is already set ("Thank you for calling! Have a wonderful day. Goodbye!") unless you write your own

  • Voicemail (outbound) - the bot hangs up if it reaches voicemail, unless you set up a message to leave

Comes with the core tools. Ending the call, transferring to a human, sending keypad (touch-tone) signals, and handing off to another agent are all built in. You only write the rules for when to use them.

Fills in live details automatically. Variables pull in things like the current time, the date, a 14-day calendar view, and whether the call is incoming or outgoing. Contact details from Aloware, like the caller's name, come through when available.

Wraps up after the call. The bot can produce a summary and caller sentiment, plus any custom analysis fields you set.

Uses sensible defaults. Voice, model, and language defaults are already applied (English, US).


Where your effort actually goes

With the basics handled, these are the parts that need your attention.

First, decide if it is a single-prompt job

A single prompt is the fastest type to build and the easiest to tweak. The trade-off: the more complicated the call gets, the more one prompt struggles.

  • Good fit - focused, well-defined jobs: answering FAQs, qualifying a lead, booking or confirming an appointment, sending a reminder.

  • Poor fit - calls that need heavy "if this, then that" branching (more than three or four paths) or many actions (five or more).

Aloware-managed bots are single-prompt plus tools, so there's no separate visual flow builder. Don't cram complex logic into one prompt. Push the branching onto tools and Aloware automations or sequences, and keep the prompt focused on one clear job.

Organize the prompt into clearly labeled sections

This is the single biggest improvement you can make. The bot follows sectioned instructions far better than one long paragraph, and they're much easier to update later. A reliable set of sections:

  • Identity / Role - who the bot is and who it works for

  • Goal - the one thing this call should accomplish

  • Conversation steps - the path you want it to follow

  • Guardrails - what it must not do or say

  • Tools - when to use each one

Our voice best-practices text is merged into your sections automatically, and clear, standard headers help that merge land cleanly, so keep your structure tidy.

Example - a tiny sectioned prompt
Identity: You are Riley, a scheduling assistant for Acme Dental.
Goal: Book the caller a teeth-cleaning appointment.
Steps: Greet - confirm who is calling - offer the next two open times - book it - read the time back.
Guardrails: Don't give medical advice or quote prices beyond the posted cleaning fee.
Tools: Use the booking tool only after the caller has picked a time.

Add your persona and pronunciation

The "write for the ear" rules are already built in, so skip those. What's worth adding:

  • Brand voice - warm and casual, or crisp and professional. The defaults make the bot sound human; they don't decide its personality.

  • Tricky words - for product names, brand names, or industry terms, set the pronunciation in the bot's pronunciation settings, not the prompt. For example: say "Acme" as "ACK-mee" and "NPS" as the letters "N-P-S."

  • Anything unusual to your use case, such as a script that must be read word for word for compliance.

Be crystal clear about when to use tools

Tools are things the bot can do: transfer the call, send keypad signals, end the call, hand off to another agent, or any integration you've connected. The bot already knows tool etiquette (collect info first, speak the outcome, recover if a tool fails). What it doesn't know is your business rules.

For each tool, write:

  • When to use it - the exact trigger

  • Its exact name, as it appears in your setup

  • Any required order - e.g. "look up the appointment before changing it"

  • When NOT to use it, so it doesn't fire at the wrong moment

❌ Vague: "Transfer the caller when needed."

✅ Clear: "When the caller asks for a person, use the Transfer tool. Don't transfer just because the caller sounds annoyed. Only transfer when they ask, or when you genuinely cannot help."

Personalize each call with variables

Variables are fill-in-the-blanks you place in your prompt using double curly braces, like {{FirstName}}. The real value drops in for each call, so one prompt greets every caller by name. Aloware fills in two kinds automatically:

  • Live call details - current time, current hour, a 14-day calendar view, whether the call is incoming or outgoing

  • Contact details from the Aloware record - first name, last name, full name, email, company name, city, state (when available)

Type variable names exactly as shown, including capital letters, because the bot only recognizes an exact match. The two styles differ only in how they're written:

  • Contact details start each word with a capital letter and have no spaces: {{FirstName}}, {{CompanyName}}, {{Email}}

  • Live call details are all lowercase with an underscore in place of a space: {{current_time}}, {{call_id}}

If the spelling or capitalization doesn't match, the variable shows up blank, so {{customer_name}} or {{first_name}} won't work, because those aren't real variable names. When you create a custom variable, write the line so it still reads naturally if the value is missing:

"Hi {{FirstName}}, I see your appointment is at {{appointment_time}}. Want me to confirm it?"


If {{FirstName}} is empty, it still reads fine: "Hi there, I see your appointment is coming up."

Set the greeting and handle objections

The greeting and who speaks first are controlled by the greeting setting, not call direction:

  • Blank - the bot generates a natural greeting

  • Empty - the bot waits for the caller

  • Typed - the bot opens with exactly that, like "Hi {{FirstName}}, thanks for calling Aloware!"

The goodbye is already set; override it only for custom wording. Objection handling is on you, and it's where a single prompt earns its keep. Script responses for the pushback you hear most:

  • Hesitant caller: "Totally understand. Is there one quick thing I can check for you right now?"

  • Frustrated caller: "I hear you. Let me help get this sorted."

Always test before you go live

The bot goes live the moment it's turned on, so always place a test call first. The fastest path to a great bot: listen to it fail on a few real-sounding calls, tighten the relevant section, repeat. A quick pre-launch check:

  • Place a test call and listen end to end

  • Confirm the greeting and goodbye sound right

  • Check that each tool fires at the right moment, and not the wrong one

  • Try your top one or two objections


Common mistakes, and the fix

A few patterns come up again and again.

Mistake

Fix

One giant blob of instructions

Break it into labeled sections

Rewriting "be brief"/ "spell out numbers" rules

Skip them, they're already built in

Bo uses a tool at the wrong time, or never

Write clear "use this when" rules

Trying to handle very complex calls in one prompt

Offload the branching to tools and Aloware sequences

Hard-coding a name or detail that changes per call

Use a variable like {{firstname}}

No objection handling

Script responses to your most common pushback

Shipping without testing

Make a real test call and iterate


Why this matters for your team

Write a tidy, sectioned prompt. Add your persona, tool rules, and objection handling, and don't rewrite the voice best-practices we already build in. Personalize with variables, and test with real calls before going live.

When a call needs lots of branching, don't fight it in one prompt. Push the logic into tools and Aloware sequences, and keep the prompt focused on one clear job. The result is a bot that's more reliable, easier to update, and faster to ship.

Did this answer your question?