Workspace/SERP Scout
Live spendSettings

Voice agents

Per-site context — business name, hours, service area, dispatch fee — is injected at ring time by the inbound webhook resolving the dialled number, so agents never hold a market’s details. What they do hold is the script, and that is per trade: a plumbing call cannot be served by a furnace script no matter how good the variables are. So there is one agent per trade, and this page is where you see all of them at once.

Fleet

One row per agent — versions collapsed, since list-agents returns one row per version and a picker of five agents would otherwise read as nine.

AgentEngineVersionAuditSitesNumbers
Conversation Flow Agent
agent_c9208fd6b3aef67d2211fd0f30
conversation-flowv1 · published v0pass
Willow Crest Plumbing San Jose CA Plumber
+16693695287
Conversation Flow Agent
agent_664656ef9dbaf61870c3410a70
conversation-flowv0never publishednever read
Roger - Old Pueblo Heating and Air Intake
agent_57f4e0346389a82e7b699a4fbf
conversation-flowv3 · published v2pass
Old Pueblo HVAC Tucson AZ HVAC Repair
+15203694399
Conversation Flow Agent
agent_1e6b0f0036c4b2fc4544299d44
conversation-flowv1 · published v0never read
+18654216517 pinned 0
Retell owns the conversation. This repo owns the wiring. Your agent is a visual Conversation Flow — nodes, instructions and branching built in the dashboard. Nothing here will overwrite it: the API client hard-rejects any field outside webhook_url and post_call_analysis_data, because a PATCH that touched a flow would replace hand-built dialogue with a guess and there is no undo.

Connect to Retell

Pull reads the agent over the API, so the dashboard stays the place you edit and this just reads the result. No re-importing after every change.

Import agent JSON

Accepts a bare agent export, or { "agent": {…}, "flow": {…} }. Useful for pinning a known-good version. It is a snapshot of a file, not a reading of Retell — if the agent changed since the export, these checks describe the export.

What Retell holds

AgentRoger - Old Pueblo Heating and Air Intake agent_57f4e0346389a82e7b699a4fbfEngineconversation-flow — a visual flow, so there is no single prompt to overwriteFlow17 nodes conversation_flow_669c8b0c2a05Custom functionssave_leadVoice11labs-GilfoyVersion3 not publishedWebhook URLhttps://rank-and-rent-beta.vercel.app/api/retell/eventsLast read2026-08-04 19:02 from API

Integration checks

These check only the wiring this repo owns — where webhooks go, the save_lead function, analysis fields. Nothing here is an opinion about your script: the conversation belongs to whoever built it in Retell.

CheckStatusNowFix
Agent webhook URLpasshttps://rank-and-rent-beta.vercel.app/api/retell/events
save_lead custom functionpasshttps://herbal-punisher-flyaway.ngrok-free.dev/api/retell/tool/save-lead
Post-call analysis fieldspassname, phone, address_line, city, zip, problem, system_type, system_age_years, is_emergency, is_owner, is_commercial
Recording retentionpassdata_storage_setting is "everything", so Retell keeps recordings and the fetch job is not racing a 10-minute link expiry.
PublishedwarnVersion 3 is not published.Publish it in the Retell dashboard once the integration checks pass, or calls may be served by an older version that lacks them.

Adding save_lead yourself

This is the one fix left manual, and the reason is real: a custom function only fires from the nodes it is attached to. Guessing which of your nodes should call it would either do nothing or corrupt the flow, so it is your call — but it is also the difference between capturing a lead mid-call and losing it when the caller hangs up.

Namesave_leadURLhttps://rank-and-rent-beta.vercel.app/api/retell/tool/save-leadSpeak during executionoff — an agent narrating “let me save that” is a tell, and costs a turnSpeak after executionoffAttach tothe nodes where details land — Collect Contact Info, Collect Address and Authorization, Problem Description — so a hang-up mid-intake still leaves what was gatheredParametersrun pnpm voice:agent-config for the JSON schema

Other agents read

AgentEngineNodesWebhookLast read
Conversation Flow Agent
agent_c9208fd6b3aef67d2211fd0f30
conversation-flow12set2026-08-17 01:46
San Jose CA Plumber intake
agent_3b52631735fc765b0a6ebdd734
retell-llmset2026-08-17 01:27
Roger - Old Pueblo Heating and Air Intake
agent_57f4e0346389a82e7b699a4fbf
conversation-flow17set2026-08-04 19:02