The lead sheet, replaced by something that can be trusted.
Enquiries land here on their own — from Meta Lead Ads, a WhatsApp reply, a phone call, or a spreadsheet somebody actually has. Agents claim from one queue, a voice agent can work it alongside them, and every action is kept as history that cannot be rewritten. Ownership is enforced by the database, never by which button happens to be on screen.
Four ways in, one place it all lands
One pipeline, and the only moves allowed between its stages
Plus the ways a lead can end early — not interested, wrong number, invalid, do not contact, lost — each of which needs a reason on the record before it will save. Closed is never permanent: reopening it needs a reason too.
What it actually does
Not a form over a table. Every one of these is enforced in the database or checked on the server — never left to a screen nobody happened to look at.
Ownership enforced, not agreed
Claiming a lead is a single guarded write in PostgreSQL. When five people click at once, five different leads come back — the database decides, not the interface.
Nothing is ever quietly rewritten
Every call, note, status change and handover is appended and never edited, by database trigger. A correction is a new entry, so the record of what happened stays the record of what happened.
One door for every lead
A Meta webhook, a 20-minute poll as its safety net, a mapped CSV or Excel import with a dry run before anything commits, and manual entry all resolve through the same dedup — so the same person never becomes two contacts.
Do-not-contact follows the person
One suppression list reaches every channel — calls, WhatsApp, even an external voice agent’s own dialer — and a reply of “stop” on any of them is honoured in the same transaction that records it.
WhatsApp, kept inside the rules
Template-only by design — there is no free-text send to reach for — with the account’s quality rating and daily allowance checked before a single message queues.
AI drafts, a person decides
Calls are recorded and transcribed, and the model’s suggested next action — a status, a follow-up, a note — waits in a queue for a human to approve, edit or dismiss. It never acts on its own.
Built for a voice agent, not just people
A machine API lets an automated caller claim from the same guarded queue, log the same call record, and retry safely on a timeout — scoped tokens, rate limits and a full audit trail, not a shared password.
The meetup planner
Clusters leads by where they actually are, not a straight-line guess, and tracks a room from confirmed date through who attended to who went on to convert.
Know which ad is worth running again
Every lead keeps the campaign, ad set and ad it arrived under. See the funnel drop-off stage by stage, and how it breaks down by state, language and call outcome.
Who can do what
Permissions are checked on the server for every action. Hiding a button is never what stops something happening.
Agents
Claim from the queue, call or message, log what happened, and schedule the next touch. They can see any lead but only change their own.
Managers
Everything an agent can do on any lead, plus reassignment, imports, exports, the meetup planner, campaign figures and team-wide reporting.
Administrators
All of the above, plus user accounts, machine credentials, the Meta and WhatsApp connections, and the settings that shape how work is handed out.
Sign in to get started.
If you do not have an account yet, ask an administrator to create one for you.
Sign in