WTF WHATSAPP — AGENTIC SALES STUDIO
Live · wastudio.wtflabs.ai

An AI sales force that never clocks out.

Build autonomous AI sales agents in a visual flow studio. Agents with memory of every customer — last objection, payment history, renewal date, sentiment — that qualify, nurture, negotiate, and close on WhatsApp 24/7 across all your brand numbers. Direct to Meta Cloud API v23.0. No WATI. No BSP markup. No per-seat tax. Your numbers. Your data. Forever.

13
WABAs managed
17
Phone numbers
164
Templates synced
0%
Reseller markup
[ 01 ]  The thesis

You're paying a
tax on every
message.

Every BSP — WATI, AiSensy, Gupshup, Interakt — wraps the exact same public Meta API and charges you a per-seat licence fee plus a per-message markup on top of Meta's own wholesale rate. You're not paying for technology. You're paying for a proxy.

This CRM eliminates that proxy entirely. WTF AI Labs is registered as its own Business Solution Provider (BSP). We own our WABAs, register our numbers directly with Meta, and pay only the carrier-neutral Meta rate — nothing more. What would cost ₹6–12 per message through a WATI plan costs us the Meta base rate, full stop.

The engineering consequence: every feature you see is built against the official Meta Cloud API v23.0, not a vendor-specific abstraction layer. Portability is total. Ownership is absolute.

WATI-compatible REST API — migrate by changing base URL
17 NUMBERS → 1 INBOX
META CLOUD API v23.0
 REALTIME
[ 02 ]  Unified inbox

Every number.
One team.

Seventeen WhatsApp numbers, thirteen WABAs, eleven brands — all inbound messages land in a single shared inbox. Filter by number, brand, or agent. Assign threads. Leave internal notes. See unread counts per number in real time.

Per-number filter Thread assignment Internal notes Unread counters Real-time delivery

Delivery status in every thread

Sent → delivered → read → failed tracked per message, pulled from Meta's official status webhooks.

Department scoping

Agents see only the numbers and brands assigned to their department. Owner sees everything. Zero configuration drift.

[ 03 ]  The empire's messaging stack, by the numbers
0
WABAs under management
0
Registered phone numbers
0
Templates synced (157 approved)
0
Reseller / BSP markup
0
Fitness brands on one stack
0
Total infra cost
0
DB migrations shipped
0
Public REST API routes
[ 04 ]  What's in the box

An agentic sales studio. Zero SaaS subscription.

Build autonomous agents that sell 24/7 — every feature you'd pay $500/mo for on WATI Enterprise, plus an intelligence layer WATI will never have. Built in-house, runs in your private cloud, owned outright.

// 01

Unified multi-number inbox

Every inbound message — across all 17 numbers and 11 brands — surfaces in one shared inbox. Thread assignment to agents, internal notes, per-number filter, real-time delivery and read status, and per-number unread counters. Built for teams; scales to departments.

Assignment Notes Real-time
// 02

Visual agent studio

Design autonomous sales agent behaviours in a drag-and-drop canvas powered by React Flow + Dagre auto-layout. Each flow is an agent — with decision branches, memory reads, and multi-step qualification logic. Node types: send_message, template, interactive, collect_input, condition, set_tag, send_media. Full run-history and idempotent dispatch.

Agent studio React Flow Run history
// 03

Broadcast engine

Send a template blast to a hand-picked list or a CSV-uploaded audience. Schedule campaigns for off-hours. Throttle send rate to avoid Meta rate limits. Per-recipient variable substitution — every message is personalised, not bulk. Full delivery tracking from the Meta status webhook.

CSV upload Scheduled Throttled
// 04

Template management

Full CRUD for WhatsApp Business message templates. Submit for Meta approval in one click. Approval and rejection status sync automatically via webhook — no manual polling. 164 templates in the current production instance; 157 already approved. Variable preview before submit.

CRUD Meta submit Approval sync
// 05

Contacts & sales pipeline

Custom contact fields, tags, segments, and CSV import with phone-number deduplication. A Kanban-style sales pipeline maps contacts to stages. QR campaigns and tracking links drive inbound. Outbound webhook fan-out pushes contact events to any downstream system — CRM, ERP, or data warehouse.

Kanban CSV import Webhooks
// 06

Public WATI-compatible REST API

A full v1/v2 REST API (~20 routes) that mirrors the WATI API surface. Any integration built for WATI migrates by swapping the base URL and token — zero code changes. Supports segments, QR campaigns, tracking links, and outbound webhook fan-out to external systems.

v1/v2 ~20 routes Drop-in
[ 05 ]  Try it live  ·  chat with the agent →

Talk to the
sales agent.

This isn't a canned demo — it's the same task-scoped sales agent that runs on wastudio.wtflabs.ai. Ask about plans, book a trial, or try to cancel. Watch it qualify, quote, and handle the objection in real time.

<3s first reply 24/7 always-on Memory of every member Review-first queue
[ 06 ]  Agent Studio

Build agents
in chat.

An operator builds, deploys, and supervises task-scoped sales agents — right inside the conversation. No flow charts to maintain. Describe the job; the agent does it. Every outbound reply lands in a review-first approval queue until you trust it to fly solo.

TASK-SCOPED AGENTS

Qualify lead

Scores intent, captures budget and goal, tags the contact, and routes hot leads up the pipeline.

Book trial

Offers nearest centre and open slots, confirms the booking, and schedules a body-composition scan.

Quote pricing

Pulls the current plan matrix, applies eligible offers, and locks a time-boxed discount on confirmation.

Handle objection

Recalls last objection and sentiment, counters with the right proof, and offers a freeze instead of a cancel.

Review-first approval queue

Supervise, then let it fly

Every agent reply starts in a human-approval queue. Approve, edit, or reject with one tap. As confidence builds, promote a task to auto-send — the operator stays in the loop only on the edge cases. Full run-history and idempotent dispatch behind every send.

Approve / edit / reject Promote to auto-send Run history
<3s
Avg first reply
24/7
Always-on
Parallel conversations
[ 07 ]  The economics

Switch off WATI by changing a base URL.

Every BSP wraps the exact same public Meta Cloud API and taxes you per seat and per message. We run direct on Meta — zero markup, unlimited seats, 100% WABA and data ownership. And the migration is a config change, not a rebuild.

DROP-IN WATI-COMPATIBLE API · v1 / v2

The REST surface mirrors what your stack already calls. Switch by changing the base URL + token — no code changes.

sendSessionMessage sendTemplateMessage sendTemplateMessages sendTemplateMessages / CSV getMessages getContacts interactive buttons interactive list rotateToken
Switch base URL + token — keep your code
WHAT YOU TAKE BACK

Zero BSP markup

Direct on Meta Cloud API. You pay Meta's wholesale rate — full stop. No per-message proxy tax.

Unlimited seats

Add the whole team, every department, every brand. No per-seat licence. Ever.

100% WABA + data ownership

Your numbers are registered to you, your message history lives in your database. Portability is total.

The margin moat

Drag the sliders. Watch the markup vanish.

A single-model reseller burns 76–84% of per-member economics on LLM cost alone. Our in-house, model-agnostic brain keeps it at roughly 1%. Stack that on top of zero BSP markup and the gap compounds with every message and every seat.

[ 08 ]  Command plane

Run hundreds of numbers from one command center.

A multi-tenant super-admin control plane for 100+ client tenants. Cross-tenant overview, numbers, usage, onboarding, and a full audit log — and safety enforced by construction, not by convention.

// Control plane

Cross-tenant overview

One pane for every tenant: numbers, message volume, usage, onboarding state, and a tamper-evident audit log. Drill into any client without leaving the console.

Numbers Usage Audit log
// Safety by construction

Enforced on every send path

Tenant kill-switch, suspend, and impersonate are checked on every outbound send — not bolted on after. Opt-out registry, frequency caps, and quality auto-pause guard the WABA from policy strikes before they happen.

Kill-switch Opt-out registry Frequency caps Quality auto-pause
// Onboarding

Guided, encrypted, 2FA-gated

Guided number onboarding with 2FA, and encrypted token storage for every credential. New tenants come online in minutes — without a single plaintext secret touching the database.

Guided onboarding 2FA Encrypted tokens
[ 09 ]  Own your data

Security that's
baked in.

Not a checkbox on a compliance form — engineered into every layer of the stack. When you self-host this CRM you inherit a security model that rivals enterprise SaaS.

AES-256-GCM token encryption at rest

Every Meta credential — access tokens, app secrets, WABA IDs — is encrypted in the database using AES-256-GCM. Keys never live in plaintext rows.

HMAC X-Hub-Signature-256 webhook verification

Inbound webhooks are verified with HMAC-SHA256 against META_APP_SECRET — stronger than WATI's URL-secrecy-only approach. Invalid payloads are rejected before processing.

Row-Level Security multi-tenant isolation

Row-Level Security policies ensure one tenant's data is never reachable by another. Enforced at the database level — not in application logic that can be bypassed.

Team roles

Four-tier access model

Owner — full control, billing, WABA management.
Admin — configure numbers, templates, flows, broadcasts.
Agent — inbox read/write, send messages, manage contacts.
Viewer — read-only analytics and contact visibility.

Department scoping overlays roles: agents see only numbers assigned to their department. Ownership and admin permissions are isolated per WABA.

Onboarding

One-click WABA + number discovery

Connect a new WABA in seconds via Meta's Embedded Signup flow. The system auto-discovers phone numbers, subscribes webhooks, and syncs templates — no manual Meta dashboard configuration. The step from internal tool to SaaS is one Embedded Signup widget + billing.

[ 10 ]  Built for 11 brands, architected for 100 clients

Internal tool today.
SaaS tomorrow.

The data model is already fully multi-tenant. Every table is scoped by WABA ID, isolated by RLS, and partitioned by organisation. The stack that runs 11 WTF brands today is the same stack that would run 100 paying clients tomorrow.

The only delta between "internal tool" and "sellable SaaS" is a Meta Embedded Signup widget for self-serve WABA connection and a billing layer. Both are scoped for next-quarter engineering. The moat is already built.

NOW · LIVE

Powering the WTF empire

13 WABAs, 17 numbers, 11 brands — messaging at WTF scale, every day. Full production parity with Meta Cloud API v23.0.

NEXT · Q3 2026

Open the platform

Embedded Signup widget + Stripe billing. Any gym chain or D2C brand can connect their own WABA in minutes — no BSP required.

VISION · 2027

The anti-WATI

Proprietary core. Runs in your own private cloud, or let WTF run it. No per-seat tax. No per-message markup. Ever.

[ 11 ]  Tech stack

No legacy. No lock-in.
All ours.

Next.js 16 React 19 Tailwind v4 shadcn/ui @xyflow/react Dagre auto-layout Postgres Row-Level Security Meta Cloud API v23.0 Vitest Playwright E2E AES-256-GCM HMAC-SHA256 REST v1 / v2 TypeScript App Router
FRONTEND

Next.js 16 App Router with React 19 server components. Tailwind v4 + shadcn/ui design tokens. React Flow + Dagre for the visual flow builder. TypeScript end-to-end.

BACKEND

Postgres with Row-Level Security. Next.js API routes for webhook handling, template sync, broadcast dispatch, and the full public REST API. AES-256-GCM credential vault.

TESTING

Vitest for unit + integration coverage. Playwright for end-to-end browser tests. CI enforces typecheck + build + test before any merge. 38 DB migrations — all tested against live Postgres.

Ready to cut the BSP?

Your numbers. Your data.

Book a 30-minute walkthrough. We'll show you the full stack running live on production data — inbox, broadcasts, flows, and API — and scope a deployment for your brand.