A wooden counter in a Malaysian accounting firm in PJ, a smartphone showing a WhatsApp thread with a client, a desktop monitor in the background showing the Access UBS ledger, and the coral-terracotta marketer mascot holding a small envelope marked 'WhatsApp'.
All posts
Marketing31 July 20267 min read

How to send WhatsApp messages from Access UBS (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 Access UBS 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 Access UBS sales ledger says about the client 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 accounting firm that wants to send WhatsApp from Access UBS 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 Access UBS. 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 Access UBS is yours — and Access UBS has no API to integrate to, so the integration is a Windows agent on your own server, 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: Access UBS + minidesk + WhatsApp, in 20 minutes

minidesk holds the Meta Business verification. When you sign up and pick Access UBS as your connector, three things happen in parallel: you install the Access UBS translator on the server that already runs the ledger, you connect your firm's WhatsApp number through Meta Embedded Signup, and you authorise the AI to read the Access UBS data. 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 Encik Lim, your July management accounts are ready for review. Please let us know if you would like to schedule a call this week."). 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 server. 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 Access UBS data stays on the server in your office.

What the conversation looks like in practice

A client in Subang Jaya — a trading company with 8 staff — sends a WhatsApp at 9:14pm on a Saturday: "Salmah, boleh check balance saya?" The AI reads the phone number, identifies the client from the Access UBS debtor master, pulls the open balance across all 120 client sets, and replies in Bahasa Malaysia: "Selamat malam, baki terbuka syarikat anda adalah RM 12,840 merentasi 3 invois — INV-2025-08142 (RM 4,200, due 12 August), INV-2025-08234 (RM 3,640, due 28 August), dan INV-2025-08412 (RM 5,000, due 15 September). Sila beritahu saya jika perlukan penyata." The reply lands at 9:14:23pm. Pn. Salmah sees the thread on Monday morning. The client has already received the answer, paid INV-2025-08142 via FPX, and sent a confirmation that the AI has already written back to the Access UBS follow-up notes. The Monday morning starts with one less thread, not one more.

We were paying RM 1,400 a month for a BSP and we still had to type the WhatsApp messages ourselves. Now the AI reads the UBS, writes the message, and shows me the queue. I just approve.

Pn. Salmah, partner at a 4-partner accounting firm in Petaling Jaya

What to do if you are already on a BSP

If your firm 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 firm's 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 Access UBS, install the translator, and let the AI read your data. Authorise the Meta Embedded Signup for your existing WhatsApp number through the minidesk console — the number is yours, the verification is yours, the migration is a settings change at Meta, not a new application. Test the AI on a small set of conversations — say, the top 10 clients by fee — 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 client. 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 firm is already on Access UBS, 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 clerk does not have to do anything different. The client does not have to download an app. The message lands in the WhatsApp they already have open.

→ See the Access UBS integration: /integrations/access-ubs