Skip to content

Voice Agent Realtime

Voice Agent Realtime turns a NappAI flow into an agent that takes calls by phone or from the browser, like the Voice Agent, but with a single realtime model. That model hears the caller, decides when they have finished speaking, thinks and answers in its own voice. You don’t connect hearing (STT), a model and a voice (TTS) separately: you just choose the model.

When it needs to do something, such as looking up an order, transferring the call or hanging up, it uses the tools you connect to it, just like the Voice Agent. It is published, tested in the playground, given phone numbers and shown in the call history in exactly the same way.

It is a trigger: the flow runs once per call. You’ll find it in the palette under Voice Agent → Agent.

When to use it

  • You want the most natural conversation possible: a single model hears the caller’s tone and answers in its own voice.
  • You want it to answer even sooner: the voice-to-voice model does not turn speech into text and text back into speech.
  • You want something quick to set up: a model and your tools, with no hearing, voice or turn-taking to tune.
  • You already work with OpenAI, Google or xAI and want to use the same account for voice.

Choose the classic Voice Agent if you want to pick hearing, model and voice separately, use local engines with no credential, or pay the least per minute: it is highly optimized, answers very quickly and gives you a professional result for very little per conversation. Voice Agent Realtime costs more per minute of call, and the provider decides the turn-taking and the voice. The full comparison is in How a voice agent works.

Voice Agent Realtime takes no skills, because not every realtime model lets its instructions change mid-call. If the agent has to follow skills, use the classic Voice Agent.

Configuration

Connectors

ConnectorWhat you connect
ToolsWhat the agent can do during the call: the call tools Hang Up Call, Transfer Call and Say to Caller, and any NappAI component in tool mode. They are the same as for the Voice Agent.
Realtime model (required)The model that hears, thinks and speaks: OpenAI Realtime, Gemini Live or Grok Voice. Its credential, voice and language are set in that component.

Common tab

The fields mean the same as on the Voice Agent.

FieldWhat it does
Agent Name (required)The agent’s name in the Voice Agent menu, in the widget and in the history. It identifies its calls.
GreetingThe first sentence the agent says when the call connects.
System PromptWho the agent is, what it knows and how it must behave. The platform adds the rules of a call on top, so only what is specific to your business goes here.
EnabledTurns the agent off without unpublishing it. On by default.
InterruptionsWhat makes the agent stop talking when the caller says something. Only clear speech (default): only a clear voice interrupts it; a cough, a click or a noise doesn’t cut it off. Any sound: any sound stops it; it is the quickest, but noise cuts it off too.
AccentThe accent the agent speaks with. Default: Spain (Castilian); Mexico, Argentina, Colombia, Neutral Latin American, United States and United Kingdom are also suggested, and you can type any other. Empty, the voice decides, which in Spanish often sounds neutral or Latin American.

Call Ambience

FieldWhat it does
Background AmbienceA soft background sound throughout the call, such as office. Empty, no ambience.
Ambience VolumeAmbience volume, from 0 (silent) to 1 (as loud as the voice).
Typing While WorkingA keyboard sound plays while a tool is working.
Typing VolumeVolume of that keyboard, from 0 to 1.

Timeouts

FieldWhat it does
Maximum Call Duration (S)The longest a call can last, in seconds. When it is reached, the agent says goodbye and hangs up.
Inactivity Before Hanging Up (S)Seconds of silence before acting on inactivity. It never triggers while a tool is working.
Tool Timeout (S)How long the agent waits for a tool before apologising.
Ask Before Hanging UpOn, after the silence the agent asks whether the caller is still there and only hangs up after a second silence. Off, it says goodbye and hangs up at the first silence.
Still There? PhraseWhat the agent says to check whether the caller is still on the line. Empty, it asks in its own words.
Farewell After InactivityWhat the caller hears before the agent hangs up on inactivity. Empty, the agent says goodbye in its own words.
Farewell At Maximum DurationWhat the caller hears when the maximum duration is reached. Empty, the agent explains and says goodbye.

Call recording

FieldWhat it does
Record CallsSaves the audio of each call next to its transcript in the history. Telling the caller they are being recorded is up to you, usually in the Greeting. Off by default.

Advanced options

FieldWhat it does
Tell The Model About The CallBefore the caller speaks, the model receives the date and time, the calling number, the number dialled and whether the call comes by phone or from the web. What it does with that data is up to your System Prompt.
Time ZoneThe time zone the date and time are given in, for example Europe/Madrid.

Guardrails

FieldWhat it does
GuardrailsChecks every action the agent is about to take with its tools against your rules. An action that breaks one is not taken and the agent explains it to the caller. Off by default.
Guardrail RulesThe rules, in plain words, one per line, ideally with the reason.
If The Check FailsWhat happens when the check cannot run: Let the request through (default) or Refuse the request.

With Guardrails on, the Guardrail Model connector appears, required here: the realtime model cannot do the check. Connect a small, fast one. More in Guardrails.

Conversation memory

Decides how much of the call the model reads again before each answer. The model charges for everything it reads, audio included, so on long calls this is what sets the cost. The full transcript is always kept in the history.

FieldWhat it does
Conversation MemoryKeep recent messages (default): the model only reads the most recent part of the call, within the budget below. Full conversation: it reads everything, and each answer costs more the longer the call lasts.
Approximate Token BudgetHow much of the conversation the model keeps, in tokens. One minute of call is about 3,000. Anything above it is forgotten, oldest first. Default 16000, about five minutes.

Phone numbers, SIP trunks and the widget avatar are chosen when you publish the agent in the Voice Agent menu, just as with the Voice Agent.

Output

The node has the same outputs as the Voice Agent. The voice platform itself uses them to run the tools during the call: you don’t need to connect them to anything.

During the call:

  • Before using a tool, the agent says a short waiting phrase, such as “one moment, let me check”.
  • Before hanging up, it says goodbye.
  • It can transfer to a phone, directly or after briefing the person who answers, which the same model also does. And it can pass the call to any other NappAI voice agent, realtime or classic, and take calls from them.
  • Outbound Call can place outbound calls with this agent.

What happens on each call (the transcript, the tools used, the recording if enabled and why the call ended) is kept in the call history.

Example

A clinic wants an agent that gives opening hours and passes appointment requests to reception.

  1. Add a Voice Agent Realtime to the canvas.
  2. Add Gemini Live, choose its credential and connect it to Realtime model.
  3. Write “Clinic” in Agent Name and “Hello, you’ve reached the clinic. How can I help you?” in Greeting.
  4. In System Prompt, explain the opening hours and when to pass the call to reception.
  5. Connect a Transfer Call to reception and a Hang Up Call to Tools.
  6. Test in the playground, deploy the flow and publish it in the Voice Agent menu.

Good practices

  • Write the prompt for the ear: short sentences, one idea at a time, no lists or tables.
  • Say in the prompt when to use each tool, for example “if they want an appointment, transfer to reception”.
  • Try several models and voices in the playground: how long it takes to answer changes from one model to another and from one day to the next.
  • Keep Interruptions on Only clear speech for phone calls, where there is more background noise.
  • Some models say the Greeting and fixed farewells word for word and others may change a word or two. Each model’s page says which.
  • The model does not tell the caller’s voice apart from other voices nearby: the Voice Agent’s Ignore Other Voices option does not exist here.
  • If you turn on Record Calls, tell the caller they are being recorded.