The problem we had
A two-person consultancy cannot answer the phone. Neither can a three-dentist clinic at 11pm, an immigration office during intake season, or an accounting firm in March. The enquiry arrives, nobody picks up, and it goes to whoever answers first. That is not a marketing problem. It is a coverage problem, and hiring is the usual answer to it.
We had the same problem, so we solved it on ourselves first.
What is running
Two things, deliberately separate:
A voice agent, one per language. English and Persian, each with its own agent and its own voice. The Persian one is a native Persian voice, not an English model reading Persian. Open the assistant button on sixam.ca, choose voice call, and talk to it.
A text assistant with one brain and three front doors. The same retrieval system answers in the website chat, inside an embeddable widget that drops into any site with one script tag, and over Telegram. Ask it about our pricing, our method, or what an AI Readiness Assessment includes.
Both are wired into the same CRM. When a conversation turns into an actual enquiry, the assistant captures the lead itself and it lands in the pipeline with the transcript attached.
Three decisions that make it work
The lead capture is a tool, not a form. Most site chatbots open with "what's your email?" Ours does not ask until the conversation has earned it. Lead capture is exposed to the assistant as a function it may call when the conversation warrants it, so it asks at the point where a person would ask. The transcript is stored against the contact, so the first human conversation starts from what was already said rather than from zero.
Voice and text are separate brains, on purpose. They could share one. They should not. Voice needs shorter turns, different pacing, and a persona that handles interruption; text can afford structure and lists. Collapsing them into one prompt makes both worse. This is the kind of decision that only shows up once you have run the thing yourself.
Memory is summarised, not accumulated. The last sixteen turns go into the prompt verbatim; past twenty-eight, older turns are rolled into a running summary by a cheaper model. Long conversations stay coherent without the cost curve of replaying everything, and each session has a daily token ceiling so one visitor cannot run up a bill.
What it does not do
It does not replace your receptionist, and we will not tell you it does. It covers the hours and the overflow a person cannot, it qualifies, and it hands over. Every conversation is readable in the CRM. A human stays in the loop on anything that matters. That is a design constraint, not a limitation we are apologising for.
It also degrades cleanly. Pull the AI credential and the site still works; the assistant simply says it is unavailable. Nothing white-screens.
Under the hood
Retrieval over a pgvector index, rebuilt from the site's own content with one command, so the assistant cannot answer from anything we have not published. Models are routed through a gateway rather than a provider SDK, so swapping the model behind any of this is a config change, not a rewrite. Analytics record the channel a visit came through (web, chat, or voice) and never a raw IP address.
What this costs to have built for you
S1 · AI Front Desk. CAD 6,000-12,000 to build, CAD 300-600/month to run and improve. Two to three weeks.
Every engagement starts with an AI Readiness Snapshot (CAD 750, one week). We will not build this for you before we have looked at whether it is the right thing to build. Sometimes it is not.
Go and test it: sixam.ca. Open the assistant button in the bottom corner and choose text message or voice call. Both are the production systems described above, not a demo sandbox. If they are bad, you will find out before you pay us anything.