WhatsApp messages to doctors, each backed by consent.

A healthcare group wanted to reach its doctors and staff on WhatsApp for organisational messages. The group is made of five separate companies: each needs its own consent and its own sender.

Sector
Healthcare
Practice
Systems integration
Year
2026
How it works
Group
Group companies5 senders
Contact importCSV
Incoming repliesMeta webhook
Messaging app
Every message backed by consent
Consent registerApproved templatesSender per companySchedulingAutomatic opt-outDomain-only access
Recipients
Doctors and staffWhatsApp
Consent registerGDPR
Opted outopt-out
In brief

We built a standalone Laravel and Filament app for the organisational WhatsApp messages a healthcare group sends to doctors and staff through Meta's WhatsApp Cloud API. Each contact has consent recorded for each of the group's five companies, and each company has its own sender. Anyone who replies with a stop keyword, or whom Meta flags with error 131050, is removed from sending automatically.

5
group companies, each with its own consent and sender
131050
Meta error code that triggers opt-out
2
company email domains allowed into the panel

Context

Doctors and staff work across different sites, often with several companies of the same group. The group wanted a direct channel for organisational messages, on a tool everyone already uses, without mixing it into its management systems.

The problem

Under data protection law the five companies are separate controllers: consent given to one doesn't cover the others, and the sender has to be the right one too. WhatsApp also has its own rules: starting a conversation requires Meta-approved templates, and people who have stopped marketing messages must really be excluded, not just flagged.

What we did

  1. 01

    A consent chain per company

    Each contact has consent recorded for every company they deal with. Each company sends under its own sender, so recipients always know who is writing to them.

  2. 02

    CSV import

    Contacts are loaded from CSV files, with consent tied to the right company.

  3. 03

    Scheduled campaigns with approved templates

    You pick the Meta-approved template, the sending company and the recipients, then schedule the send.

  4. 04

    Automatic opt-out

    Anyone replying with a stop keyword is removed from sending with no manual step. The same happens when Meta returns error 131050, meaning the user has chosen to stop receiving marketing messages.

  5. 05

    Restricted access

    The panel opens only for addresses on two company email domains. The app is kept separate from the group's other systems.

How it went

The group has a WhatsApp channel for organisational messages where every send is backed by recorded consent, the right company's sender and a simple way to stop receiving messages.

Tools

LaravelFilamentWhatsApp Cloud APIMeta BusinessCSV

FAQ

Can free-form WhatsApp messages be sent?

Only inside a conversation the recipient opened in the last 24 hours. Starting a conversation requires Meta-approved templates.

What does error 131050 mean?

It's the code Meta uses to report that the recipient has chosen not to receive marketing messages from that business. The app records it and stops writing to them.

Why a separate app rather than a module of the management system?

To keep consent, senders and Meta access keys in a single-purpose system that is simpler to control and audit.

Contact

Facing something similar?

Tell us what you run today and what isn't working. We'll reply within one business day with a first technical read.

Email
hello@cloudfactory.it
Address
Viale di Trastevere 114, 00153 Rome, Italy