Technical product document
Aesthetic clinic management system specifications
Bia brings 15 areas for aesthetic clinic operations together: scheduling, clients, records, operations, WhatsApp service and subscription billing in a multi-tenant web application.
This page describes contracts that can be checked in the code: what each area handles, which integrations require a connection, and where product promises end. It is a technical reference, not a parallel offer.
- 15 real product areas described from the application
- Public content is server-rendered and does not depend on JavaScript
- Clinic isolation uses sessions, tenant filters and RLS
- External integrations expose their connection and state explicitly
Online scheduling
The calendar organizes the week by day, time, service and professional in the clinic's configured time zone. An appointment can be created, rescheduled, cancelled, completed or marked as a no-show.
Every confirmation creates 24-hour and 2-hour reminders. The waitlist stores the client, service, professional and preferred date range to use a compatible opening.
WhatsApp inbox
The inbox brings conversations, messages, media, contacts and delivery states into one screen. Real-time updates and guarded polling prevent an older response from replacing a newer conversation.
The team can take over a conversation, return it to AI, send a reply and follow the history without changing tools.
Clients and CRM
The client area supports search, editing, import, export and reinforced merging of duplicate records. Source, stage and history track the relationship without confusing CRM with clinical records.
Packages, points, referrals, clinical photos and service records remain attached to the right client.
Intake forms and clinical records
Digital intake forms use sections, questions, consent text, sensitive fields and immutable published versions. The clinic generates a temporary link, receives the form, checks the client match and can export an audited PDF.
The clinical record follows care over time: notes, terms, allergies, products used and clinical photos stay in the client history. The workflows connect, but they do different jobs.
Services, packages and sessions
The catalog stores each service's duration, price and active state, plus promotions governed by the clinic's time zone. Packages group sessions and monthly plans into a treatment with a controlled balance.
The client record shows the sale, remaining balance and each use; retrying the same operation must not consume the same session twice.
Products and point of sale
The point of sale builds a cart, links a client and professional, records payment and completes the sale. The catalog controls price, cost, minimum stock, expiry and active state.
Sales and margin indicators retain cancellation history instead of splitting products from inventory into an artificial search page.
Inventory and supplies
Supplies use normalized units and attach to the technical recipe for a service. That recipe defines how much material is used when an appointment is completed.
Inventory exposes quantities and replenishment needs; the shopping list comes from operational use, not a number invented for this public page.
Professionals and resources
The clinic registers staff, sets weekly availability and links each professional to the services they perform. Blocks can affect one person or the entire schedule.
Rooms and equipment are operational resources, so capacity, time and service can be organized together.
Commissions and goals
Completed services and product sales form the revenue attributed to each professional. The report separates both bases, applies configured rates and tracks the monthly goal.
An open preview comes before closing. Once closed, rates and amounts are frozen in an immutable snapshot for payment review.
Financial control
Finance separates the daily cash book, accounts payable and monthly reporting. Income, expenses, filters, payments and cancellations remain identifiable instead of becoming only a final balance.
The income statement and monthly cash flow follow the clinic's period and time zone, while closing records what has been reviewed.
Marketing automation
Campaigns begin with a segment and a preview of the audience. The clinic chooses the content, schedules execution and follows progress from real jobs.
Seasonal templates help start the work, while WhatsApp limits and controls against unsafe bulk sending remain in force.
Operational alerts
When the receptionist or platform needs a person, an alert appears with severity and state. The team can acknowledge it, resolve it or follow the required action, such as updating payment.
A failed refresh does not pretend that the list is empty: the screen separates the last completed state from what could not be confirmed.
AI receptionist
The receptionist screen shows the active instance, WhatsApp language and configuration versions. The clinic can test, publish, pause and roll back to an earlier version.
AI does not remove human control: conversations can be taken over in the inbox and publishing happens only after review.
Plans and subscription
Subscription management shows status, reply consumption, billing cycle, currency, invoices and billing operations. Upgrades, extra reply packs, the payment portal and cancellation use the same server state.
Commercial conditions still come from the billing configuration displayed at sign-up; this page does not freeze a parallel offer.
Settings and security
Settings cover the time zone, scheduling and reminder policies, Google Calendar and controls against WhatsApp blocking. Sessions, MFA, staff and the block list live in the same administrative area.
These choices change other screens, so they are product utilities rather than a standalone SEO page.
Integrations and external contracts
WhatsApp service uses a configurable adapter: when Evolution API is configured, messages, media, delivery states and handoff follow that contract. An open circuit, opt-out or block stops sending when the protection requires it; delivery outside the provider is not promised.
Google Calendar provides connection, status, disconnect and on-demand sync. Authorization can expire or be revoked, which requires the clinic to reconnect. Subscription billing supports the providers present in the backend, such as Stripe and Asaas; POS payment methods are a separate boundary.
Clinic isolation and security
Authenticated operations carry the session tenant. The API combines explicit tenant_id filters with Row-Level Security, and the code checks record ownership before changing clients, sales, packages or clinical records.
The public page never reads a clinic's data. Clinical records, forms, conversations, contacts, invoices and reports stay behind authentication; this page documents behavior rather than exposing real records.
What the system does not do
Published limits prevent a poor-fit purchase and make clear what still depends on human operation or a future product change.
- There is no persisted RSVP state: 24-hour and 2-hour reminders do not mean that a client answered the confirmation.
- It does not replace fiscal accounting, bank reconciliation, payroll or tax obligations.
- WhatsApp delivery depends on Evolution and provider configuration; guaranteed delivery and elimination of blocks are not promised.
- Google Calendar does not sync without authorization: a revoked or expired connection must be restored.
- There is no unlimited public booking outside the clinic's availability, service, professional and conflict rules.
- Price, plan and commercial terms come from runtime billing configuration; this page does not freeze an offer.
- There are no invented testimonials, success stories or customer counts to fill a social-proof gap.
- Clinical data is not published here and must not be placed in URLs, links or public copy.
Technical questions
Frequently asked questions about the public architecture
How are data from different clinics isolated?
The session identifies the tenant and the API applies explicit tenant_id filters together with Row-Level Security; the public page exposes no clinic records.
Which integrations exist today?
The code includes a WhatsApp adapter for Evolution API, Google Calendar connection, and subscription billing with configured providers including Stripe and Asaas.
Does the system store a client's confirmation response?
No. It sends 24-hour and 2-hour reminders, but it does not persist RSVP state; that is a documented limit, not a promise.
Does Bia guarantee WhatsApp message delivery?
No. Delivery depends on the provider and opt-out, block and circuit controls; Bia does not promise to eliminate external failures or blocks.
Does Bia replace accounting or fiscal software?
No. Finance organizes cash, bills, closing and operational reports, but it does not replace fiscal accounting, bank reconciliation or payroll.
Test the limits with your workflow
Create an account, configure real services and hours, and see where Bia helps — and where your team still decides.
Create an account