Guide · Outlet owners
Ask about revenue, your agenda, or who to follow up with, and have a promo or class drafted, from the AI app you already use. Bukujanji provides a per-outlet MCP server; you choose the AI app and you grant the permissions.
AI Connections links a third-party AI app (for example ChatGPT, Claude, Gemini, or Grok) to ONE Bukujanji outlet through the MCP protocol (Model Context Protocol). Once connected, the AI app can call a set of tools we provide to read outlet data and, if you allow it, create or change some of it.
AI Connections is for outlet owners, not for customers. You choose and pay for the AI app yourself; Bukujanji only sends the data that app requests, within the permissions you grant.
WhatsApp reminders and the WhatsApp Inbox work from the outlet's own WhatsApp number and require the Easy Booking by WhatsApp add-on.
Each outlet has its own server address, ending in the outlet slug. One connection covers one outlet; for another outlet, use that outlet's address.
https://api.bukujanji.com/mcp/{outlet-slug}If a message says the outlet has no slug yet, set the outlet's site address in Website CMS first. A server address without a slug (…/mcp) is not served.
Every AI app uses the same flow: paste the outlet's server address as a connector, sign in with the owner account, then read and approve the consent screen. Menu names in each app can change over time; follow the provider's official instructions if they differ from what is written below.
Claude (claude.ai): open the Connectors settings, add a custom connector, name it, and paste the outlet's server address. Finish sign-in and consent in the Bukujanji window that opens.
ChatGPT (chatgpt.com): turn on Developer mode in settings, then add a custom connector/plugin, paste the outlet's server address, and choose OAuth authentication. This depends on your ChatGPT plan and is set up on the website, not in the mobile app.
Other MCP clients (Gemini, Grok, or any other MCP app): add a remote MCP server (Streamable HTTP) with the outlet's server address and OAuth authentication. The client registers itself automatically (dynamic client registration). Not every plan or region of a provider allows custom connectors.
When the Bukujanji sign-in page appears, sign in with the owner account of the outlet whose address you pasted. If the browser still holds a session for another account, the request is refused and the AI app often shows only a generic message such as "connection can't be made". Sign out of the old session and try again.
On the same screen you can pick a saved "Role", if the outlet has one. A role sets the connection's permissions, so the manual ticks are ignored.
| Permission | Meaning |
|---|---|
| outlet:read | Read outlet data: schedule and bookings, customers, reports, catalogue and prices, promos, classes, follow-ups, and the wallet (amounts only). Always on. Revoke the connection to shut it off. |
| catalog:write | Set up master data: create services, tables/courts, weekly classes, rooms, staff, and packages; set opening hours, refund/reschedule policy, holidays, and blocked time; change the price, name, description, and capacity of existing items; activate or deactivate items. |
| promos:write | Create promos and voucher codes, with limits: discount at most 50% or Rp 1,000,000, valid at most 90 days, vouchers always with a quota. |
| bookings:write | Book a class seat from a customer's active package, move a class booking to another session, cancel a booking with a reason (the refund follows the outlet's policy), and mark attendance. |
| customers:write | Register new customers (with children/participants at class outlets), add a child/participant to an existing customer, and add customer notes. |
| messages:write | Send templated WhatsApp reminders (booking reminder, package expiring, low quota) to one customer per call, from the outlet's WhatsApp number. |
| inbox:write | Read the WhatsApp Inbox (customer names, numbers, and CHAT CONTENTS are sent to the AI provider) and reply to one chat after you approve the exact text. Off unless you tick it. |
You can change write permissions at any time under Settings → AI Connections → "Change permissions" on that connection, without reconnecting. Changes take effect after about a minute.
Read tools change nothing and may be called by the AI app at any time, within the connection's permissions.
| Tool | What it does |
|---|---|
| get_outlet_context | Outlet profile: name, time zone, opening hours, and the list of active services, courts, and classes with their ids. |
| explain_capabilities | Explains what can and cannot be done through this connection. |
| get_agenda | The agenda for one date or a range of up to 7 days: class sessions with participants and seats left, service/court visits, package purchases, and cancellations. |
| check_availability | One day's occupancy: opening hours, closures, blocked time, staff leave, and free seats. |
| get_booking | Details of one booking by transaction code, including the money breakdown (subtotal, discount, total, paid, remaining). |
| search_customers | Search or list customers with filters (not visited for N days, a given class, has an active package, and more), and count them. No dates of birth or notes. |
| get_follow_ups | Ready-made lists of who needs attention: unpaid bookings, packages about to expire, low quota, customers who have not visited, tomorrow's sessions. |
| get_report_summary | Reports per period with the same figures as the Reports/Sales menus in the dashboard (revenue, bookings, per service, per employee, payment method, and more). |
| get_price_list | Price list: services with variants, table/court rates, class prices, and special prices. |
| get_promotions | Promos and voucher codes: amount, quota used, validity, and status. No customer data. |
| get_classes | Classes with their recurring schedule, instructor, capacity, and price. |
| get_wallet | The outlet wallet, read-only: balance, held balance, recent movements, and recent withdrawals. No bank account numbers. |
| get_setup_status | Readiness of a new outlet: what is still missing and the undecided refund/reschedule policy risks. |
| get_whatsapp_inbox | Read the chat list and chat contents of the WhatsApp Inbox. Requires the inbox:write permission. |
| request_capability | Record a request that cannot be fulfilled as a feature candidate for the Bukujanji team to review (without customers' personal data). |
Every write tool works in TWO STEPS. First, the AI app calls the tool without confirmation and receives a preview of exactly what would be created or changed, with a confirmation code. That preview is shown to you. Only after you approve it in the conversation does the AI app call again with the same arguments plus the confirmation and the code. The code is computed from the preview, so a change that differs from what you saw is rejected.
| Tool | What it does | Permission |
|---|---|---|
| create_service | Create a new service with price variants. | catalog:write |
| create_court | Create a new table/court/rental space with rates. | catalog:write |
| create_class | Create a new class with a weekly schedule; sessions are generated automatically. | catalog:write |
| update_catalog_item | Change the price, name, description, online-bookable status, and class capacity of an existing item. Does not change class schedules or categories. | catalog:write |
| set_catalog_item_status | Deactivate or reactivate a service, court, class, promo, or voucher. The data stays. | catalog:write |
| setup_outlet | Fill in opening hours, rooms, staff, staff working hours, staff-service links, packages, refund/reschedule policy, holidays, and blocked time. | catalog:write |
| create_promo | Create an automatic discount promo. | promos:write |
| create_voucher | Create a voucher code with a quota. | promos:write |
| book_package_seat | Book a class seat from the customer's active package (uses quota, no payment). | bookings:write |
| reschedule_booking | Move a class session booking to another session of the same class (a reason is required). | bookings:write |
| cancel_booking | Cancel one booking with a reason; the refund impact appears in the preview. | bookings:write |
| mark_attendance | Mark attended, or undo the mark. | bookings:write |
| create_customer | Register a new customer, with children/participants at class outlets. | customers:write |
| add_participant | Add a child/participant to an existing customer (class outlets). | customers:write |
| add_customer_note | Add a note to a customer; earlier notes are neither read nor deleted. | customers:write |
| send_whatsapp_reminder | Send one templated WhatsApp reminder to one customer. | messages:write |
| reply_whatsapp_chat | Reply to one Inbox chat with text you approved word for word. | inbox:write |
If you ask for something no tool covers, the AI app is instructed to record it as a feature candidate (without customers' personal data) and tell you it still has to be done in the dashboard.
Bukujanji does not push data to AI providers. Data leaves only when your AI app calls a tool, and only within the connection's permissions. According to the consent screen, the categories that can be sent are:
Not sent: dates of birth, previously saved customer notes, and data of other outlets. Once data reaches the AI provider, its storage and use follow that provider's privacy policy; some individual plans may use conversations to train models unless you turn that off in the provider's settings. As the outlet owner, you decide to send this customer data and are responsible for its legal basis towards your customers.
For each call, Bukujanji keeps an activity record: the tool name, whether it succeeded, the duration, and the arguments in masked form (free text is reduced to its first two characters and its length). The content returned to the AI app is not stored in that record. Details are in the Privacy Policy, Section 5.1.
Revoking does not delete data the AI provider has already received. For that, contact the provider of the AI app you use.
Start with questions, then add actions once write permissions are granted.
Other help and requests about personal data: email support@bukujanji.com.