All documentation
Integrations & API

WhatsApp: what it would take

Sending assignments and messages to WhatsApp and getting replies back — what Meta allows, what it costs, and the design that fits BuildFlow.

Updated 7 September 2026

Not built yet

This is a design and a costing, not a feature you can switch on. It is here because it is the integration people ask for most, and because the constraints are unusual enough to be worth knowing before you commit to it.

Builders and subcontractors already live in WhatsApp. Asking them to check a second app is the single biggest thing standing between BuildFlow and being used properly. Pushing assignments and messages into WhatsApp — and pulling replies back — closes that gap.

The good news is that it is genuinely possible and, for this use case, close to free. The catch is that WhatsApp is not email: you cannot simply send what you like.

The four rules that shape everything

  1. 1.You cannot message someone out of the blue. Outside a conversation, only a pre-approved template may be sent. Templates are submitted to Meta and reviewed, usually within a day.
  2. 2.Opt-in is required before any template is sent, and it must name your business and say what you will send. A tick-box during client onboarding covers it, and it has to be recorded.
  3. 3.The 24-hour customer service window. Once somebody messages you, you have 24 hours to reply with free-form text — no template, no charge. After that it is templates only again.
  4. 4.Templates are categorised, and the category decides the price. Ours are almost all *utility* — a notification about something the person already has a relationship with.

What it would cost

Meta charges per delivered template message, by category and country. UK rates at the time of writing:

CategoryUK rateWhat it covers
Utility~£0.016Task assigned, snag raised, inspection booked, document needs approval
Utility inside the 24-hour windowFreeAnything sent while the conversation is live
Service (your reply in the window)FreeAnswering somebody who messaged you
Marketing~£0.038Anything promotional — we would send none of these

For a builder running five jobs, that is pennies a week. A subcontractor who replies to a message opens a 24-hour window in which everything else you send them is free, so an active job costs close to nothing.

The platform fee is the real cost

Meta's own rates are only half of it. Going direct on the Cloud API means no markup but building and hosting the integration; going through a provider like Twilio or 360dialog means a monthly fee and often a per-message markup, in exchange for far less work. For one company on modest volume, the provider fee will dwarf the message cost.

What you would need before any of it works

  1. 1.A Meta Business account, verified. Verification needs company documents and takes days, not minutes.
  2. 2.A WhatsApp Business Account and a phone number that is not already on WhatsApp — a new number, or one migrated off the consumer app.
  3. 3.Templates written and approved, one per notification type.
  4. 4.Opt-in captured and recorded for every person who will receive messages.
  5. 5.A public webhook endpoint for inbound messages and delivery receipts.

How it would work in BuildFlow

Going out

BuildFlow already queues every notification — notifications.pushed_at is how web push knows what it has delivered. WhatsApp would be a second channel draining the same queue, so nothing about how notifications are created would change.

  1. 1

    A notification is created

    Somebody assigns a task, raises a snag, or posts to the thread — exactly as now.

  2. 2

    The queue is drained

    For each recipient with a verified number and an opt-in, the matching template is filled and sent.

  3. 3

    Delivery is recorded

    Meta's receipts come back by webhook, so a failed send is visible rather than silent.

Coming back

This is the half that makes it worth doing. A reply arrives on the webhook, and the number is matched to a person; the message is posted to the project thread under their name, so it appears in BuildFlow as though they had typed it there.

Which project a reply belongs to is the interesting problem, since one person may be on several. Three options, in order of how well they work: the template carries a reference the reply quotes; the person is on only one active job, so it is unambiguous; or BuildFlow asks them which job they mean.

Where FlowAI fits

A reply of "can't get on site till Thursday, steels are late" is a programme change written as a sentence. FlowAI already turns a message into a proposed task or snag for the builder to confirm — a WhatsApp reply would land in the same place and get the same treatment.

Photos sent on WhatsApp would come through the same webhook and attach to the message, which is how most site photos would arrive in practice.

The templates we would need

WhenCategoryRoughly
Task assignedUtility"{{name}}, you've been assigned '{{task}}' on {{project}}, due {{date}}."
Snag raisedUtility"A new snag was reported on {{project}}: {{title}} ({{room}})."
Message postedUtility"{{author}} posted on {{project}}: {{preview}}"
Approval neededUtility"{{document}} on {{project}} needs your approval."
Inspection bookedUtility"{{inspection}} is booked for {{date}} on {{project}}."

Each ends with a line telling the recipient they can reply here, which is what opens the free window and makes the whole thing conversational rather than a broadcast.

Direct or through a provider

Meta Cloud API directA provider (Twilio, 360dialog…)
Message costMeta's rate onlyMeta's rate plus a markup
Fixed costNoneA monthly fee
Work to buildMore — templates, webhooks, retriesLess — an SDK and a dashboard
Template managementBy hand or by APIUsually a UI
Worth it whenYou are technical and want the marginYou want it working next month

For a first version, a provider is the sensible choice: it removes the parts most likely to go wrong and the fee is knowable. Moving to the Cloud API later is a change of transport, not a redesign.

What would make it not worth doing

  • Nobody opts in. Templates cannot be sent without it, and an integration that reaches a third of your team is worse than none, because you stop trusting either channel.
  • Replies cannot be attributed. A number that matches no profile has to be dropped or held for review; silently discarding a subcontractor's message would be the worst failure this could have.
  • Web push is already enough. It is free, already built, and reaches a phone the same way. WhatsApp earns its place only for people who will not install the app — which, to be fair, is most subcontractors.

Doing it in stages

  1. 1.Outbound only, one template. Task assignment. Proves opt-in, approval and delivery with the least to go wrong.
  2. 2.Inbound replies. The webhook, number matching, and posting to the thread.
  3. 3.The rest of the templates, once the shape has survived a real job.
  4. 4.Photos in, and FlowAI on replies.

Try it on a real job

The free plan runs one project end to end — the fastest way to find out whether any of this fits how you work.

WhatsApp: what it would take — BuildFlow documentation · BuildFlow