Dialzen is a free, open-source platform for AI voice agents that answer support calls, book appointments and make follow-up calls to people who have agreed to hear from you. You install it on your own server, where it manages agents, knowledge, phone numbers, contacts, consent records and call logs, while a managed voice provider, ElevenLabs Agents or Retell AI, runs the realtime conversation. It is MIT-licensed and has been public on GitHub since October 31, 2026.
Dialzen is an EpiFive project. The source code is at github.com/epifive/dialzen, and it is listed with the other EpiFive repositories on the open-source projects page.
Who Dialzen is for
Dialzen is built for conversations that a business already has with its own customers, not for calling lists of strangers:
- Clinics, salons, repair shops and other appointment-based businesses that miss calls at busy times and want an agent that answers questions and books a slot in Cal.com or Google Calendar.
- Support teams that want an agent to handle common questions from a knowledge base and transfer the caller to a person when needed.
- Businesses with consented follow-ups, such as appointment reminders or callbacks the customer asked for, where every contact has a consent record.
- Software companies and resellers that want to offer AI phone agents to their own customers. Dialzen includes workspaces, plans, a prepaid credit wallet, payments and an admin panel.
If you are still deciding whether a voice agent is the right first step, compare it with a text chatbot in AI chatbot options for small business websites.
How Dialzen is put together
Dialzen is the control plane. Agents, the knowledge base, tools, phone numbers, contacts, consent records, do-not-call lists, campaigns, call credits and compliance settings live in your database. A managed voice provider runs the realtime audio, so you do not need a media server. Three providers are supported:
| Provider | Use |
|---|---|
| ElevenLabs Agents | Real calls |
| Retell AI | Real calls; also used to buy US and Canada numbers |
| Simulated | Demos and tests; places no real calls |
The ElevenLabs and Retell adapters follow the providers' documented APIs and are tested with mocks. The project asks users to open an issue if something does not work with a live account, so plan a careful test with your own provider account before you put an agent in front of callers.
Feature overview
Agent builder
Agents start from one of 8 templates. You set prompt variables, use an AI prompt assistant to draft instructions, choose voices and languages, attach a knowledge base, adjust behavior settings and define post-call analysis fields, the pieces of data you want pulled out of every call. You can run test calls in the browser before an agent takes real calls.
Tools the agent can use
- Booking with Cal.com and Google Calendar.
- Google Sheets.
- Signed webhooks, to send data to your own systems.
- Transfer to a person.
- End call.
Phone numbers and the website widget
You can buy US and Canada numbers through Retell, or import Twilio and SIP trunk numbers. Each number has inbound routing and daily dial caps. There is also an embeddable web widget, so visitors to your website can talk to an agent from the browser.
Call log and analytics
Every call is logged with its recording, transcript, summary, sentiment and the extracted data defined on the agent. Analytics include a heatmap.
Consent and compliance
Calling rules exist to protect people from unwanted calls. In the US, the Telephone Consumer Protection Act (TCPA) and the FCC rules under it set consent requirements for automated and artificial-voice calls; in India, TRAI regulates commercial communications and customer preferences. Other countries have their own rules, and recording laws vary as well. Dialzen does not decide what is lawful for you, but it gives you the records and controls to follow the rules that apply.
Contacts with consent records
Contacts carry consent records. CSV import has a dry run that shows problems before anything is saved, and contacts can be grouped into lists. Do-not-call lists and opt-out detection in English, Hindi and Arabic mean a person who asks not to be called again is recorded as such.
Campaigns for consented follow-ups only
Campaigns are for follow-ups with contacts who have consented. Each call is checked at dial time against compliance rules, calls are limited to calling windows in the contact's own time zone, and campaigns have retries, pacing and live progress. Outbound calling itself needs approval, including KYC, before a workspace can use it.
The compliance center
| Control | Purpose |
|---|---|
| AI disclosure | Telling the caller they are speaking with an AI |
| Calling rules | Rules applied before each outbound call |
| Recording notice and retention | Informing callers about recording and limiting how long recordings are kept |
| Outbound approval with KYC | Checking who a workspace is before it can place outbound calls |
| Kill switches | Stopping calling quickly |
| Append-only audit log | A record of actions that cannot be edited, with export |
The project is explicit that these features are tools, not legal advice: operators and their customers are responsible for the consent, telemarketing and recording rules that apply to their calls. If you run Dialzen for other businesses, decide how you will review their use cases before you approve outbound access.
Billing and running it as a service
Billing uses a per-minute sell price, included minutes and a prepaid credit wallet with reserve-then-settle accounting, plus credit packs, auto-recharge and a profit-and-loss view per tenant. Payments go through Stripe, PayPal, Razorpay or bank transfer. Workspaces have roles and invites, plans have limits, and a workspace can use its own provider keys. Notifications go out by email, Slack, Discord, Teams, Telegram and signed webhooks, and there is a REST API, a blog and a full admin panel. The interface is multi-language with right-to-left support, with Arabic and Hindi language packs included.
Try the live demo
The quickest way to see Dialzen is the live demo at dialzen-demo.vercel.app. Sign in with:
Email: demo@dialzen.app
Password: demo12345
The demo uses the Simulated voice provider and never places real calls, and the data resets regularly. Open an agent to see the builder, look at a call's transcript and extracted data, and walk through the compliance center and contact consent records.
Install Dialzen
Requirements
- Node.js 20.9 or newer; Node.js 22.13 or newer if you choose the SQLite database.
- MySQL 5.7+, MariaDB 10.3+, TiDB, or SQLite.
- HTTPS on a public domain, for provider webhooks and microphone access.
- A 1-minute scheduler: a cron URL or the worker.
- An ElevenLabs or Retell AI account for real calls.
Dialzen runs on a VPS, in Docker, on cPanel with Node.js app support, or on Vercel, and includes PM2 and Docker configurations.
Local quick start
Clone the repository and start the development server from the app folder, exactly as the README describes:
git clone https://github.com/epifive/dialzen.git
cd dialzen/app
npm install
npm run dev
Open http://localhost:3000. You are redirected to the web installer at /install. Choose SQLite for a zero-setup local database, or MySQL/MariaDB for production.
Voice providers send webhooks to a public https:// address, so on localhost use the Simulated provider (Admin > Settings > Voice providers > Testing) or an HTTPS tunnel. Campaigns run on time when the worker (CRON_SECRET=… npm run worker, with your own secret in place of the dots) or a cron job calls the scheduler every minute.
Production, Docker, PM2, cPanel and Vercel setups, provider accounts and every setting are covered in app/README.md in the repository and in the full guide at documentation/index.html, which you open in a browser after cloning.
Checklist before real calls
- The agent tells callers it is an AI, and the recording notice is switched on where recording is used.
- Every contact in a follow-up campaign has a consent record, and do-not-call lists are loaded.
- Calling windows and calling rules match the rules for the countries you call, and you have checked them with someone qualified where needed.
- The agent can transfer to a person, and someone is available to take those calls.
- Provider webhooks reach your HTTPS domain, and you have tested real calls with your own ElevenLabs or Retell account.
- The worker or a per-minute cron is running, and the kill switches are tested.
- The database is backed up, and recording retention is set.
Hosted version and installation
If you would rather not run the server yourself, EpiFive can host Dialzen for you, install it on your own server or customize it as part of custom application development. Other EpiFive projects are listed on the open-source page.
References
- Dialzen repository and README: https://github.com/epifive/dialzen
- Application README (provider accounts, production setups): https://github.com/epifive/dialzen/blob/main/app/README.md
- Full documentation (open in a browser after cloning): https://github.com/epifive/dialzen/blob/main/documentation/index.html
- Live demo: https://dialzen-demo.vercel.app
- MIT license: https://github.com/epifive/dialzen/blob/main/LICENSE
This guide was researched and drafted with AI assistance and checked against the vendor documentation listed in its References. Read the maintained version and related guides on EpiFive.


Top comments (0)