Inbound & outbound
Receive customer calls on your WhatsApp number and place outbound calls from the dashboard or a single API request.
Take inbound calls. Dial outbound. Route with a visual node-based IVR. Save every recording to your own S3 bucket. Automate messaging. All on infrastructure you control.
Most self-hosted projects stop at messaging. Whatomate is the one that goes all the way to voice — routing, recording, and storage you own end-to-end.
Receive customer calls on your WhatsApp number and place outbound calls from the dashboard or a single API request.
Drag, drop, and wire nodes on a canvas. Greet, capture input, branch, hit your API mid-call, route to agent teams, schedule by business hours — all visual.
Every recording is encrypted and streamed straight to the S3-compatible bucket you configure. You set retention. You own the keys.
Whatomate's IVR editor is built for product teams — not only telecom engineers. Drag nodes onto the canvas, wire them together, and publish a new flow without a deploy.
Every recording is streamed directly to the S3-compatible storage you control. Nothing passes through our servers, because there are no "our" servers — it's your infrastructure.
Calling is the differentiator. Messaging is the daily driver — and it's built to the same standard. Conversations, templates, and campaigns, all first-class.
Keyword triggers, multi-step flows, and AI fallback with OpenAI, Anthropic, or Google. Bot hands off to a human when stuck.
Create, sync from Meta, and send with {{variables}}. Full component support — headers, buttons, media, CTAs.
Send to thousands in one click. Track delivery, read, and reply rates in real time. Segment by tags or custom fields.
Every conversation — chat or call — lands in one unified inbox. Agents pick from a shared pool, templates drop in with one click, and the handoff from chatbot to human is seamless.
Docker Compose ships Whatomate with Postgres and Redis — everything it needs to run. Paste in your Meta credentials — access token, phone number ID, business account ID — point it at an S3 bucket, and you're live.
Written in Go. Handles thousands of concurrent calls and messages with single-digit MB of RAM.
Your conversations, your recordings, your data. Full control, zero third-party middlemen.
The full stack ships in one Compose file — Whatomate, Postgres, and Redis. docker compose up -d and you're running.
Send messages, manage contacts, trigger flows, fetch recordings, wire up webhooks — from any backend in any language.
curl -X POST "http://your-server:8080/api/contacts/{contact_id}/messages" \ -H "X-API-Key: whm_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "type": "text", "text": "Hello! How can I help you today?" }'
Call the API from Node, Python, PHP, Ruby, Go, Java — no SDK required.
Meta-delivered messages and status updates forwarded to your endpoint in real time.
Full REST surface: users, accounts, roles, chatbot, custom actions, analytics.
Four commands. Docker Compose. Then you're running calls, IVR, and messaging on your own infrastructure.