Dograh
Retell migration

Move your Retell agents to open source

Dograh is the self-hostable voice agent platform with an open-source workflow builder. Rebuild each agent from Retell's API as a Dograh flow, then switch a Twilio number by taking it off Retell's SIP trunk.

5,800+GitHub starsBSD-2open source$0platform fee, self-hostedAny systemconnects to the tools you use
01 / How it works

Read, rebuild, then pull the trunk

Example
Read agents via Retell's APIrebuild them in Dograhtest on a spare numbertake your quietest number off the trunk
01 · Export

Pull your agents out of Retell

Retell APIno documented export, no importer

A short script saves every agent and the prompt or flow behind it, plus a list of your numbers.

→ Use a read-only Retell API key

02 · Rebuild

Turn prompts into nodes

Global Promptrules every node follows

Persona and house rules go in the Global Prompt. Each Retell state or flow node becomes its own Agent node.

→ Or let Claude Code read Retell's MCP server and build in Dograh's

03 · Switch

Take the number off the trunk

Elastic SIP trunkTwilio ignores the voice URL

Save the Dograh agent as the number's inbound workflow first. Calls only switch when you remove the number from Retell's trunk in Twilio.

→ Roll back by adding the number to the trunk again

02 / What moves across

What you keep, map or replace

Carries over as is
The model family you ranProvider voices, found by nameKnowledge base filesYour caller-lookup serverImported Twilio numbers

Pre-Call Data Fetch sends Retell's inbound webhook request shape

Maps to a Dograh piece
general_prompt → Global Promptbegin_message → Start Call greetingCustom function → HTTP API toolcall_ended, call_analyzed → Webhook nodecall_inbound → Pre-Call Data Fetch

Call transfer to a person runs on Twilio only

Needs rework
Numbers Retell sold youRetell's own platform voicesLogic Split and equation edgesCode toolCustom LLM server (to OpenAI format)Live call events

Numbers Retell sold you have no documented way out, so plan replacements. Dograh has no rule-based branches.

03 / Before you switch

Run this before each number leaves Retell

  1. Number's setup notedYour runbook shows its trunk and the Retell agent that answers it.
  2. Trunk step rehearsedOn a spare number, removal sent calls to Dograh and re-adding sent them back.
  3. Agent publishedThe phone test reached the published agent, not the draft.
  4. Webhook checkedA real payload parsed, and a second delivery made no duplicate record.
  5. Transfer testedOn a real call, answered and unanswered transfers both end cleanly.
  6. Retell left runningKeep it live until all numbers move and a week of calls looks clean.
04 / Why it holds up

A switch you control end to end

Prompts become a visible flow

Every Retell state or flow node gets its own node, so you can see where each call goes.

Your backend barely changes

Pre-Call Data Fetch speaks Retell's inbound webhook format, and the Webhook node sends a payload you design.

Undo is one Twilio change

Put the number back on Retell's trunk and its calls return there.

Self-host with no platform fee

Run the BSD-2 code with no per-minute fee. Servers and model keys still cost money, and call data stays yours only if you host the models too.

05 / Dograh vs Retell AI

What you gain by owning the platform

DograhRetell AI
Open-source code you can read and change (BSD-2)✓✕
Self-host without an Enterprise contract✓✕
No per-minute platform fee when self-hosted✓✕
Your own keys for speech-to-text and voice providers✓✕
06 / Guides

Read the full Retell move, step by step

Questions
Can I import my Retell agent into Dograh directly?+

No. Dograh has no Retell importer. Read the agent through Retell's API, then rebuild it by hand or have Claude Code build it through both MCP servers.

Why does my Twilio number still reach Retell after I saved it in Dograh?+

It is still on Retell's SIP trunk, and Twilio ignores a trunked number's voice URL. Remove it from the trunk in Twilio, and calls reach Dograh.

Can I keep a phone number I bought from Retell?+

Retell documents no way to move it out. Plan a new Twilio number, and let a small Retell agent transfer callers from the old one meanwhile.

Will my Retell webhooks still work?+

Mostly. call_ended and call_analyzed become a Dograh Webhook node, and Pre-Call Data Fetch sends Retell's inbound request shape. Live events like transcript_updated have no match.

Does call transfer still work after the move?+

Yes. The Call Transfer tool hands the caller to a phone number or SIP address. Transfers to a person work on Twilio only.

What will I have to rebuild differently?+

Dograh's AI picks each pathway, so write Retell's fixed rules into the condition. There is no keypad-digit or SMS tool yet, so send texts through n8n.

Take your quietest number off the trunk first.

Self-host in one command, or start on Dograh Cloud.

$ curl … start_docker.sh && ./start_docker.sh