The phone rings. The lead is already in Bitrix24.
A voice agent picks up, asks three short questions, understands the answers and writes a structured lead into your CRM. Nobody on your team touches it.
The browser microphone stands in for the phone line here. The conversation engine, the extraction and the Bitrix24 push are the same code a real call runs.
Five steps, no human in the loop
Start a test call above and watch each step light up as the call moves through it.
Call
A public phone number receives the call and hands it to the bot.
POST /voiceSpeak
A neural voice plays the greeting and the preset questions.
text-to-speechListen
The caller answers in a short sentence, which is turned into text.
speech-to-textUnderstand
The NLP layer pulls out service, company and contact channel.
structured JSONLead
The payload is pushed to Bitrix24 as a new lead, transcript included.
crm.lead.addReal sentences in, clean fields out
People do not answer like a form. The bot strips the small talk, ignores the option a caller rejects and spells out an email address said aloud. Every pair below is a passing test in the repository.
"We need a new website for our store."
"My company is called northgate rentals."
"I don't like phone calls, so Telegram please."
"Email instead of a phone call."
"It is hello at northgate rentals dot com."
"Plus four four, seven seven double zero..."
Leads the bot has created
This list is read straight from a real Bitrix24 account through its REST API. Finish a test call and your lead appears here. Contact details are masked.
Runs on a small VPS or a cloud function
No database and no packages to install. Add your Bitrix24 webhook, point a phone number at the server and it is live.
Four steps to your own number
- Clone the repository on the server and copy
.env.exampleto.env. - Paste your Bitrix24 inbound webhook into
BITRIX_WEBHOOK_URL. - Run
node server.js, ordocker buildand run the container. - In the phone number settings set the voice webhook to
https://your-domain/voice.
Environment variables
BITRIX_WEBHOOK_URLInbound webhook with the CRM permissionPUBLIC_BASE_URLPublic https address of the serverTWILIO_AUTH_TOKENTurns on webhook signature checkingTTS_VOICEVoice of the bot, optionalSPEECH_LANGUAGELanguage of the call, optionalLLM_API_KEYAdds an LLM pass on top of the rules, optionalThe JSON from your test call
What the MVP does today
- Answers the call and asks the preset questions with a neural voice
- Understands short-sentence replies and repeats a question once if the answer is unclear
- Asks for the email or Telegram name when the caller picks that channel
- Creates one lead per call with fields, caller number and the full transcript
- Rejects any webhook that is not signed by the phone provider
Ready for the next milestone
- Other languages: change one variable for Vietnamese or any supported language
- Deals or contacts instead of leads, and your own custom fields
- Longer free-form answers through the built-in LLM option
Hear it for yourself in under a minute
Answer three questions out loud and watch the lead land in Bitrix24.
Start a test call