Documentation · Introduction
Introduction to Callingtap
Callingtap is a self-hosted platform to build, test, deploy and monitor AI voice agents. You connect your own carrier, your own models and your own keys — your carriers, your models, your keys — and the agent answers phone calls and chats on your website from your own server.
Build
A Callingtap agent answers the phone and chats on your website. You build it in the dashboard — no code needed — from a single prompt, from a conversation flow, or from a template. The agent uses your prompt, your knowledge base and your integrations while it talks.
Callingtap does not run the stack for you. You connect the pieces, and they run on your server:
- Telephony: your own Twilio, Telnyx or Plivo account, or your own SIP trunk.
- Language model: Gemini is the default, or bring your own Ollama model.
- Speech to text: Groq is the default, or use self-hosted Whisper.
- Text to speech: ElevenLabs is the default, or use self-hosted Kokoro.
If you add no keys at all, the free self-hosted stack — Whisper, Ollama and Kokoro — powers the website widget with nothing to configure. When you do add a key, it is yours: calls, recordings and customer data stay on your infrastructure.
Build, in the dashboard
Dashboard, then Agents, then Create. Give the agent a name after its job — for example, receptionist for a dental clinic — then write the prompt like a job description, with the business hours, services, prices and rules the agent must follow.
What voice agent should I start with?
Start with a single prompt. Only move to a conversation flow when the single prompt stops being enough.
- 1
Start with a single prompt
Describe the whole task in one prompt and let the model run the conversation. A task with several steps still fits in one prompt.
- 2
Test it before changing anything
Try it in the playground, in text and in real audio, and run simulation tests. If it works reliably, keep it as a single prompt.
- 3
Switch to a conversation flow when you need more control
Rebuild as a flow if the call must follow a fixed order of steps, like a compliance script, or if the prompt has grown too long for the agent to follow and you cannot shorten it. The flow builder is drag-and-drop nodes, so each step gets its own prompt.
A third way to start is a template. The template picker lists 30 starting points — 28 ready-made templates, plus build from scratch and generate from a prompt. Pick the one closest to the job, then edit its prompt to match your business.
Single prompt vs. conversation flow
Single prompt: one prompt runs the whole call. Best for most agents, and the recommended starting point — lead qualification, customer support, appointment scheduling.
Conversation flow: the task is divided into nodes for tighter control. Best for calls that must follow a fixed order of steps.
Quickstart: build your first phone agent
This is the whole journey, in order. There is no time to beat — most of the work is choosing your providers and writing a good prompt.
- 1
Create your account and workspace
Sign up, then create a workspace for your business. A workspace is one business: its agents, phone numbers, contacts and calls stay together. Agencies run one workspace per client.
- 2
Connect your carrier, models and keys
Under Settings, connect your telephony carrier (Twilio, Telnyx, Plivo or a SIP trunk), your language model (Gemini is the default, or Ollama) and your voice and speech providers (ElevenLabs and Groq by default, or self-hosted Kokoro and Whisper). The onboarding wizard walks through the same steps.
- 3
Create an agent
Dashboard, then Agents, then Create. Give it a name after its job, pick a template or start from a single prompt, and write the prompt like a job description: business hours, services, prices and the rules it must follow.
- 4
Give it a knowledge base
Upload your FAQ, price list and policies — PDF, Word, Excel, PowerPoint, CSV or plain text — so the agent answers from your documents instead of guessing. Uploaded files are chunked and searchable, and the agent is told to answer only from that material when it can.
- 5
Test it before anyone real hears it
Talk to the agent in the playground in text or in real audio, and run simulation tests. Interrupt it mid-sentence, mumble, go silent, ask the awkward questions. Fix the prompt, then test again.
- 6
Connect a phone number, a widget, or both
In Settings, then Telephony, attach a phone number to the agent — bring your own Twilio or Vonage number, or use a SIP trunk. For your website, create a widget under Widgets in the dashboard and add the embed script to your site. The widget opens a floating button and a corner panel, and the conversation lands in the dashboard like any other call.
- 7
Go live and watch the first calls
Take the first real calls, then read the transcripts in the dashboard. Every call is recorded there with a transcript, a QA scorecard and the action items the agent pulled out of it.
Test
Test in text or in real audio, manually or automatically, before an agent ever takes a real call. The playground is where an agent is first heard: type or talk to it, listen to how it sounds, and check that it follows its prompt under pressure.
- Playground: chat or call your agent in text or real audio, under Settings, then Playground.
- Simulation testing: run graded simulation test cases to catch regressions before launch.
- A/B testing: compare two agents or two prompts by splitting live traffic between them.
What to test, in plain terms
Try the awkward questions first, interrupt the agent mid-sentence, mumble, and go silent. Then check that it answers from your knowledge base, not from its own guess, and that it asks for the details you need — a name, a time, a number — before it tries to book anything.
Deploy
Deploying means giving people a way to reach the agent: a phone number, a website widget, or both.
- Phone number: connect your carrier under Settings, then Telephony, and attach the number to an agent. Bring your own Twilio or Vonage number, or connect your own provider over SIP trunking.
- Website widget: create a widget under Widgets in the dashboard and add the embed script to your site. The widget is a floating button that opens a corner panel where visitors talk to the agent.
Calls are billed in credits. One credit is worth $0.01 of plan value, and each plan includes a monthly credit allowance — Free includes 200 credits. A call draws credits per minute at the rate of the stack the agent runs on, and the self-hosted services are never charged. What a call costs in credits is always visible, per call and per service, under Dashboard, then Billing, then Credit Rates.
Monitor
Once an agent is live, the dashboard shows what is actually happening on calls — not what the prompt says should happen.
- Live calls: follow live transcripts as calls happen, under Live in the dashboard.
- Call history: every call is recorded with a transcript, a QA scorecard and the action items the agent pulled out of it.
- Alerting: set up alert rules for call and chat metrics, so you hear about problems instead of finding them later.
- Reliability: the reliability settings track how the stack is performing, and the monitoring pages show latency and call outcomes.
When a call goes badly, read the transcript first. Most fixes are a prompt change, a knowledge base gap, or a step that belongs in a flow instead of a paragraph.
Data
Every call and chat is kept in the dashboard, with its transcript and analysis. You can go back to any conversation, read what was said, and see what the agent did with it.
- Call and chat history: past calls and chats, with transcripts and analysis.
- Contacts: the people your agents talk to, with status updates from calls.
- CRM: connect HubSpot or GoHighLevel from Integrations, and call data flows to the CRM instead of living only in the dashboard.
- Calendar: connect Google Calendar so agents can check availability and book, reschedule or cancel appointments.
Because Callingtap is self-hosted, this data lives in your own database, on your own server. It is not sent to a vendor to be stored.
Developer friendly
You can build everything from the dashboard with no code, or go programmatic. The reference is a live OpenAPI document generated from the production backend — not a hand-maintained page that can drift from what the server actually does.
- API reference: the full machine-readable OpenAPI spec, served directly by the API host. Import it into Postman, Insomnia or any OpenAPI client.
- Webhooks: real-time call events, signed with HMAC-SHA256, configured under Settings, then Webhooks. Events include call started, call completed, call failed and appointment booked.
- Website widget: the embed script is the simplest integration — one script tag and a widget key.
- Integrations: Make, n8n, HubSpot, GoHighLevel, Twilio and Vonage, connected from Integrations in the dashboard.
A fuller hand-written API guide is still being written, and endpoint documentation will only be published where it matches the product. Until then, the OpenAPI spec is the reference, and the quickstarts in the documentation are the practical guides.
Use cases
Most agents on Callingtap do one of these jobs. Each one starts as a single prompt.
- Lead qualification: ask the qualifying questions and write the answers to the CRM. Built with a single prompt.
- Customer support: answer from the knowledge base, and hand the caller to a person when the question is beyond the agent.
- Appointment scheduling: check availability and book, reschedule or cancel appointments, with the calendar connected.
- Receptionist: answer calls, take messages and route callers to the right person or department — for example, a receptionist for a dental clinic or a law firm.
- Agencies and resellers: run an agent for each client in its own workspace.
How a voice agent works
Every voice agent runs on four layers, and Callingtap lets you choose the provider for each one.
- 1
Telephony
The call arrives by phone number, SIP trunk or website widget.
- 2
Speech to text
The caller audio is transcribed as they talk — Groq by default, or self-hosted Whisper.
- 3
LLM
The model picks the reply, using your prompt, your knowledge base and your tools — Gemini by default, or your own Ollama model.
- 4
Text to speech
The reply streams back to the caller as audio — ElevenLabs by default, or self-hosted Kokoro.
The platform handles turn-taking and interruptions between the layers, so a caller can interrupt the agent mid-sentence and the agent recovers, instead of talking over them.
FAQ
Do I need my own phone carrier? Yes. Connect Telnyx, Twilio, Plivo or your own SIP trunk, and you pay carrier rates directly. There is no requirement to buy a number from Callingtap.
Can I try it without adding any keys? Yes. The free self-hosted stack — Whisper, Ollama and Kokoro — powers the website widget with nothing to configure, and the Free plan includes 200 credits a month.
Can I keep my existing phone numbers? Yes. Bring your own Twilio or Vonage number, or connect your own provider over SIP trunking, then attach the number to an agent under Settings, then Telephony.
What happens when the agent cannot handle a call? The agent follows its prompt: it should say what it cannot do, take a message with the caller details, and the call is still recorded with a transcript so a person can follow up. Write that fallback into the prompt before going live, and test it.
Where do calls and recordings live? On your own server, in your own database. Self-hosted means your calls, recordings and customer data never leave your infrastructure.
Does Callingtap work in other languages? The dashboard and the docs are in English, and agents can be set up in other languages from the agent language settings. Check the language options on the agent before promising a caller a language you have not tested.
Next steps
Start with the quickstarts for the exact clicks, then the guides for the details.