What it does on a call
It takes actions, not messages
Voicotopia answers incoming calls and places outgoing ones. It works out what the caller actually wants, then does it: book, reschedule, cancel, transfer, arrange a callback, or simply capture the details when the request is something a person should handle.
Afterwards it does the part most businesses never get to. The call is summarised, the caller gets a follow-up on WhatsApp or SMS, and the owner gets a notification and a digest.
Language is per caller, not per business
A call is handled in English, Hindi or Bengali — detected during the conversation rather than chosen in advance by a setting. The owner reads everything back in English regardless, which matters when your customers and your staff do not share a first language.
How it is built
Failover at every layer
A turn runs through a LangGraph state machine: load the context, transcribe, detect the language, check whether the caller actually said anything, compose a grounded reply, speak it in a locked persona voice, and persist what happened.
Models are resolved in order — a tenant's own override, then their tier profile, then the default, and finally an emergency profile. Several providers sit behind that resolver with circuit breakers, metering and credit checks, so one provider having a bad afternoon changes the cost of a call rather than ending it.
Multi-tenant to the row. Separation is enforced by PostgreSQL
row-level security, not by remembering to add a WHERE clause.
One tenant's knowledge, calls and recordings are unreachable from another's session.