A wooden counter in a Malaysian small shop, a smartphone showing a WhatsApp thread with a customer, a desktop monitor in the background showing the Million ledger, and the coral-terracotta marketer mascot beside a small envelope marked 'WhatsApp'.
All posts
Marketing31 July 20266 min read

How to send WhatsApp messages from Million (the no-wait way)

The Meta Embedded Signup process takes 2–4 weeks. There is a faster path — and it is the one that reads your Million sales ledger while it is at it.

minidesk · Editorial team, minidesk

The Meta Embedded Signup process takes 2 to 4 weeks. The forms are long, the verification can be opaque, and every BSP you call quotes a different setup fee. There is a faster path, and it is the path where the WhatsApp you send already knows what your Million sales ledger says about the customer on the other end. The path is the same one the SQL Account users and AutoCount users are already on — the only thing that changes is the connector.

Why the BSP route is slow

The standard advice for a Malaysian small business that wants to send WhatsApp from Million is: sign up with a Business Solution Provider, get a WhatsApp Business API number, and let the BSP handle the Meta verification. The advice is not wrong. It is just slow. A typical flow is: choose a BSP, sign a 12-month contract, get a number ported or a new number assigned, submit the Meta Business verification, wait for the Meta review team, fix whatever the review team flags, get the API credentials, build the integration to your Million. Six to eight weeks, conservatively, before the first message lands.

The reason it is slow is not the BSP's fault. The reason is that the verification, the number, the API credentials, and the integration are four separate things, and most BSPs do not own all four. The verification is Meta's. The number is Meta's. The API is Meta's. The BSP owns the markup, the contract, and the support queue. The integration to your Million is yours — and Million has no API to integrate to, so the integration is a Windows agent on your own PC, which is exactly the layer the BSP does not provide.

What Embedded Signup actually is

Meta's Embedded Signup is the official flow for letting a software platform — like minidesk — connect a business's WhatsApp number to the Meta Business API without the business leaving the platform. The flow is: the platform opens a Meta-hosted signup window, the business picks the WhatsApp number they want to use, Meta verifies the number belongs to the business, the platform gets the API credentials, the conversation window opens. The whole thing, when the platform holds a Meta Business verification, takes about ten minutes.

The slow part is the verification. Meta wants to know that the business requesting the API access is a real business, with a real website, and a real reason to send WhatsApp messages. The verification is what stops a spam operation from buying a thousand numbers. The verification is also what most platforms do not hold, and what every BSP waits on. When a platform holds the verification already, the business does not have to apply for it. The platform already proved to Meta that the use case is legitimate. The business just has to prove the number is theirs.

The plug-in path: Million + minidesk + WhatsApp, in 20 minutes

minidesk holds the Meta Business verification. When you sign up and pick Million as your connector, three things happen in parallel: you install the Million translator on the PC that already runs the ledger, you connect your business WhatsApp number through Meta Embedded Signup, and you authorise the AI to read the Million sales ledger. The first message you send can be a template ("your invoice INV-XXXX is now due"), or it can be a free-form message the AI writes based on what it read in the ledger ("Hi Puan Tan, your July order is ready for collection. Outstanding balance: RM0. New order welcome."). The choice is yours; the connector does not care.

The install is signed, the firewall prompt is one click, and the data never leaves your machine. The translator reads the same .MDB / SQL Server file the desktop software reads, and only the answer leaves the machine, not the row, not the table, not the credentials. Meta sees the message you sent. minidesk sees the conversation. Your Million data stays on the PC in your shop.

What the conversation looks like in practice

A customer in Shah Alam — a regular who orders RM 800 of sundry stock every month — sends a WhatsApp at 8:30pm on a Saturday: "Boleh check balance?" The AI reads the phone number, identifies the customer from the Million debtor master, pulls the open balance, and replies in Bahasa Malaysia: "Selamat malam, baki terbuka anda adalah RM 1,240 merentasi 2 invois — INV-2025-07234 (RM 640, due 18 August) dan INV-2025-07412 (RM 600, due 28 August). Sila beritahu saya jika perlukan penyata." The reply lands at 8:30:14pm. Mr. Lee sees the thread on Monday morning. The customer has already received the answer, paid INV-2025-07234 via FPX, and sent a confirmation. The Monday morning starts with one less thread, not one more.

The wait was the part I could not afford. I was losing a sale a week to customers who messaged in the afternoon and got no reply until the next morning. Now the reply is the same minute, and it already knows the order.

Mr. Tan, who runs a small F&B outlet in Subang Jaya

What to do if you are already on a BSP

If your shop is already on a Business Solution Provider — WATI, SleekFlow, AiSensy, Twilio, MessageBird, or any of the long tail — the good news is the WhatsApp number and the API credentials are already in your business name, and Meta has already verified you. The migration is the part you are weighing, not the setup. The practical path is: keep the BSP contract running for one billing cycle while you set up minidesk in parallel. Connect your Million, install the translator, and let the AI read your data. Test the AI on a small set of conversations — say, the top 10 customers by balance — and compare the messages the AI drafts to the messages your BSP has been sending. When you are comfortable, switch the routing over and cancel the BSP at the next billing date.

Common mistakes when you set this up yourself

Three mistakes we see most often, all worth naming. (1) Connecting a personal WhatsApp number instead of a business number — Meta does not allow a personal number on the Business API, and the porting process is a separate project. (2) Trying to set this up before the chart of accounts is clean — the AI reads what is in the ledger, and a chart of accounts full of one-off accounts makes every answer longer than it needs to be. (3) Skipping the test phase — the first WhatsApp the AI sends should go to your own number, so you can see the layout, the language, the speed, before it goes to a customer. We have made all three of these mistakes ourselves; that is why the install wizard walks you through each one.

What it costs (and what it does not)

The Meta conversation fees are the same fees every platform pays. minidesk does not add a per-message markup on top of Meta's. The plan is a flat monthly fee that includes the AI, the channels, the translator, and the WhatsApp API. No per-conversation surcharge. No 12-month contract. No setup fee. The pricing is on the website; the quote is the quote.

If your shop is already on Million, the WhatsApp path is the part of the AI you will use the most, and it is the part that takes the least time to set up. Twenty minutes from signup to the first message. The bookkeeper does not have to do anything different. The customer does not have to download an app. The message lands in the WhatsApp they already have open.

→ See the Million integration: /integrations/million