AI Assistant (Copilot)
proChat with your live business data, act on it within your privileges, get proactive insights, and build manager-defined automations.
The AI Assistant is a chat copilot that knows your live business. Ask it a question in plain language — "how were sales last week?", "who has the most no-shows?" — and it answers from your real, up-to-the-minute data, then streams the reply word by word so you are not staring at a spinner. Because it is grounded in the same numbers that power your Analytics, the answer is always current and you never have to export, copy, or reconcile anything yourself.
The same module also powers proactive insights (things the AI spots without being asked) and automations (manager-defined routines that run in the background and report back).
The AI Assistant is a module (labelled AI Copilot & Automations). The AI page and every chat, insight, and automation endpoint require that module to be enabled for your organization. If you do not see the AI page in the sidebar, the module is not enabled — your Apolaris contact can turn it on.
Who can do this
| Capability | Who can use it |
|---|---|
| Ask questions / chat | Any signed-in user in an organization with the module enabled |
| Have the copilot act for you | Only if your account holds the specific privilege for that action (see Letting it take actions) |
| See proactive insights and the daily reviews | Users whose access covers the whole organization (managers, all-branch access). Insights describe every branch, so a person limited to some branches does not see them; the notification mirror goes to managers and whole-organization approvers |
| Dismiss / restore an insight | Managers (is_manager) and users with can_approve_vacation |
| Run a built-in routine | Managers with whole-organization access |
| Create, edit, run, or clone an automation | Managers only |
| Approve or reject a staged automation action | Managers only |
| Let the copilot send customer messages without confirming | Only users a manager has granted that privilege (see Auto-send) |
For the full list of privilege fields and what they unlock, see the privileges reference.
What it can do
- Answer questions about your business — sales, bookings, customers, staff, inventory, conversations, promotions, and more, scoped to the site (location) and organization you are currently in.
- Take actions for you — with the right privilege, the copilot can work across bookings, sales, leave, expenses, employees, sites, promotions, and even reach out to customers, all from the chat. See Letting it take actions.
- Compare yourself to competitors — map the competitors around each of your sites and get a grounded action plan with one-click Apply buttons, or (when web research is enabled) ask in chat how your prices, services, hours, and reviews stack up. See Competitor & market intelligence.
- Draft and send win-back campaigns — have the copilot draft a branded email campaign to a customer segment and send it only after you confirm, act on a revenue-dip insight in one click, or run it on approval-gated autopilot. See AI email campaigns & win-back autopilot.
- Review your Meta Ads and suggest new ones — how your Facebook and Instagram ads did against the previous period, what needs a decision, and a ready-to-review draft ad for the service worth promoting. See Questions about your Meta Ads.
- Keep WhatsApp under control — who is waiting for a person and for how long, chats the AI did not answer, numbers that need reconnecting, failed messages and this month's usage — and take a chat over or hand it back to the AI. See Keeping WhatsApp under control.
- Review your day for you — every morning a Meta Ads card and a WhatsApp card land on the AI board, with a one-click button that hands the follow-up to the copilot. See Daily reviews.
- Stream answers live — replies appear as they are generated, so long answers start showing up immediately. The stream also shows a short "what the copilot is doing" trail (reading data, checking availability, composing) while it works.
Answers respect what you can see. The copilot only reads data for your current site and organization — switch context first if you need a different view, see Switching site & organization.
Asking questions
- Open the AI page from the sidebar.
- Type your question the way you would ask a colleague, for example "compare this month's revenue to last month".
- Read the streamed answer. Ask a follow-up to drill in — the copilot keeps the thread of the conversation.
Conversations are saved per user. You can revisit earlier threads from the History tab, delete a single conversation, or clear them all.
Be specific about the period and the metric. "Top 5 services by revenue in May" gets a sharper answer than "how's business".
Questions about conversations and promotions
Alongside the operational data above, the copilot can answer read-and-analyse questions about your contact-center activity and your marketing:
- List recent conversations — "show me the open WhatsApp conversations from this week".
- Analyse conversations — "what are customers asking about most lately?" — the copilot reads the recent threads and summarises the themes, common questions, and sentiment.
- Promotion performance — "how did the May 10%-off code do?" — it reports redemptions and the revenue tied to a discount or promo code.
These are read-only insights; nothing is sent or changed when you ask them.
Questions about your cameras
If your organization has the Cameras & AI Vision module, the copilot reads the same evidence the camera pages show — never the appointment diary or the sales figures — when you ask what the cameras saw:
- A period, per site — "how were the services yesterday at Zentralia according to the cameras", "how many people came in this week", "any camera alerts over the weekend" — visitors counted at the entrance (with average stay), services observed at the chairs (and how many had no booking behind them), how many diary appointments the cameras actually witnessed, alerts and incident clips, and payments seen at the register. When the period reaches now it adds who is inside right now and the latest events.
- Right now — "are the cameras working", "which cameras are offline" — every camera's connection state in plain words, what your site staff can do about it, and which links the watchdog currently reports dark.
A site that recorded nothing is reported as no camera evidence — the cameras may have been offline — never as "no customers". Answers respect your branch scope exactly like the camera pages: a person who sees one location gets that location only.
Questions about your Meta Ads
If your organization uses Meta Ads, ask "how are my ads doing?", "which ad brings the most bookings?" or "what ad should I run next?". The copilot reads the same numbers as the Meta Ads page — chats counted from the ad taps Apolaris received, bookings and paid visits they led to, Meta's spend, cost per booking and return on ad spend — and puts each next to the previous period of the same length, so "is it getting better?" has an answer. It also tells you what needs a decision:
- the Meta connection needs to be renewed, or results have not synced for hours;
- Meta rejected an ad (with Meta's feedback);
- an ad spent money without a single chat, or brought chats but no booking;
- an ad's cost per booking is climbing, and which ad books at the best cost.
When you want a new ad, ask for it — "prepare an ad for pedicures in Centro" — or accept the copilot's suggestion (it picks your most booked service that no live ad already promotes). The copilot has the ad text written by the same grounded writer as the Meta Ads wizard: it uses your real services and prices, and your offer word for word — it never invents a discount. The Confirm card shows the headline and text; confirming saves them as a draft campaign. Nothing is published and nothing is spent: open the draft on the Meta Ads page, add a picture, check the audience and budget, and launch it yourself. Publishing, pausing and changing a budget always stay your decision on the Meta Ads page.
Keeping WhatsApp under control
Ask "how is WhatsApp going?", "who is waiting?", "is my number connected?" or "how many messages have we sent this month?" and the copilot answers from the contact center itself:
- Who is waiting for a person right now and for how long, against your reply target, and which chats the AI owns but has not answered;
- Every WhatsApp number: connected, waiting for a QR scan, or disconnected; whether its AI is switched on and attending right now; messages that failed or are stuck unsent;
- This month's usage against Meta's free replies per number (billed on official numbers from October 2026), where the month is heading, and whether a monthly step is restricting the AI — shown to managers and contact-center administrators, like the WhatsApp usage page;
- Templates Meta has not approved while a reminder or broadcast still depends on them;
- Yesterday and today: customer messages, replies by the AI and by your team (automatic reminders and broadcasts are counted apart), hand-overs by reason and appointments the AI booked.
To act on a chat, ask the copilot to take it over (the AI stops answering it), hand it back to the AI, or close it — the same as the toggle in the inbox, confirmed on a card first.
Features your plan does not include
The copilot knows which modules are part of your plan. Ask about something your organization does not have — cameras, the developer API, the contact center, customer journeys — and instead of improvising, it says plainly that the feature is not included, gives you the one-line pitch and the listed price when there is one, and offers to open the add-on request page where an administrator can ask for it. Asking switches nothing on and charges nothing; it opens a conversation with the Apolaris team (see Modules). Staff without administrator rights are told who can request it.
Navigate by asking
The copilot can also take you straight to a section. Ask things like "take me to missing sales", "open payroll", or "where do I review WhatsApp messages?" and it jumps you there and highlights the spot when you arrive — no hunting through menus.
- The reply shows a clear Take me there button, so you always see the destination before you move. On a computer it also forwards you automatically after a moment; on a phone it waits for your tap so you are never pulled away mid-read.
- This works the same in the floating copilot (the bubble in the corner) and on the full AI page.
If you are already on the right page, the copilot draws an on-screen pointer at the exact button or field instead of navigating.
Letting it take actions
The copilot can do more than talk. Every write action is permission-gated and intentionally stricter than the human UI: the copilot re-checks your account's privilege before touching the database (a second, authoritative gate on top of hiding the tool), is always scoped to your active organization, and re-runs the usual conflict, membership, and availability rules. It also asks you to confirm the specifics before it acts, and refuses to guess — if a customer or service name is ambiguous, it asks instead of acting on the wrong record.
The copilot's actions fall into two groups, handled slightly differently:
- Internal records (bookings, sales, expenses, leave, staff, locations, promotions) are written straight to your data once you confirm the details in chat — exactly as if you had entered them through the menus.
- Customer-reaching messages (replying to a conversation, or sending a customer a message over WhatsApp, email or SMS) are never sent automatically. The copilot prepares the message and shows you a Confirm & send card; nothing leaves your organization until you click it.
These are the actions the copilot can perform, and the exact privilege each one requires:
| Action | What it does | Privilege required |
|---|---|---|
| Create booking | Books an appointment after you confirm customer, service, staff member, date, and time. Creates the customer if they are new. | can_add_booking |
| Reschedule booking | Moves an existing booking to a new date/time and re-checks for conflicts. | can_edit_booking |
| Cancel booking | Cancels an existing booking (sets its status to cancelled). | can_edit_booking |
| Create customer | Creates a new customer record. | can_add_customer |
| Record sale | Records a sale for a completed booking; amount defaults to the service price if you omit it. | can_add_sale |
| Record expense | Logs an expense for a site. Managers' expenses auto-approve; others are submitted as pending. | can_submit_expense |
| Add staff member | Creates a new employee/user record. | Manager only |
| Add location | Creates a new site (location). | Manager only |
| Create promotion | Creates a discount / promo code. | can_manage_discounts (or any manager) |
| Turn on appointment reminders | Switches on WhatsApp appointment reminders at the hour offsets you ask for — "turn on appointment reminders 24 and 2 hours before". Mirrors the reminder settings page and is reversible there; requires the Contact Center module. | can_manage_settings (or any manager) |
| Request leave | Files a leave request for yourself. | Any staff member (own leave; a manager can file for someone else) |
| Cancel leave request | Cancels one of your own pending leave requests. | Any staff member (own requests only) |
| Check leave status | Looks up the status of your leave requests and balance. | Any staff member (own status; approvers and managers can check others') |
| Approve leave | Approves a pending leave request, updates the balance, and notifies the employee. | can_approve_vacation (or any manager) |
| Reject leave | Rejects a pending leave request and notifies the employee. | can_approve_vacation (or any manager) |
| Message a manager | Opens a private message thread to your manager(s) via the Staff Desk. | Any signed-in staff member |
| Reply to a conversation | Sends a reply in an existing WhatsApp / contact-center conversation. Confirm & send. Website chats are refused: a visitor only sees answers to their own messages there. | can_use_ccaas (or manager) |
| Take over / hand back a chat | Takes a customer conversation from the AI, gives it back to the AI, or closes or reopens it — the inbox's own toggle. | can_use_ccaas (or manager) |
| Draft a Meta ad | Saves an AI-written ad as a draft campaign on the Meta Ads page — never published, nothing spent. Your own branch only, unless your access covers the whole organization. | can_manage_meta_ads (or manager) |
| Send a message | Sends one customer a message over WhatsApp, email or SMS — a single action for all three channels; you pick the channel on the Confirm card. Confirm & send. | can_manage_settings for email, can_use_ccaas for WhatsApp and SMS (or manager) — each channel is offered only if your account may use it |
To use one, just ask in plain language — for example "book Maria for an appointment tomorrow at 3 pm" or "record a 500 supplies expense for Centro". The copilot confirms the details, checks your privilege and the rules, and either performs the action and confirms it in the chat, or tells you why it could not.
How the Confirm step works
For any customer-reaching message, the copilot does not send right away:
- You ask it to reach a customer — "reply to Ana that her appointment is confirmed".
- The copilot drafts the message and shows a Confirm & send card with the exact text.
- Click Confirm to send it, or Cancel to discard the draft.
When the message goes to one customer, the card also carries a Send via channel selector — WhatsApp, Email or SMS — pre-set to the best channel currently available for that customer, with the exact destination shown next to it. The copilot resolves the phone number or email from the customer's record itself, so you never have to supply contact details; switch the channel right on the card if you'd rather the message go another way. A channel that can't be used just then (say, WhatsApp without proactive messaging switched on, SMS not set up for your organization, or no phone on the customer's file) stays visible but disabled, with the reason.
The Confirm card is single-use and expires after about 15 minutes, so a forgotten draft never sends itself later. If you reload the page while a draft is still pending, the card re-appears so you do not lose it.
Internal records (a booking, a sale, an expense) are written as soon as you confirm the details in chat — only the outward customer messages get the separate Confirm & send card. This keeps everyday data entry fast while putting a deliberate gate in front of anything your customers will actually see.
Auto-send: letting trusted users skip the Confirm step
If a trusted user sends a lot of customer messages through the copilot, a manager can grant them Copilot: send customer messages without confirmation. With that privilege on their account, the copilot sends outward messages immediately instead of showing the Confirm card.
- This is a protected privilege — only a manager or administrator can grant it, in Users & privileges.
- It only removes the Confirm step for customer messages. Every action is still permission-gated and scoped to the user's organization.
- Leave it off for most users; turn it on only for people you trust to send customer-facing messages unattended.
The leave actions can both request and decide. Self-service is open to everyone: any staff member can request, cancel, and check their own leave through the assistant — and through the WhatsApp staff channel where enabled — with no special permission, exactly matching the web forms. Acting on someone else's leave stays a manager/approver decision (can_approve_vacation or a manager): approvers only see employees of their own sites, the copilot enforces ownership on every leave action, and an approval that would drive a paid leave balance negative is refused. See the HR leave flow for the full picture.
The copilot never bypasses your privileges. If an action is blocked, the fix is to grant the right privilege in Users & privileges, not to retry. See the privileges reference.
Cross-data impact
Copilot write actions touch the same downstream data as the human UI, because they reuse the app's own helpers:
- Recording a sale feeds Analytics and any loyalty/inventory effects of that sale, exactly as a sale entered by hand would.
- Creating or rescheduling a booking is subject to the same availability and assignment rules, so an AI-created appointment cannot double-book a staff member.
- Recording an expense flows into your expenses and the financial reports just like a hand-entered one (and follows the same approval rules).
- Approving leave adjusts the employee's leave balance and sends them a notification.
- Sending a customer message delivers a real WhatsApp, email or SMS. WhatsApp messages and conversation replies appear in the Contact Center history; an SMS is delivered directly and does not open an inbox thread.
In short, an action taken through chat is a real record with the same consequences as one entered through the menus — there is no "preview only" mode for write actions.
Using the assistant over WhatsApp
When your organization has WhatsApp enabled, recognised staff can chat with the copilot straight from their phone — no app, just your team's WhatsApp number. It is the same copilot, with the same privilege rules, available where your staff already work.
Before you can use it, you connect your own WhatsApp number to your account once. In Notifications > Preferences (or My profile), open the WhatsApp assistant box, enter your number, and confirm the 6-digit code that arrives on WhatsApp. This binds your number to your account so the assistant knows it is you. See Your profile for the step-by-step.
Once you are connected, message the organization's WhatsApp number from your enrolled phone:
- Ask a question ("how many bookings do I have tomorrow?") — the copilot answers right away, scoped to your privileges.
- Ask it to do something — for example file a leave request, check your leave status, or message your manager.
- For a sensitive action, the assistant first sends you a one-time code through a separate, secure channel (such as your authenticator app, an SMS, or email — never over WhatsApp itself) and asks you to reply with it. Enter the code and the action runs.
This extra check protects the most sensitive actions even if your phone is left unlocked, while everyday questions and low-risk requests stay quick.
What the assistant offers first
The first thing you get from the assistant — on your first message, whenever you greet it, or when you type menu — is a numbered list of everything it can do for you, built from your own privileges: your schedule, your leave balance and requests, filing or cancelling leave (with your organization's leave types and their notice periods), messaging your manager, talking to a person, and, when your account allows it, bookings, customers, sales and expenses. Reply with a number or just say what you need. The assistant never offers something it would then refuse.
When you ask for leave, the assistant uses your organization's leave types by name, asks in a single message for anything still missing (type, start and end date, reason), and then sends the verification code straight away — the code message reads every detail back to you, so it is the confirmation. Once confirmed, your managers are notified exactly as for a request filed in the app.
A manager can also connect your number for you from your employee page, so you never need to open the app: the one-time code arrives on your WhatsApp naming who started it, and you simply reply with it. See "Connect your WhatsApp" in Staff Desk.
The WhatsApp copilot is for staff working their own data — checking schedules, filing leave, and reaching a manager. Sending customer-facing messages (replies, customer emails, proactive WhatsApps) is not available over WhatsApp; use the web copilot for those so the Confirm & send gate applies.
If the assistant tells you it cannot send you a verification code, you need a way to receive one first. Set up an authenticator app, a mobile number, or a confirmed email on your account, then try the action again.
Proactive insights
You do not always have to ask. The assistant surfaces proactive insights — noteworthy trends, risks, and opportunities it spots in your data — on the AI page and in manager notifications.
How the computation works (worth understanding so you know what you are looking at):
- Insights are computed per organization and throttled — the system refreshes the set on a timer (or when a manager forces a refresh), not separately for every viewer. The stored insights are shared across the organization's managers.
- Insights retire on their own: a finding that stops being true — handled, solved, or superseded by a fresher day's numbers — is cleared on the next refresh, so the list shows what is true now rather than a history of past alerts.
- What is per-request is the language and rendering: the same insight is shown in the reader's current UI language. Switching languages does not trigger a regeneration.
- Insights are dismissible, and dismissal is audited: the system records who dismissed it and when, so a mistaken discard can be found and restored.
- Insight notifications deep-link: tapping one takes you straight to the page where the finding is acted on — not just to the AI page.
- Check the insights on the AI page or in your manager notifications.
- Act on the ones that matter, or click through to the relevant section.
- Dismiss an insight once you have dealt with it. You can review dismissed insights and restore one if needed.
Insights describe the whole organization — every branch's appointments, stock and revenue — so they are shown to people whose access covers every branch (managers, all-branch access) and mirrored to managers and whole-organization approvers. Someone limited to some branches does not see the board. Dismissing an insight affects the whole organization, so it stays a manager-level control.
Daily reviews
Every morning (from about 8:00 in your organization's time zone) the copilot reviews the features your organization uses and puts one card for each on the AI board, mirrored to your managers' notifications:
- Meta Ads — the last 7 complete days against the 7 before: chats, bookings, spend and cost per booking, what needs a decision (a broken connection, a rejected ad, money spent without chats, a climbing cost per booking) and an idea for a new ad. Its Plan an ad button asks the copilot to prepare that ad as a draft. An account with no ad activity only gets the idea on Mondays, not every day.
- WhatsApp — yesterday's conversations and who answered them, who is waiting for a person right now, disconnected numbers, failed messages and this month's usage against Meta's free allowance. Its Review with the copilot button opens the waiting chats with the copilot.
Each day's card replaces yesterday's, and you are notified once per day. The reviews only appear for organizations that have the AI Copilot and the feature itself (a Meta Ads connection or campaign; an active WhatsApp number). The same two reviews are also listed as built-in routines, so a manager can run one on demand or clone it into an automation that emails it on their own schedule.
Some insights are directly applicable: the daily competitor recommendations, for example, re-open a stored action plan whose steps carry one-click Apply buttons wired into the copilot's confirm flow. See Competitor & market intelligence for how that works.
Built-in routines
The assistant ships with built-in routines — read-only background jobs that summarise recurring work and report back. A routine that reads a module your plan does not include is not listed:
- Meta Ads daily review and WhatsApp daily review — the same reviews as the daily cards, on demand. Each is listed once your organization uses the feature (a Meta Ads connection or campaign; an active WhatsApp number).
- Sales dip detector — sites whose revenue fell sharply against the previous week, with a win-back suggestion.
- Camera daily review — yesterday's camera activity per site: visitors, stored clips, deep-review findings, and abuse alerts. See Cameras.
- Payment process verification — finds completed appointments without a recorded sale, and charges that deviate from list prices.
- Automatic business report — a daily snapshot of sales, bookings, per-site revenue, stock, and HR queues, written up as a short narrative.
- Payroll pre-check — verifies the latest payroll period for missing entries, zero/negative nets, and upcoming approved leave, so the monthly close has fewer surprises.
A manager with whole-organization access can run one on demand and read the result on the AI page. They are also useful as starting templates — see Cloning a routine below.
Building your own automations
Beyond the built-ins, managers can build their own automations in the AI Automation Builder on the AI page. An automation is a single definition made of a trigger, a data source, an optional alarm condition, a delivery method, and an optional guarded action.
Creating, editing, running, cloning, and toggling automations is manager-only (is_manager). Non-managers can, at most, see the existing automations read-only — they cannot configure or run them.
When you build an automation you choose:
| Part | Options |
|---|---|
| Trigger | On a schedule (hourly / daily / weekly / monthly), when something happens (a real-time event), or manual only |
| Data source | A Data Explorer dataset query, one of the built-in routines, or the business snapshot |
| Condition (the alarm) | Optional. Fire only when a metric crosses a threshold — e.g. a row count, a measure (sum/avg/max/min), or a percentage change, compared with greater-than / less-than / equals, etc. |
| Delivery | In-app notification, email with the report attached (PDF, Excel .xlsx, CSV, Word .doc, or full-detail JSON), or a raised insight — and whether to deliver every run or only when the alarm fires |
| Recipients | Managers, only you, or specific people |
| Action | Optional. A guarded follow-up action (e.g. send a message, create a task, call a webhook) that runs behind an approval queue |
Drafting an automation with AI
You do not have to assemble all of that by hand. Describe what you want in plain language and the builder will draft a configuration for you — for example, "email me an Excel report every Monday morning when last week's sales drop more than 10% versus the prior week." Review the draft, adjust anything, then save. You can also ask the builder for suggestions of useful automations based on your business.
Live preview
Before you save, run a live preview to see what the automation would produce against your current data, including whether the alarm condition would fire. Use this to confirm the threshold is set where you want it.
Cloning a routine as a template
The built-in routines are read-only examples. To base a new automation on one, clone it: this copies the definition into a new, editable automation that you own and can tune (change the schedule, add a condition, change delivery). The original built-in stays intact.
Exporting a definition
You can export an automation's definition (for backup or to recreate it elsewhere) in several formats.
The action-approval queue
Automations can do more than report — they can be configured with a follow-up action. To keep automation from making outward-facing or privileged changes unattended, any such action is staged for manager approval rather than executed automatically.
- A staged action is queued as a pending approval with a human-readable preview of exactly what will happen.
- A manager reviews the queue and approves or rejects each one. Only on approval is the action carried out.
- Each decision records who decided and when, and a staged action can expire if it is not actioned.
Treat the approval queue as a real safety gate. An approved action mutates live data with the same consequences as doing it by hand. Read the preview before approving, and remember that the running automation's effects (sales, bookings, notifications) ripple into Analytics, leave balances, and other downstream data just like manual changes do.
When AI is not configured
The assistant degrades gracefully if the deployment's AI service is not set up. The AI page still loads (it knows whether AI is configured), and AI-powered features — chat, AI report drafting in Data Explorer, AI drafting in the contact center — return a clear "AI is not configured" message rather than failing with an error.
If chat or AI drafting returns an "AI is not configured" message across the product, the AI backend has not been provisioned for your deployment. This is a platform setup matter — contact your Apolaris representative rather than a privilege you can grant yourself.
Tips
Treat the copilot as a faster front door to the product — "show me unpaid sales this week" can be quicker than navigating the menus, and it links you straight there.
Use proactive insights as a morning routine — glance at them when you open the day to catch problems early.
Start your first automation by cloning a built-in routine and adding a condition — it is the quickest way to learn the builder without designing a query from scratch.
Why it helps
Most reporting tools make you go find the answer; the assistant brings it to you, in plain language, from live data, and can act on it within the privileges you set. Add proactive insights, manager-defined automations, and a copilot your staff can reach from WhatsApp, and the routine work happens on schedule — with the same permission rules and approval guardrails your team already trusts.