Skip to main content
Nudge places real phone calls through AI voice agents. The agent has an actual conversation in the lead’s language, asks your qualification questions, and the outcome routes the next step.

Agents and numbers

An agent is a configured voice, script and language, and its phone setup has two sides, shown as two columns in the agents list: the inbound numbers — the numbers a caller dials to reach this agent, picked from your account’s numbers right in the list; a number answers for one agent, so choosing it here moves it off whichever agent had it — and its outbound numbers, the pool it calls out from. The outbound pool is ordered: for each contact, a number in the contact’s own country is dialled first; otherwise the pool’s order decides, and a number is never used for a country it isn’t allowed to call — so a contact with no local line goes out on whichever of your lines may call their country. Each agent also has its own calling hours. Each contact owner gets a default calling agent, so “call this lead” always knows which voice and which number to use.

Editing an agent

Click an agent’s name to open its page. Everything the agent is lives there:
  • Prompt and opening line — what the agent says and how it behaves. The prompt is a proper text editor: headings, bold and bullet or numbered lists, from the small toolbar or the usual shortcuts. Each line is its own row: Enter starts a new line, and a heading or list applies to the line you are on. The agent receives exactly that structure, and it reads headings and lists as structure, so a long script is easier for both of you. Anything in {{double braces}} is a placeholder that gets filled per call; type @ to pick one, and it shows as a blue chip so you can see at a glance what the agent will know.
  • When we’ve spoken before — the first sentence for someone the agent has already talked to. The opening line is fixed text, so without this a person who said yes on Tuesday hears “you clicked our ad” again on Friday. Write it once with placeholders in square brackets: [first_name], [when] (becomes “earlier today”, “yesterday”, “on Tuesday”, “last week”, “a couple of weeks ago”, “about a month ago”, “a couple of months ago” and so on, matching the real gap) and any value the agent collects, such as [room_type] or [address]. Wrap a clause in double square brackets, [[ about your [room_type] in [address]]], and it drops out cleanly when a value is missing. Then put {{opener}} in the opening line where the sentence belongs, and give opener a before-call default for first calls. This field saves when you leave it, unlike the rest of the page, because it lives in Nudge and not on the agent.
  • When we’ve tried but not spoken — the first sentence for someone the agent has rung before but never actually talked to: voicemail, no answer, a hang-up on hello. Same placeholders; [when] counts from the last attempt, so it reads “I tried you yesterday” rather than “we spoke yesterday”. Nudge keeps the two apart on purpose: a six-second hang-up is not a conversation, and a person told “we spoke yesterday” when they did not will say so. Leave it empty and those calls use the normal opening line. Saves when you leave it, like the one above.
  • Voice — swap it any time. Each voice in the list has a play button beside it, so you can hear one before you pick it.
  • Language — the language the agent listens and speaks in. It also sets how speech is recognised, so a line in Ireland belongs on British English, not American, or place names come out wrong. Most voices speak several languages. Run a test call after changing it.
  • Engine — which AI model powers the agent. Every option shows what it costs per minute of conversation, so you can weigh quality against price, and different agents can run different models. Changing it leaves your prompt exactly as written: the same instructions, read by a different model. Publish and then run a test call and listen, because models differ in how closely they follow a long script.
  • Knowledge — which knowledge bases the agent may look things up in during a call: files, web pages and typed text, managed under Channels → Knowledge. Published with the rest of the page. What is in a base changes for every agent using it at once; see Knowledge bases.
  • Boosted keywords — the words the agent should expect to hear, folded away under Language. Most come from the agent’s knowledge bases, so the Dublin agents share one list (see Knowledge bases); the agent can add words of its own here. When the published agent carries an older list the row says so and offers to update it.
  • Voicemail — what the agent does when it reaches an answering machine instead of a person.
  • Books meetings — the meeting type the agent may book on a call, or Off. It checks the host’s free times and books the one the contact agrees to; your instructions say when to offer it. It can also move or cancel the contact’s own next meeting when they ask. Shown when meetings are on for your workspace; see Meetings.
  • Variables — the answers this agent collects. Open a variable’s type and you can also set what the agent assumes for it before the call, for a caller Nudge doesn’t know yet; leave it blank and the agent simply asks. Every assumption you’ve set is listed once under the table.
Voice and call handling also holds the agent’s phone numbers, the lines it calls from in order; automated calls and Ring my phone use the first, and a change there saves at once rather than waiting for Publish. Under it the page says, in a line, what else the agent can do on a call: whether it may end the call itself, which other agents it hands callers to, and which number it transfers them to. That line is read from the agent’s setup and is not edited here; if you need a hand-off or transfer added or changed, ask us. One Publish button covers all of it, and it takes effect on the agent’s very next call. Nothing saves as you type: a half-finished edit would otherwise go live mid-sentence. While you have unsaved work the page says so and offers Discard changes. Leaving the page is safe. Your unfinished edits stay in this browser, so you can go and look something up and come back to them. Once you test them in the browser they are saved as a draft on the agent itself, so any admin who opens the agent sees the draft and can publish or discard it. Real calls keep using the live version until someone publishes. Discard changes is the one deliberate way to throw work away, and it removes the draft too. Use the search box at the top to find your way around a long prompt. It highlights matches in the text and filters the variable list, and tells you how many variables it’s hiding so a filtered list never looks like a short one.

When nobody picks up

Voicemail is one choice with four answers. Anything but Off makes the agent listen for an answering machine during the first three minutes of a call:
  • Off — no detection; the agent treats whatever picks up as a person.
  • Hang up — the agent ends the call without speaking. Nothing to write.
  • Leave a message, exact words — the agent speaks your message as you wrote it, then hangs up.
  • Leave a message, instructions — you describe the message and the agent words it itself, then hangs up.
Either kind of message can use {{placeholders}}, so a voicemail can greet someone by name. Exact words is the safer default: a voicemail is one shot, with nobody on the other end to correct a phrasing you didn’t intend. You can’t publish an empty message — an agent that answers the machine and says nothing leaves a recording of silence, which is worse than hanging up. Pick Hang up instead if that’s what you want.

What the agent collects

Each variable has a name, a description telling the agent what to capture, and a type: text, number, yes/no, or a list of choices. A list needs at least one choice before you can publish. When a variable is captured is decided by which section you add it to, and each section has its own + Add variable:
  • During the call — captured the moment the caller says it, so it survives even if the call drops. For anything expensive to mishear, like a callback time or a budget, open the type dropdown and turn on Caller confirms first.
  • After the call — read out of the call analysis once the call ends. This is right for most answers.
  • Before the call — not captured at all. These are the fallback values the agent starts with when a call carries nothing better, so the script still reads naturally. If your opening line says “Hello ” and a contact has no first name on file, a default of there keeps the agent from opening with an awkward pause.
To move an existing variable between During and After, remove it and add it again in the section you want. Per-contact values always beat the defaults. Nudge sends the contact’s real name and number with every call, so the default only fills a genuine gap. In a standalone workspace, an answer can be saved on the contact. Each variable row has a Contact field mark. An outline circle means the answer is kept on the call only, under its own retell_ name, still usable in automation conditions. Click it and Nudge creates a contact field with the same name and type and saves the answer there from the next call on; a green check shows it. Click the check to stop; the field and its data stay, the agent just no longer writes it. If a field of that name already exists but is people-only, the circle’s hover text says so, and clicking it lets the agent write it instead of creating a second field. Going the other way, Seed from contact fields adds a variable row for every field an agent may already write. The choice is per agent: one agent can save Company on the contact while another keeps it on the call. A contact’s core fields (name, email) are always saved and can’t be switched off; the phone number is never written by an agent, because it’s how the call was matched. Two things worth knowing:
  • Fields left as Staff are off-limits to the agent even if it heard an answer. A voicemail still returns a full set of guesses, and those must not overwrite what a person typed.
  • An answer with no matching field still lands, namespaced, so you can use it in automation conditions.
In HubSpot mode it works the other way round: you declare the variables on the agent, and Nudge mirrors them into a read-only list under Workspace setup so you can label them and use them in conditions.

Placing calls

Calls happen two ways:
  • Automated: an automation’s call action, for example “new lead in state Contacted: call within business hours”. Call timing clamps to the agent’s calling hours.
  • Manual: the Place call button on a contact page or inbox thread. The dialog pre-selects the owner’s default agent and number, and prints the last call that connected (when, how long, what came of it) before you dial, so a person who said yes three days ago is not cold-called by accident. Choose Now or Later: later asks for a date and time, and the call waits in the queue until then. A queued call shows what time it will go out, and you can cancel it up to the moment it dials. If the person has asked not to be called again, the dialog says so in red and asks you to tick Call anyway. A person can always place a call; automated calls to that person are not placed, and the timeline says why.
The agent page has three tabs: Setup, which is everything above, Testing and Notes. Testing talks to the agent through your computer. No phone rings. Pick a contact to call as, so the agent hears exactly what that person’s call would carry, and change any value before you start. The first sentence is shown on its own line. With no contact picked, the values come from the agent’s own before-call defaults. Values the agent doesn’t have fold behind a line at the bottom of the card: open it to type one in for this test. Values the agent’s script never mentions are still sent along, for memory and for hand-offs, behind a second line beside it. It runs your draft, unsaved edits included: change a line, listen, change it again, and publish only when it sounds right. You also choose which microphone and speaker the call uses. The browser otherwise takes the system default, and on a Mac with an iPhone nearby that is often the phone. The pick is remembered in this browser, and the device names appear after your first test, once the browser has been allowed a microphone. You also choose the direction: the agent calls them, or they call the agent. The second runs the call the way a real call from that person would arrive, and tells you which agent would actually pick up. The test itself opens with this agent’s inbound greeting, and the first sentence on the card is shown whole, exactly as the agent will say it. The test appears at the top of Test results as soon as it starts, open. When you hang up it fills in: on the left, What it changed: what a real call with these answers would have done: which details it would have filled in or changed on the contact, and which rules would have fired, with a word on any rule that would stay quiet because it already ran for this person. A test writes nothing and sends nothing on its own; the card is a preview, and it says so. It does cost, though: a test is a real call, billed per second like any other and marked Test on your billing statement. When the preview is what you want on the record, an admin can click Apply to contact in the bottom corner of What it changed: the call’s answers are written to the contact and the rules run, exactly as after a real call, so you can check a follow-up message or a booked callback end to end without ringing anyone. The confirm lists what will be written and which rules will fire first, because a message a rule sends is real. Each test can be applied once, and the list marks it. On the right sit the recording, the summary and the transcript. Under the changes is a Notes box for your own verdict on the test, Pass or Miss and a line on what should have happened; it saves as you type and stays with the test. Older tests stay in the same list, newest first, folded to one line; open one for the same parts in the same order. Anyone on the team can edit an agent, test it and publish it, and every publish is a version you can go back to; applying a test to a contact is for admins. Notes turns your reviews of this agent into a to-do list. Every call with a note on it (written on the contact’s call card) and every test with a note or a verdict shows up here as one line: its number, who it was, who wrote the feedback, the feedback itself, and when. The number stays with the review for good, so “number 17” means the same review next week, even after others are resolved. Hover the time for the exact date. Two switches at the top pick what you see: Real calls (the default) or Test calls on the left, and Misses (the default), Passes or Resolved on the right. The agent version a call ran on is on the review page. Click it and the review opens on its own page, with the call underneath: what the agent collected, which automations it started and what they did (click a rule to open it; Back brings you to the review), the summary, the recording and transcript, and the call’s details: who rang whom on which numbers, which attempt it was and how the one before went. Write What we did beside the feedback and press Mark done. The review then moves to Resolved, where the line shows what was done rather than what went wrong. The arrows at the top step through the list without going back to it, and a review that turns out fine can be moved to Passes. Anyone on the team can write feedback and actions. Each call has one feedback note, and anyone can edit it, Claude’s included. An edited note keeps its original author and says who changed it. Reviews Claude wrote are signed Claude.

Outcomes drive the workflow

Every call ends with an outcome: reached, no answer, voicemail, not interested, and so on. An automation can map outcomes to states, for example call succeeded sets possibility to Qualified, call failed sets No answer, which starts the WhatsApp follow-up automation. That call, no answer, message, close chain is the canonical Nudge workflow. After each call, the summary, outcome and sentiment land on the contact’s timeline. Repeated no-answers are counted per contact, so a rule like “3 failed attempts: close the file” is one condition, not custom logic. Two things a call does get flagged rather than trusted. If a call replaces an answer you already had, say “wants to proceed” going from Yes to No, the new value is written and every admin gets a notification naming the change and the call length, so a 30-second “it’s just a machine” does not quietly close a good lead. And if an agent hands a call to another agent that then finds the caller is not the kind of person it serves, nothing from that call is saved, the call card says so, and admins are told. Give an agent a do_not_call variable (Yes or empty) and Nudge honours it everywhere: automated calls stop, and a person dialling by hand is asked first.

Where the outcome goes

Every call leaves a note on the contact and an entry on its call timeline: a missed call says so and why, an answered call lists what the agent captured, with the recording. That is the record of how a call went. If you also want the last result in a field of its own — completed, no answer, voicemail, busy, failed — ask us to point it at the field and say which of its values mean what; every call, automatic or by hand, then sets it. Reachability never has to be recorded in the field that says whether the contact is qualified: a host who said yes and then missed two calls stays a yes.

Listening back

The contact’s Calls tab shows every call as its own card, newest first — the outcome, the recording ready to play, and the summary are right there without a click. Each card also names the numbers the call was on — which of your lines it went out from, or which one the caller dialled — so a workspace with several numbers can always tell, and says where the call came from: an automation by name, HubSpot’s own dialler, or the colleague who placed it. Details on a card unfolds the answers the agent collected and the full transcript laid out as a conversation. That last one is what you want when a summary reads oddly or an answer came back empty: you can see exactly what was asked and what the person said. Opening a call from Activity lands you on its card with the details already unfolded.
The live demo simulates calls end to end, including summaries and outcomes, so you can watch the routing work without a phone bill.

Callbacks, cut-offs and the three chances

When a caller asks to be rung back, the agent notes it as the outcome of the call and, if they named a time, records the time.
  • A time was given. The call is booked for that time and rings from the same number. It still goes ahead if someone moves the contact to a warmer status in the meantime; it is dropped only if a person clears the time or closes the contact.
  • “Call me later”, no time. The agent rings again on the next working day. If they say “later” again on that call, it rings once more the day after; after that, the machine stops and a person takes over.
  • The line dropped mid-conversation. The contact gets a WhatsApp saying so, and the agent rings again in about an hour, evenings included. A dropped call is not counted as a missed call. A line that drops twice gets a second retry, and no more.
  • The callback rang out. The contact gets one WhatsApp saying we rang at the time they asked and will try again in about an hour, and that they are welcome to ring back. The retry comes an hour later, evenings included. Then the usual retries.
Missed calls are counted from the last real conversation, and there are three chances: the first miss, a retry, and one more. A missed callback is the first of a fresh three, because the conversation that booked it reset the count. Any real conversation, in either direction, cancels whatever automated calls were still queued for that contact; a new callback agreed on that call books a fresh one. A ring-back that went nowhere (nobody spoke) changes nothing, and the queued retries still happen. If a callback the contact asked for is ever dropped before it rings (for example because someone closed the contact in the meantime), every admin gets a notification, because nothing will retry it and a person has to keep the promise. When a contact rings you back, the agent that answers already knows them: their name, where they are in the process, what they said last time, and whether they are returning a missed callback or a call that dropped. If the same number is on more than one contact record, the newest record is the one that answers.