Integration · Scheduling
Connect Claude & ChatGPT to Practice Better
Ask your AI when a service has open slots, which forms a client still has to fill in, or to add a new client in Practice Better. It can read and update client records, read sessions, session notes, packages, programs and invoices, assign packages, send form requests and enroll clients in programs. Admin tasks for your practice take one message instead of several screens.
Free plan, no credit card. Takes about a minute.
Try asking
“What open slots do I have for an initial consultation next week?”
The AI finds the service and lists your open booking slots, starting from the day you give.
“Add Jonas Berg as a new client, [email protected], and send him a portal invite.”
It creates the client record and emails Jonas an invitation to the client portal.
“Send the intake questionnaire to Maria Jensen.”
It finds the form and Maria's client record and sends the form request. Maria is notified.
What your AI can do
Clients
List, read, create and update client records, see packages and reminders per client, and organize clients with tags.
Sessions and booking
List services and open booking slots, read sessions and session notes, and reschedule or cancel a session.
Forms, packages and programs
Send forms and track requests, assign packages, enroll clients in programs, and read invoices.
“Which forms has Maria not completed yet?”
It lists the form requests sent to her that are not completed.
“Give Jonas the 3-month coaching package.”
It assigns the package to his client record. Jonas gets a confirmation unless you ask it not to notify him.
“Which invoices are still unpaid?”
It lists invoices filtered by payment status.
89 tools for Practice Better
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
assign_package_to_clientChanges dataGive a client (`client_record_id`) a package (`package_id`) with a `name`, optional fee, expiry date and services. Sends the client a confirmation unless `notify` is false.cancel_customerDeletesCancel a customer (instance id). Destructive action; may require approval. API summary: Cancel Package.cancel_sessionDeletesCancel a session by `session_id`, with optional notes; `notify` controls whether the client is told. This cannot be undone.create_claimChanges dataCreate a new claim. Required: period. API summary: Insurance Claims.create_clientChanges dataCreate a client record from a `profile` with first name, last name and email (plus phone, address, notes). Set `send_invitation` to email the client a portal invite.create_measurement_bloodChanges dataCreate a new blood for a measurement. API summary: Create Blood Measurement.create_measurement_bodyChanges dataCreate a new body for a measurement. Required: entry date. API summary: Create Body Measurement.create_medicalhistory_productChanges dataCreate a new product for a medicalhistory. Required: frequency, product name or start date. API summary: Create Health Product.create_paymentChanges dataCreate a new payment. Required: currency or period. API summary: Payment History.create_payment_billing_reports_get_transaction_statement_for_perChanges dataCreate a new payment. Required: currency or period. API summary: Transaction Statement.create_salestaxChanges dataCreate a new salestax. Required: currency or period. API summary: Sales Tax.create_subscriptionDeletesCreate a new subscription. Required: endpoint url, event types or verification token. Destructive action; may require approval. API summary: Create a subscription.create_tagChanges dataCreate a new tag. Required: name. API summary: Create Tag.delete_client_recordDeletesPermanently delete a customer by customer id. Destructive action; may require approval. API summary: Delete Client Record.delete_course_enrollmentsMoves moneyPermanently delete a enrollment by course id. Financial or irreversible action; may require approval. API summary: Unregister Client.delete_customerDeletesPermanently delete a customer by customer id. Destructive action; may require approval. API summary: Delete Package.delete_measurement_bloodsMoves moneyPermanently delete a blood by record id. Financial or irreversible action; may require approval. API summary: Delete Blood Measurement.delete_measurement_bodiesMoves moneyPermanently delete a body by record id. Financial or irreversible action; may require approval. API summary: Delete Body Measurement.delete_medicalhistory_productDeletesPermanently delete a product by product id. Destructive action; may require approval. API summary: Delete Health Product.delete_sessionDeletesPermanently delete a session by session id. Destructive action; may require approval.delete_subscriptionDeletesPermanently delete a subscription by subscription id. Destructive action; may require approval.delete_tagDeletesPermanently delete a tag by tag id. Destructive action; may require approval. API summary: Delete Tag.enroll_clients_in_programChanges dataEnroll clients (`client_record_ids`) in a program by `course_id`.get_clientGet one client record by `customer_id` (the client record ID).get_client_packageGet one client's package by `customer_id` (the package instance ID).get_cms1500Get one cms1500 by form id. API summary: Get CMS-1500 Form.get_courseGet one course by course id. API summary: Get Program.get_course_enrollmentGet one enrollment for a course by record id. API summary: Get Program Enrollment.get_dietlifestyleGet one dietlifestyle by record id. API summary: Get Profile.get_enrollmentGet one enrollment by record id. Results are paginated. API summary: List Client Program Enrollments.get_form_requestGet one form request by `request_id`.get_invoiceGet one invoice by `invoice_id`.get_labrequestGet one labrequest by lab request id. API summary: Get Lab Request.get_labrequest_documentGet one document for a labrequest by item id. API summary: Get Lab Request Attachment.get_measurement_bloodGet one blood for a measurement by measurements id. API summary: Get Blood Measurement.get_measurement_bodyGet one body for a measurement by measurements id. API summary: Get Body Measurement.get_medicalhistoryGet one medicalhistory by record id. API summary: Get Profile.get_mediumGet one medium by item id. API summary: Get Media Item.get_my_profileGet the connected practitioner's own profile, or another consultant's by `as_consultant`.get_protocolGet one protocol by protocol id. API summary: Get Protocol.get_protocol_documentGet one document for a protocol by item id. API summary: Get Protocol Attachment.get_reminderGet one reminder by reminder id. API summary: Get Task.get_sessionGet one session (appointment) by `session_id`.get_session_notesGet one set of session notes by `notes_id`.get_subscriptionGet one subscription by subscription id. API summary: Get a subscription.get_superbillGet one superbill by bill id. API summary: Get Superbill.get_tagGet one tag by tag id. API summary: Get Tag.list_available_slotsList open booking slots for a service (`service_id`) and consultant (`as_consultant`) for 30 days from `day`, optionally by type (face, phone, virtual) or location.list_client_packagesList packages assigned to clients, filtered by client `records`, `packages`, `status` or expired.list_clientsList client records, filtered by `status`, active portal account (`client`), sub-records (`child`) or modified date. Set `details` for addresses and contacts.list_cms1500sList cms1500s. Optional filters: after id, before id, consultants, date eq, date gte or date lte. Results are paginated. API summary: List CMS-1500 Forms.list_course_enrollmentsList enrollments for a course. Optional filters: after id or before id. Results are paginated.list_form_requestsList form requests sent to clients, filtered by client `records`, completed or date range.list_formsList the forms (intake forms, questionnaires) available to send.list_invoicesList invoices, filtered by client `records`, `paymentstatus` or invoice date range.list_journal_entriesList journal entries. Optional filters: after id, before id, entrydate eq, entrydate gte, entrydate lte or journals. Results are paginated. API summary: List Entries.list_labrequestsList labrequests. Optional filters: after id, before id, consultants, created eq, created gte or created lte. Results are paginated. API summary: List Lab Requests.list_measurement_bloodsList bloods for a measurement. Optional filters: after id, before id, entrydate eq, entrydate gte or entrydate lte. Results are paginated. API summary: List Blood Measurements.list_measurement_bodiesList bodies for a measurement. Optional filters: after id, before id, entrydate eq, entrydate gte or entrydate lte. Results are paginated. API summary: List Body Measurements.list_medicalhistory_productsList products for a medicalhistory. API summary: Get Health Products.list_packagesList the packages (bundles of sessions and programs) the practice offers.list_programsList the programs (courses) the practice offers.list_protocolsList protocols. Optional filters: after id, before id, consultants, records or team for. Results are paginated.list_remindersList reminders and to-dos, filtered by client `records`, `type` or completed.list_servicesList the services (session types) the practice offers.list_session_notesList session notes, filtered by client `records`, date range or completion.list_shipmentsList shipments. Optional filters: end date, event type, max attempts, min attempts, start date or status. Results are paginated. API summary: List deliveries.list_subscriptionsList subscriptions. Optional filters: event type, is active or status.list_superbillsList superbills. Optional filters: after id, before id, consultants, date eq, date gte or date lte. Results are paginated.list_tagsList the tags used to organize clients.list_team_membersList the members of the practice team.list_timezonesList timezones. API summary: Supported Timezones.list_typesList types. API summary: List available event types.reschedule_sessionVisible to othersMove a session by `session_id` to a new `session_date`, optionally changing `duration`.send_form_requestVisible to othersSend forms (`form_ids`) to a client (`client_record_id`) or several clients to complete. The client is notified.update_availabilitiesVisible to othersUpdate an existing availability. Has effects visible outside this system. API summary: Update Availability Settings.update_basicsVisible to othersUpdate an existing basic. Has effects visible outside this system. API summary: Update Basic Profile.update_bookingsVisible to othersUpdate an existing booking. Has effects visible outside this system. API summary: Update Booking Settings.update_clientChanges dataUpdate a client record by `customer_id`: pass the `profile` with first name, last name and email plus any changed details, or set `is_active` / `pinned`.update_dietlifestyleChanges dataUpdate an existing dietlifestyle identified by record id. API summary: Update Profile.update_measurement_bloodsVisible to othersUpdate an existing blood identified by record id. Has effects visible outside this system. API summary: Update Blood Measurement.update_measurement_bodiesVisible to othersUpdate an existing body identified by record id. Has effects visible outside this system. API summary: Update Body Measurement.update_medicalhistoryChanges dataUpdate an existing medicalhistory identified by record id. API summary: Update Profile.update_medicalhistory_productsVisible to othersUpdate an existing product identified by record id. Has effects visible outside this system. API summary: Update Health Product.update_printsVisible to othersUpdate an existing print. Has effects visible outside this system. API summary: Update Print Settings.update_protocolsVisible to othersUpdate an existing protocol. Has effects visible outside this system. API summary: Update Protocol Settings.update_socialsVisible to othersUpdate an existing social. Has effects visible outside this system. API summary: Update Social Settings.update_taggablesVisible to othersUpdate an existing taggable. Has effects visible outside this system. API summary: Update Tags.update_webanalyticsVisible to othersUpdate an existing webanalytic. Has effects visible outside this system. API summary: Update Web Analytics Settings.
Set up in three steps
- 1
Pick the app
Create a free HeyMyApps account and choose Practice Better from the app list.
- 2
Paste your key
Paste the API key (Client ID) and secret from Practice Better. First request the API Access (Beta) add-on under your profile menu > My Subscription > View add-ons. Support reviews it and emails you. Then click the Settings gear > Settings & Preferences > API Access, click Create key, set a name and access restrictions, and click Create. Copy the API key and secret from the popup, because the secret is shown only once.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
- Click your name, then Settings › Connectors › Add custom connector.
- Paste your link as the Remote MCP server URL.
- Switch it on from the + menu in a chat.
Questions
What can the AI do in Practice Better?
It can read your profile, team members, clients, services, open booking slots, sessions, session notes, packages, forms, form requests, invoices, programs, reminders and tags. It can create and update client records, reschedule and cancel sessions, assign packages, send form requests and enroll clients in programs.
Does the AI see my Practice Better API key?
No. Your API key and secret are encrypted at rest and never shown to the AI. After you save them, they are not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start with lookups only. Cancelling a session cannot be undone, and sending forms or assigning packages notifies the client, so those tools can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
Practice Better connects with OAuth, and OAuth connections need the HeyMyApps Pro plan or above. HeyMyApps also has a free plan with no credit card, but it does not include this connection. Paid plans bill per completed task. You also need your own Practice Better account.
Why can't I find API Access in Practice Better?
API access is a beta add-on. Open your profile menu > My Subscription > View add-ons and request API Access (Beta). Practice Better support reviews the request and emails you. After that you find it under the Settings gear > Settings & Preferences > API Access.
Related integrations
Let your AI work in Practice Better today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Practice Better freeHeyMyApps is not affiliated with Practice Better. Product names are trademarks of their owners.






