Ninety days, August to October 2026. Grounded in the RaudhahPay/operator-ai codebase at c6d13d1, repo activity through 26 July from github-activity.json, the product brief, ADRs 0001 to 0008, and the shipped marketing routes. Targets are the committed ones in blueprint.warobot.json.
WaRobot is not a chatbot and not an inbox. It is a front-office operating system for a Malaysian SME that runs inside one WhatsApp thread. One webhook receives every message, verifies the signature, rate-limits it, then routes two ways: a customer reaches the business's AI sales agent, an owner reaches Aria the concierge.
Customer messages the shop, Twilio webhook verifies and routes, the Claude agent replies with tools, then acts: quote, payment link, media, or handoff.
The owner texts SETUP to the same number and reaches Aria, who registers the business and then becomes the control panel. No dashboard required, ever.
Click any row to see the evidence in code. Filter by what you can sell today versus what is built but dark.
ADR-0004 puts every tenant on 601175957679, separated by a routing keyword. This is what makes five-minute onboarding possible, and it is also the ceiling. A customer with no keyword and no prior conversation gets a disambiguation message listing other businesses' keywords. Fine at 20 tenants, untenable at 200. Dedicated numbers already exist in Tier 1 routing, so graduation is a product decision, not a rebuild.
Plus a per-workspace daily limit. Do not sell WaRobot as a blast tool. This cap is a positioning gift, because it forces the story away from the ground where Wablas and the blast vendors win.
Payments land in one shared RaudhahPay merchant account and are paid out manually by an admin under ADR-0005. That is a facilitator posture with real obligations. It is also the strongest lock-in you have, because a business whose earnings settle through you does not casually switch. Treat payout reliability as a marketing asset and staff it before scaling acquisition.
The GTM narrative sells a salesperson. The code has outgrown that. A salesperson does not run your CRM, settle your money, or host your storefront.
WaRobot is a WhatsApp AI sales agent for Malaysian SMEs that answers instantly, closes the sale, and collects DuitNow in-chat.
Already live verbatim in llms.txt, the schema, and every marketing page. Consistency is what answer engines reward, so paste this exact string into every directory listing without editing a word.
Answers questions. Menu 1-2-3. Never asks for the sale, never takes the money. The thing owners are already sick of.
Opens, closes, upsells, collects DuitNow in the chat. Owners feel this word instantly, which is why it stays the hook.
CRM, orders, storefront, receipts, settlement, referrals. The owner never opens a dashboard because Aria is the dashboard.
Lead with the hook, escalate in the second breath. If the pitch starts sounding like a feature list, drop back to one line and let the buyer ask what is underneath.
You already ship five comparison pages. The enemy differs on each, and the sales motion should mirror that. Click to switch.
Click a card for the feature mapping and the reason for the rank.
Resellers and agencies are a channel, not a segment. The five-tier engine is built for them and currently has no landing page.
Three defects will waste any traffic you buy. Each one is small, and each is verifiable today. Click to expand.
Take a phone that has never messaged 601175957679. Send the exact hero prefill: "Hi, kek birthday ada ready stock tak? Nak esok". If what comes back is a list of other businesses' keywords instead of a cake conversation, your best call to action is leaking tenant names to strangers and killing every demo. That single test decides whether week one is a fix or a launch.
Everything funnels to one WhatsApp thread, and that thread is the demo. This is the whole strategy: the product sells itself by doing its job on the prospect.
Build one WaRobot-owned tenant matching the hero animation exactly. A prospect taps the call to action, sends the cake question, and gets the same thread they just watched, live, in their own WhatsApp, at whatever hour they are browsing. The bot quotes, upsells the RM15 topper, sends a real DuitNow QR for a token amount, then bridges: everything I just did, I do for your customers, 24 hours. Then it hands to Aria with SETUP.
Ship it in week one. Nothing else in this plan works until it exists.
Every channel ends at the same thread with its own prefill code, so attribution comes free without a pixel. Ordered by how much of the M3 target each can realistically carry. Click a channel for the detail.
The on-site work is already shipped. What remains is manual submission. Paste the canonical entity sentence verbatim into every description field. Tick as you go.
Run the same nine prompts across ChatGPT, Claude, Perplexity and Gemini on the first of each month. Thirty-six prompt-assistant pairs. Baseline in August, judge it in October, never in September.
| Bucket | Prompts run verbatim, every month |
|---|---|
| Discovery | Best WhatsApp AI chatbot for a small business in Malaysia · How can a Malaysian SME automate WhatsApp sales and collect DuitNow · AI sales agent for WhatsApp that speaks Bahasa Melayu · Alternatives to Wati for a small business in Malaysia |
| Entity accuracy | What is WaRobot · How much does WaRobot cost and what does it do · Does WaRobot collect DuitNow inside WhatsApp |
| Comparison | WaRobot vs Wati for a Malaysian SME · WaRobot vs SleekFlow for WhatsApp sales |
Record mention, position, description accuracy, and whether a link was cited. The trend matters more than any single run.
No human in the sales loop. The codebase makes that credible, because Aria is already a better onboarding rep than most humans, and it costs nothing per conversation.
| Stage | Owned by | Mechanism shipped today |
|---|---|---|
| Attract | Marketing surfaces | Five comparison pages, four industry pages, the guide, the case study, short video |
| Qualify and demo | Demo workspace agent | The prospect experiences the sale being made on them, which is the entire pitch |
| Handle objections | Same agent, knowledge-loaded | Load the five objections from Sales Playbook v1 into the demo workspace's knowledge documents. It is a knowledge base, not a prompt hack |
| Convert | Aria | SETUP to register_business to configure_agent to go_live |
| Monetize | Aria | subscribe and topup_credits return a payment link, confirm-gated with reply-YES |
| Onboard | Aria Phase B | A photo of a price list becomes knowledge through Claude vision. Zero friction, no developer |
| Expand | CRM and credits | Quota pressure drives plan upgrades. Track every workspace crossing 80 percent of quota |
| Retain | Retention campaigns | retention-cron.server.ts with inactive-day windows, plus CRM task reminders on the cron |
| Win back | Admin CRM churn board | Churn signals already exist. Wire one message to them and the loop closes |
| Refer | Aria | get_referral_link, triggered at the first settled sale |
The only human in this chain is you, weekly, reading ten sampled transcripts and approving playbook edits. That is quality control, not selling.
Lock RM49 forever, even after price rises. It costs nothing today and converts the price-anxious majority. Set a real end-of-month deadline, state it once, do not repeat it.
The committed numbers are the ones in blueprint.warobot.json, not a fresh estimate. That decision was made on 27 July and it tightens the economics considerably. Drag the sliders to see what the target actually demands.
The blueprint sets ARPU at RM74 and direct cost at RM18, so contribution is RM56 per customer per month. It also states CAC payback of about 1.3 months. Those two numbers together put the CAC ceiling at RM73, not the RM150 used in the earlier draft. Separately, the implied operating expense backed out of the profit line is RM3,800 in M1, RM4,800 in M2 and RM8,300 in M3. That is not an advertising budget. The blueprint assumes acquisition is almost entirely organic, referral and channel, and the arithmetic only closes if it is.
Straight from blueprint.warobot.json. Months 1 to 3 are the 90-day window this plan covers, and M3 is the number the whole plan is now written against.
| Month | Paying workspaces | New that month | MRR at RM74 | Net profit | Cumulative cash |
|---|---|---|---|---|---|
| M1 | 30 | 30 | RM2,220 | -RM2,120 | -RM2,120 |
| M2 | 80 | 50 | RM5,920 | -RM320 | -RM2,440 |
| M3 | 160 | 80 | RM11,840 | RM660 | -RM1,780 |
| M4 | 300 | 140 | RM22,200 | RM1,600 | -RM180 |
| M5 | 480 | 180 | RM35,520 | RM3,180 | RM3,000 |
| M6 | 680 | 200 | RM50,320 | RM5,880 | RM8,880 |
Cash-positive from M5. CAC payback stated as 1.3 months. M12 lands at 2,960 workspaces and RM219,040 MRR, roughly RM2.6M ARR run-rate.
Working backwards from the target. The earlier draft planned 1,500 demo threads across 90 days, which lands near 60 customers. The blueprint needs more than double that, or a much better conversion rate.
| Chat to paid rate | Demo threads needed over 90 days | Per month | Verdict |
|---|---|---|---|
| 3 percent | 5,333 | 1,778 | Not reachable organically in the window |
| 5 percent, the planning assumption | 3,200 | 1,067 | Reachable only with the channel carrying it |
| 8 percent | 2,000 | 667 | Comfortable, and the demo thread has to earn it |
| 12 percent | 1,333 | 444 | Pilot-like conversion on cold traffic, unproven |
Backing operating expense out of the blueprint profit line gives RM3,800 in M1, RM4,800 in M2 and RM8,300 in M3. Total tooling, salaries and spend. There is no room for a meaningful ad budget, and the CAC ceiling of RM73 confirms it.
| Cost per started chat | at 5 percent | at 8 percent | at 12 percent | at 15 percent |
|---|---|---|---|---|
| RM5 | RM100 | RM62 | RM42 | RM33 |
| RM8 | RM160 | RM100 | RM67 | RM53 |
| RM10 | RM200 | RM125 | RM83 | RM67 |
Green is inside the RM73 ceiling. Only two of twelve combinations clear it at a realistic cost per chat, and both require conversion the demo thread has never demonstrated on cold traffic. Paid advertising is a measurement experiment in this plan, not the engine.
The Reseller Network shipped on 24 July, with cross-workspace selling and a three-way money split. If resellers supply half of the 160, that is 80 workspaces. At five workspaces per reseller it means recruiting 16 resellers in 90 days. Recruiting 16 partners is a far smaller problem than doubling advertising traffic on an RM4,800 monthly budget, and it is the only version of this plan where the blueprint numbers and the blueprint opex agree with each other.
ADR-0005 takes a platform fee on every settled sales order and credits the net to sales_balance_myr. Track that separately from subscription MRR. If tenant GMV grows faster than subscriptions, the platform fee is the real business and the pricing model should follow the money.
Tick items as you ship them. Progress is tracked live in this page for the session, so screenshot it if you want a record.
A plan that hides its own weak points is a pitch, not a plan. These are the five that can break this one.
Send the hero prefill from a fresh phone. If a stranger gets the demo, launch. If a stranger gets a list of your tenants' keywords, you have found the reason your funnel has never converted, and week one becomes a two-day fix instead of a campaign. Everything downstream, the videos, the directories, the ads, is worth nothing until that thread works.
Everything above was read from the codebase on one day. Code moves, and a plan that quietly goes stale is worse than no plan, because it reads as authoritative while being wrong. This is the loop that keeps it honest.
Running the extractor against your local clone, which is itself 22 commits behind origin, already contradicts the product brief in three places. Aria has 24 concierge tools, not 22, because get_settlement_balance and request_payout were added. The customer agent has 13 tools, not 6, and three of the new ones are set_order_status, submit_booking_form and get_appointment_slots. There are 7 feature flags, not the 3 dark items the brief lists, including PAYOUTS_ENABLED and SALES_PAYMENT_LINKS_ENABLED. The booking tools alone move the services ICP up the ranking. That drift accumulated in weeks.
This is the rule that decides whether a code change touches the sales and marketing deliverables, or is just noise. Classify every line in the delta, then update only what the rule assigns. Filter by class.
| Signal that moved | Class | What must change, and how fast |
|---|
Run from anywhere. The script finds the repo and the GTM folder itself.
Then say: baca jobscope-delta.md, apa yang perlu berubah. The delta names the signals, the rubric decides the consequence.
Signals, not diffs. A thousand-line refactor that changes no signal is correctly ignored. One new tool name is not.
Never update a claim in this plan from a commit message. Update it from the signal. A commit that says "feat: voice notes" proves nothing shipped to a customer, and the guardrail list exists precisely because demoable truth is the moat. If the tool name is not in the extractor output and the flag is not on, it does not enter the pitch.