Bia

Relevant relationships, careful sending

Marketing automation for aesthetic clinics

Bia lets a clinic build campaigns for its eligible base, for clients who have not returned for a chosen number of months, or for people who bought a product. Before saving or scheduling, the clinic previews the audience; afterwards it follows sent, pending, skipped and failed jobs within WhatsApp limits.

A campaign is different from an automatic appointment reminder. The team chooses the message, defines an audience from clinic data and decides whether to save a draft or put the execution in a queue. The server validates the segment, keeps tenants isolated and checks eligibility again before each send.

  • Segments based on procedure or product history
  • Audience preview before sending
  • Draft, scheduling and status tracking
  • WhatsApp limits and suppression respected

Segmentation starts with the history the clinic already has

A campaign can reach all eligible clients, people who had a service and have not returned for the chosen number of months, or people who bought a particular product. The form loads only active services and products from the clinic, and the API confirms the resource before accepting the segment.

Selection excludes people who opted out, are blocked, have no usable phone, disabled follow-up or are on the suppression list. The server applies these filters; selecting an option cannot re-enable a contact removed by policy.

  • Full base or behavior-based slice
  • Service and product belong to the same tenant
  • Opt-out, block and suppression stay out

The preview shows the audience before a send is committed

The preview button uses the same criterion used to create the campaign and returns a count plus a small name sample. The owner can notice a wrong service or an unexpectedly large audience before writing the message.

The preview reports when the safe ceiling of 1,000 recipients caps the query and shows no more than five sample names. It does not create a campaign or schedule a job; it is an audience check, not a delivery promise.

  • Count and sample before saving
  • Warning when 1,000 is reached
  • Marketing capability checked by the API

Drafts and seasonal templates speed up the first message

The clinic can save a draft or choose a Mother's Day, Valentine's Day, Black Friday, Christmas or New Year's template. The template fills a name and message but remains editable; no date is guaranteed to fit every clinic.

The contract accepts a name of at least two characters and a message between five and 1,000 characters. Validation runs in the controller, and the campaign is associated with its tenant and creator for the audit trail.

  • Five editable seasonal templates
  • Message capped at 1,000 characters
  • Creation recorded in the audit trail

Scheduling puts each recipient into a controlled queue

When starting, the API recalculates the segment, rejects an empty or over-1,000 audience and creates one job per recipient. Without a future date the queue starts now; with a valid future date it uses that instant as its base. A past date does not send retroactively: execution starts from the current time.

The campaign moves from draft to sending and each job stores the approved message. The engine can mark a job sent, skipped or failed and completes the campaign when no pending or claimed jobs remain. The status shows server work, not a WhatsApp delivery estimate.

  • One job per eligible recipient
  • Future schedule or immediate start
  • Status derived from the real queue

Channel limits are part of the campaign

Clinic settings define hourly and daily message ceilings. The scheduler spreads jobs below those values and the engine's atomic counter is the final barrier before sending; when a ceiling has been consumed, a job is skipped or retried according to the engine flow.

Quiet hours prevent a campaign from sending during the configured period. At processing time the engine checks the instance, subscription and contact eligibility again. This reduces unsafe sends but does not turn WhatsApp into a guaranteed-delivery channel.

  • Clinic-specific hourly and daily ceilings
  • Distribution below anti-blocking limits
  • Quiet hours and eligibility checked again

Progress exposes the result without hiding failures

The campaign list shows the summarized segment, scheduled time and sent, pending, skipped and failed counters. Progress is calculated from the target total, and the campaign completes when the queue has no pending or claimed work.

The module currently has no button or endpoint to cancel a campaign already placed in sending. If that objection matters to the operation, it needs a separate evolution; this page does not promise pausing, cancellation or conversion reporting that the code does not provide.

  • Counters come from real jobs
  • Failures remain visible
  • No cancellation or automatic conversion today

What marketing automation solves — and what stays separate

Bia organizes segmented campaigns and a safer queue; the clinic remains responsible for the message, consent and commercial interpretation.

  • Campaigns use eligible contacts with a phone and operational opt-in; they do not buy lists or create consent.
  • The preview shows a count and sample but cannot guarantee that everyone receives or reads a message.
  • The engine applies limits, quiet hours and suppression; it does not promise unlimited sending or delivery.
  • This version has no in-flight campaign cancellation or automatic sale attribution.
  • Copy, offer, legal review and response follow-up remain team decisions.

Frequently asked questions

How marketing campaigns work in the daily routine

Can I message every client?

You can choose the full base, but only eligible clients enter: they need a phone, no opt-out or block, active follow-up and no suppression entry. The server applies the filters again when starting.

How do I know how many people will receive it?

Preview the segment. It returns a count, says whether the 1,000-recipient ceiling was reached and shows up to five names before the campaign is created or scheduled.

Can a campaign start immediately?

Yes. Starting without a future date creates jobs from the current moment. A future date schedules the base; a past date does not trigger retroactive sending.

Does WhatsApp send everything at once?

No. The engine spreads the queue across hourly and daily limits, respects quiet hours and checks eligibility before each send. Delivery is not guaranteed.

Can I cancel after starting?

Not yet. The current version shows progress and failures but has no cancellation button or endpoint; that need must be assessed as a separate evolution.

Preview your first audience before sending

Create an account, check the clinic data and use the preview to decide whether a campaign fits your next action.

Create my account
UK Marketing automation for aesthetic clinics | Bia