About
Who builds RaabtaHQ
A small team, in Pakistan, building for the businesses around us first — clinics, consultancies and professional firms that run almost entirely on WhatsApp.
Muhammad Usama Qamar
Founder
You are not going to get a support queue. Send a message and the person who built the thing reads it.
How it is built
Three decisions that shaped the product
These are the ones that are visible from the outside, in the sense that a customer would eventually notice if they were made differently.
The database enforces what matters, not the code
A clinic diary cannot double-book because a Postgres exclusion constraint forbids it, not because a function remembered to check. Tenant isolation is row-level security, not a WHERE clause somebody could omit. Contact deduplication is a unique index. The pattern is deliberate: rules that live in application code are rules that hold until the day two requests arrive at once.
An agent that survives the server dying
Anything left running unattended is only as good as what happens when it fails. Every step is persisted before the next one starts, tool calls are ledgered so a replayed run returns the first attempt's result instead of booking twice, anything critical stops and asks a person, and the ceilings are money and wall-clock time rather than a step count.
Verticals you can delete in an afternoon
An industry module owns its own tables, routes, scheduled jobs, AI tools and staff roles. Removing one is deleting its own files plus two lines in each of four core files — and that is enforced rather than aspirational: it has been run end to end on a module with 39 tables, 20 route folders and four contributed roles, with the whole test suite green afterwards.
What we got wrong
The first version of the industry modules was a mistake
The first attempt at supporting different industries was a configurable meta-model: one universal schema meant to describe eight verticals at once, with an industry field on the account and semantic meanings layered onto pipeline stages. It was built before any single one of those industries was properly understood.
It bent under every new industry. Each one needed the shared abstraction to mean something slightly different, and the cost of each accommodation landed on all the others. It was removed wholesale — tables, engine and all — and the migration history was squashed so none of it survives in the schema.
What replaced it is the opposite trade: independent vertical slices, each owning its own tables and screens, with some duplication accepted deliberately so that a wrong guess can be deleted rather than lived with. The rule is that a helper is duplicated into a module rather than generalised in core, and a shared abstraction is extracted only once three modules want the same thing — never when two do.
That is why the industry modules are described the way they are on this site: not as configuration, but as separate slices with their own data. It is also why we can say what a module does not cover without much difficulty — the boundaries are real.
Where we work
Pakistan first, then the Gulf
Built for the businesses nearest us, and now used by clinics, consultancies and firms across three markets with genuinely different working weeks.
- PakistanMonday to Saturday, Sunday closed
- United Arab EmiratesMonday to Friday, weekend Saturday and Sunday
- Saudi ArabiaSunday to Thursday, weekend Friday and Saturday
- 5
- channels, one inbox
- 80
- AI tools across 18 groups
- 3
- industry modules
- 23
- documented use cases
Talk to the person who built it
No SDR, no qualification call. Tell us what you are trying to do and we will tell you honestly whether this fits.
We reply in under an hourOr message us on WhatsApp