Building Your First Phone Agent
Watch the following video to get started with setting up your first Phone Agent with Neo Agent in less than 5 minutes:
You choose the country of the agent’s phone number when you create the agent. Neo provides numbers in the United States, Canada, the United Kingdom, the Netherlands, Australia and New Zealand. Callers in the country you choose dial a local number.
Trying the Agent in Your Browser
You can talk to a phone agent in your browser before you buy a number, and again after each change to its settings. A test call never writes to your PSA. After the call, you see the transcript and the ticket the agent would have created.- Before you set up an agent: under Phone Agents, click Try it now to talk to an agent with the default settings. The dialog suggests a few things to say.
- Your own agent: open the agent (or a new one, before you create it) and find Test Call in its settings. The call uses this agent’s greeting, instructions, voice and language as they are on the page, so you can test a change before you save it. When the agent has after-hours instructions, turn on Test as after hours to hear them at any time of day. The transcript and the ticket draft show under the button after the call.
Anyone can also try Neo’s own demo agent, without an account, on the
Phone Agent page of our website.
The Call Journey
- Call routing & pickup from your VoIP rules to the Neo number
- Caller identification using the incoming phone number (Caller ID), on ConnectWise, Autotask and Halo: the agent looks for the one active PSA contact with that number. A number that several contacts share, such as a company’s main line, identifies nobody, and neither does a Halo site’s phone number; the agent then asks for the caller’s name and company
- AI interaction with professional greeting and clarification
- Understanding the request through active listening and questions
- Optional transfer to a person, blind or warm, when configured
- Gathering caller information for new tickets (company name, full name). If not provided, proceed with available details and explain why information is helpful
- Company matching against your PSA: the spoken company name is matched to your synced company list — including names spelled letter by letter or with a spelling alphabet (“V as in Victor”). Confident matches attach the ticket to that company. For an uncertain match the agent asks the caller once to repeat or spell the company name, and never reads out the names of other companies in your PSA; if the second attempt still does not match, the ticket uses the Default Company when one is set (see the warning below)
- Ticket creation in your PSA with thorough issue details and a provided ticket ID. If the company cannot be determined, tickets use the Default Company from PSA settings
For accurate company/contact attribution after ticket creation, pair with a Ticket Triage workflow to analyze transcripts and update fields as needed.
PSA Ticket Settings
Each Phone Agent creates tickets in your PSA using its PSA settings — the destination board/queue, initial status, default company, ticket source, and an optional Priority (leave unset to let the PSA assign its default). Edit these on the agent’s settings page: open Phone Agents and click the agent. The Default Company field lists the first 100 companies by name; type part of a name to search the rest of the list. Checked when you save. Saving an agent checks the Board/Queue (Ticket Type on Halo), Status, Priority and Source against the values Neo has synced from your PSA. When Neo has synced that field’s values, a value your PSA does not have, or a ConnectWise status that is not on the chosen board, stops the save with a message that names the field to change. A Board/Queue must be chosen, and on Autotask a Source too. On Autotask, which needs a status on every ticket, an agent saved with no status gets Autotask’s default status (usually New). Status. When ConnectWise or Autotask refuses the status (for example, it was deleted, moved to another board, or no status is chosen), Neo still creates the ticket: ConnectWise uses the board’s default status, and Autotask the status it marks as its default (usually New; an Autotask with no default status still refuses the ticket). Your Neo Inbox then gets a warning that names the phone number and the refused status. Choose a valid status to clear it.Halo — Urgency and Impact. Some Halo instances make Urgency and Impact mandatory when a ticket is created. If yours does, set a default Urgency and Impact in the Phone Agent’s PSA settings so calls can create tickets — leave either as “Use PSA default” to let Halo decide. These two fields appear only for Halo tenants (ConnectWise and Autotask don’t use them on create). Without them on a Halo instance that requires them, ticket creation — including the post-call transcript fallback — fails with
Impact is mandatory / Urgency is mandatory.Choosing the Voice
Each Phone Agent speaks with a voice you choose on the agent’s settings page, under Voice Configuration. Four settings decide how it sounds:
Neo picks the voice for you from the language, gender and accent you choose, so most agents need
no further setup. To use a specific voice instead, enter its Custom Voice ID from your chosen
engine’s voice library.
A custom voice belongs to one engine. A voice ID from ElevenLabs means nothing to Cartesia and
the other way round, so changing the Voice Engine clears the Custom Voice ID. Set the engine
first, then paste the ID.
Hearing the voice before you save
Click Play sample under the voice settings to hear the agent say a short greeting in the voice you have set. It plays the settings on screen, so you can try an engine, accent or speed and listen before you save. The sample uses the same engine, voice and speed as a call. On a call the voice sounds a little less clear, because a phone line carries less sound. If the engine does not accept a Custom Voice ID, the page says so under the button and marks the field, and nothing plays. A call with that ID would have no audio, so fix or clear the ID before you save.Transferring a Call to a Person
On the agent’s settings page, under Available Agent Capabilities, Transfer to a person sets how the agent puts a caller through to someone on your team:
An agent that already transferred calls has Blind transfer, and keeps it until you choose another setting.
You can also ask the Neo Support Agent to change this setting, or call
PATCH /public-api/phone/numbers/{number} with transfer_mode from your own automation.
Blind transfer
The agent says a short line, such as “One moment while I transfer you”, and hands the call to the number. The agent then leaves the call, so it cannot hear who answers. If nobody answers or voicemail picks up, the caller stays there: the agent cannot bring them back. The technician’s phone rings as an ordinary incoming call, with no introduction. A caller who hangs up while that number is still ringing never reaches anyone. Where Neo files a ticket after the call, under what the ticket records, it says they hung up before they were put through.Warm transfer
What the caller hears. The agent says that it is transferring them, then the caller hears hold music. The caller hears nothing of the call to the technician. What the technician hears and sees. The phone shows one of your own Neo phone numbers: a Neo number with the technician’s country calling code when you have one (US and Canadian numbers count as one, because they share +1), otherwise the number the caller dialled. A missed call returned to that number reaches your own agent. The phone rings for up to 30 seconds. When the technician answers, a second AI agent speaks in the agent’s language. It introduces itself as the AI assistant for your company, never by the agent’s name, says who is on hold and from which company, and sums up the request in two or three sentences: the problem and its details, what the caller already tried, how urgent it is, and the ticket number when the agent created one. It says how Neo identified the caller’s name and company, by the caller ID or by the name the caller gave, and says so when it could not identify them. Neither one proves who is speaking, so it never calls the caller verified. The technician can ask questions, and then answers “Can I put them through?”:- Yes. The caller and the technician are connected. The agent goes silent for the rest of the call, and the connected call ends after one hour.
- No. The technician can say why, or ask for something, such as “I’m on another call, take a message”. The caller does not hear it. The agent acts on a request like that one. What the technician says is never written on the ticket, where your customer might read it; the ticket says only that the transfer was declined.
- another number, when your Custom Instructions name one for this case;
- to take a message. With Create Ticket on, the agent puts the message in a new ticket, or in the ticket it already created on this call. Without it, the message stays in the call transcript, and Neo can create a ticket from the call after it ends.
Warm and blind transfer
With this setting the agent has both kinds of transfer, and your Custom Instructions say which kind each case gets. A common rule puts an emergency caller through to the on-call technician, and sends the caller to the on-call voicemail when nobody takes the call:If the caller says it is an emergency, tell them to hold while you put them through, then do a warm transfer to the on-call technician at +1 555 123 4567. If the on-call technician does not take the call, tell the caller the on-call technician is not available right now and that our goal is to call them back within 60 minutes, then do a blind transfer to the on-call voicemail at +1 555 123 9999.The agent reads “warm transfer” and “blind transfer” in your words. “Forward the call to” and “send the caller to the voicemail at” also read as a blind transfer. Where your instructions name no kind of transfer, the agent makes a warm transfer. The voicemail must be a number that takes the call by itself, such as a voicemail box. A warm transfer to a voicemail box does not work: the second agent hears the greeting and brings the caller back. A ticket Neo creates after the call lists every transfer of the call in order, for example the warm transfer nobody answered and then the blind transfer to the voicemail. A ticket the agent created or discussed during the call gets the same list only with Save transcription on, at the top of the transcript note. A call that ends with a blind transfer and created no ticket of its own gets no ticket after the call.
The number and the rules for a transfer
For every transfer setting, say in the Custom Instructions when to transfer and which number to use — for example “If the caller asks for a person, transfer them to +1 555 123 4567”. Write the number in full international format: a+, the country code, then the number. Local formats work too — spaces, dashes, brackets and dots are removed, and a number with no + gets the country code of the agent’s own phone number, so (555) 123-4567 on a US agent dials +15551234567.
Two habits cause a transfer to reach nobody:
- Writing the country code without a
+.1 555 123 4567is read as a national number, so the country code is added on top of it and the call goes nowhere. Write+1 555 123 4567. - Adding an extension.
+1 555 123 4567 ext 12puts the extension digits into the number itself. Give the main number only.
What the ticket records
The ticket says which number the agent transferred the caller to, when, and what happened: see what lands on the ticket. When the caller reached the number, Neo creates no extra ticket after the call, because the person there now has the request. After a transfer that did not connect — a warm transfer the far end did not take, or either kind the caller hung up on before they were put through — Neo treats the call like any other: when the agent created no ticket during it, Neo assesses the call afterwards and creates one, unless the call was spam or the caller asked for no ticket. This holds with Create Ticket off too. Neo files that ticket under the first company it can place the caller in: the company of the PSA contact whose phone number matches the caller’s, then the company the caller named during the call when it matches a PSA company with confidence, then the Default Company. Neo never guesses from an uncertain match. When none of the three applies, the caller gets no ticket, and Neo sends you the action item described under PSA Ticket Settings. After a warm transfer, the transcript continues past the transfer. A line marks when the caller was put through, and each thing said after it is labelled Caller or Technician, in the order it was said:Different Instructions After Hours
A number can answer differently when your office is closed. Turn on After-Hours Instructions when you edit the agent, and write what the agent does then. For example: “Our office is closed. Create a ticket and tell the caller a technician will call back on the next business day.” A call that starts outside business hours, on a day you do not work, or on a holiday follows the after-hours instructions in place of the Custom Instructions, for the whole call. A call that starts at 16:58 keeps the normal instructions after 17:00. Write each set so it stands on its own: the agent reads one or the other, never both. Rules that apply at every hour can go in a reference memory, which reaches every call. Business hours decide when the after-hours instructions apply:- Workspace working hours are the business hours and time zone in Settings, Monday to Friday.
- Custom working hours set the days and the opening and closing times for this number alone, in the workspace time zone. The hours cannot run past midnight.
PATCH /public-api/phone/numbers/{number} from your own automation.
Letting Your Help Desk Answer While Neo Takes Notes
A number can hand every call to your own help desk instead of the AI agent. Neo does not speak on the call. It rings your help desk, records the conversation, and after the call writes the transcript and a summary to the ticket it finds or creates, while the agent’s ticket notes are on.1
Forward your support line to the Neo number
In your phone system, forward the line your customers call to the agent’s Neo number.
2
Find a second number that rings your help desk
Neo rings this number for every call. It must be a different number on your own phone system that reaches your help desk queue or ring group. Never use the support line you forward to Neo: Neo would ring itself and the call would loop. A Neo number is refused for the same reason.
3
Choose the help desk for the agent
When you add an agent under Phone Agents, choose Help desk answers, Neo takes notes under Call Handling and enter the help desk number with its country code. For an agent you already have, open it, make the same choice, and click Save changes. The change applies from the next call. If the phone carrier does not accept the change, nothing is saved, and the agent keeps taking calls as before. The Call Handling column of the Phone Agents list shows which way each agent takes its calls.
- The caller hears ringing until your help desk picks up. Neo plays nothing, so the call counts as answered only when your phone system answers it.
- Your help desk sees the caller’s own number, so your phone system’s screen pop and caller lookup keep working.
- No answer, busy or a failed call is not taken over by Neo. Your own phone system’s voicemail or overflow rules apply as usual, and Neo writes nothing to the PSA for that call.
- Write the transcript and summary to the ticket: the note Neo adds after the call.
- Note visible to the customer: off by default, so the note is internal.
- Attach the recording to the ticket.
- Call language: the language callers speak, so Neo transcribes the call correctly.
- The ticket fields for a ticket Neo creates: board or queue, status, source and priority.
PUT /public-api/phone/numbers/{number}/call-mode from your own automation. PATCH /public-api/phone/numbers/{number} with passive_note_visible_to_customer changes who sees the note. GET /public-api/phone/passive-calls lists the calls Neo forwarded to your help desk, answered or not, with what Neo did with each, the ticket, the ticket numbers said in the call, the summary, the transcript and the sentiment. POST /public-api/phone/passive-calls/{id}/ticket with a ticket_number adds the notes of a call with no ticket to that ticket, as Add notes to ticket does.
Giving the Agent a Reference List
Some call rules depend on a list, for example “customers on our direct support plan go to a separate line”. Keep the list in a memory and attach it to the agent’s number. Keep the rule in the Custom Instructions. The agent then has the list on every call to that number.1
Write the list as an MSP-wide memory
On the Memory page, add a memory and choose All companies as its scope. For example:
2
Attach the memory to the number
Open the agent under Phone Agents, search for the memory under Reference Memories, add it, and save.
3
Write the rule in the Custom Instructions
For example: “If the caller is from a company on the direct support list, transfer them to +1 555 123 4567.” The instruction says what to do, and the memory says who it applies to.The agent hears company names through speech-to-text, so a listed name can arrive split into two words or without a leading “The”. Say how strictly to match, with an example of a name that does not count:“Company names can come through speech-to-text slightly differently, for example split into two words or without a leading ‘The’. Treat those as the same company, but a company with a different word in its name is a different company: ‘Northwind Dental’ is not ‘Northwind Traders’. Transfer a direct support customer at once, before you ask for their name or the issue.”
Common Use Cases
These are the most common scenarios where we see MSPs deploying our Phone Agent.Answering calls after hours
Answering calls after hours
Instead of routing users to an automated voicemail, Phone Agent can answer calls after hours, ensuring your clients always have access to support. Give the number after-hours instructions so it tells callers the office is closed and takes a ticket, or sends emergencies to an on-call line.
Answering calls during overflow
Answering calls during overflow
When your technicians are busy, Phone Agent can answer calls during overflow, ensuring your clients always have access to support.
Switching an Agent Off or Deleting It
Open the agent under Phone Agents to change its state.- Disable stops the agent answering. Callers reach nothing, no ticket is created, and no minutes are used. You keep the number, and Enable switches it back on.
- Delete agent removes the agent from your list at once, and Neo gives the number back to the carrier within a few minutes. Use it when you no longer want the number at all, for example after spam callers find it.
- Switch an active agent off first. You then run without the number before you give it up. A suspended agent (its add-on has stopped) needs no step: you can delete it as it is.
- Only an admin can delete. Other users see the button, but it is disabled and tells them why.
What the Phone Agent Costs
Two parts, and both appear on the invoice you already get.
Because minutes come out of your plan allowance, a busy phone month shows up the way any busy month does: your credits run down sooner. You can watch it under Billing, and see the split by workflow, agent and phone usage on the Performance & Cost page.
If you have agreed a different price with us — a plan that already includes the Phone Agent, for example — that is what you are charged, and your monthly fee may be zero.
What Happens to Your Numbers if the Add-On Stops
Your phone numbers belong to your Phone Agent subscription. If that subscription ends — you cancel it, or a card fails and Stripe stops retrying — Neo pauses the numbers instead of giving them back straight away.1
The numbers are suspended
Calls stop reaching the agent, and the numbers no longer appear as active in your dashboard. Nothing is lost: Neo keeps renting each number from the carrier, and you keep the same rows in your Phone Agent settings.
2
You have 14 days to come back
Restart the add-on inside that window and every suspended number switches back on by itself, with the same digits and the same settings. You do not need to ask anyone, and there is nothing to reconfigure.
3
After 14 days the numbers are released
The carrier takes each number back into its public pool, and the numbers leave your Phone Agent list. This step cannot be undone. If you restart the add-on later, you get new numbers, and you must tell your clients the old ones no longer work.
