> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brilo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect your practice management system

> Connect a practice management system or EHR that is not in the Brilo app store, like CharmHealth, TherapyNotes or Orthotrac, with a custom action or a webhook.

You can connect a practice management system or EHR that is not in the app store, as long as it
can be reached over the internet. A custom action lets your agent check openings and book during
the call, and a webhook sends each call's details to your system afterwards. Both need a developer.

## What it is

Connecting a practice system that Brilo does not list means your own developer tells Brilo where
your system lives and what to send it. Brilo has no built in connection of its own for CharmHealth,
TherapyNotes or Orthotrac, so unless a search of the app store finds yours, this is the route. Two pieces do the work:

* **A custom action** runs during the call. Your agent can ask your system for open appointment
  times, read them to the caller, then book the one the caller picks. See
  [Build a custom action](https://docs.brilo.ai/actions/build-a-custom-action.md).
* **A webhook** runs after the call. Brilo sends the summary, the written record and the details
  your agent collected to your system, so it can file the call or create a task. See
  [Send data to your systems](https://docs.brilo.ai/actions/send-data-to-your-systems.md).

## When you would use it

* **Booking into your own schedule.** A dental or orthodontic office wants new patient calls
  booked straight into the chair schedule the front desk already uses.
* **Checking a patient record mid call.** A psychiatry practice wants your agent to confirm an
  existing patient's next appointment before answering.
* **Filing every call.** A clinic wants each call's summary attached to the patient's chart, which
  a webhook handles without slowing the call down.

## Where each piece goes in your dashboard

Each piece of the setup lives in a different place in your Brilo dashboard, listed here so you know
what to open and what to hand your developer.

| What you want | Where it goes |
| - | - |
| Build the custom action | **Actions** in the sidebar, then **Create Action**. Or your agent's **Actions** tab: **Add Actions**, then the **Custom** tab, then **Custom Action**. The builder has three steps: **About**, **API connection** and **Test response** |
| Let your agent use it | Your agent's **Actions** tab: **Add Actions**, then the **Custom** tab, then pick the action |
| Tell your agent when to use it | Your agent's **Prompt** tab, for example "check openings before offering a time" |
| Send call details after each call | Your agent's **Webhook** tab, in the **Webhook URL** box |

## What to send your developer

Send your developer these, and they will not need to come back to you:

1. **What should happen, in your words.** For example: "when a new patient asks for a cleaning,
   check our openings for the next two weeks and book the one they choose."
2. **Your practice system's developer documentation**, or the name of the person at the vendor who
   can give API access. Your developer cannot build anything without it.
3. **The Brilo developer references**: [Custom actions](https://docs.brilo.ai/api-reference/custom-actions) for the
   during the call piece and [Post call webhook](https://docs.brilo.ai/api-reference/webhooks/post-call.md) for the after
   the call piece.

## Systems that run inside your office

Some practice systems run on a server inside the office rather than in the cloud. Brilo connects over the internet, so it cannot reach an address that only works on
your office network or VPN. Your developer or IT provider has to publish the part Brilo calls at a
public web address, ideally one starting with `https://` so the data is encrypted, for example through a secure tunnel such as Cloudflare
Tunnel. That public address is what goes in the **API connection** step of the custom action, or
in the **Webhook URL** box. Brilo does not install anything in your office.

## Systems customers ask about

Brilo has no built in connection for the systems below. This is the honest answer for each.

| System | Built into Brilo? | What to do |
| - | - | - |
| CharmHealth | No | A custom action for openings and booking, if your CharmHealth account gives you API access. A webhook for after the call |
| TherapyNotes | No | Ask TherapyNotes whether your account can get API access. If it can, use a custom action or a webhook. If not, Brilo cannot write into it |
| Orthotrac | No | If it runs on a server in your office, your IT provider needs to publish it at a public address first. Then use a custom action or a webhook |
| Cal.com | Yes, for booking | Add **Calendar Availability** and **Book Appointment** from the **Standard** tab in your agent's **Actions** tab, with your Cal.com API key and event type ID |

For everything Brilo connects to without a developer, see
[Supported integrations](https://docs.brilo.ai/supported/integrations.md).

## What else you can do here

* [Search the app store for your system first](https://docs.brilo.ai/integrations/app-store), since the catalogue is
  larger than the grid.
* [Book into Google Calendar](https://docs.brilo.ai/actions/book-appointments.md) with no developer at all.
* [Pass the call to your front desk](https://docs.brilo.ai/actions/pass-the-call-to-a-person.md) when a booking is
  complicated.
* [Send the caller a confirmation by text](https://docs.brilo.ai/actions/send-a-text-or-email.md) once a time is booked.

## FAQ

> **Does Brilo's calendar availability work with CharmHealth?**
>
> No. The built in **Calendar Availability** and **Book Appointment** actions only read from
> Cal.com, so you do not need Cal.com if you build a custom action instead. A custom action can
> check openings and book in CharmHealth during the call, if your CharmHealth account gives you
> API access.

> **Do I need Cal.com to let my agent book appointments?**
>
> No. Cal.com is one option. Your agent can also book into Google Calendar with no developer, or
> into your own practice system through a custom action. Cal.com is only required if you want to
> use the built in **Calendar Availability** and **Book Appointment** actions.

> **Where do I put my Cloudflare tunnel address in Brilo?**
>
> In the custom action builder, in the **API connection** step, as the request address. For
> sending call details after the call, put it in the **Webhook URL** box on your agent's
> **Webhook** tab. The tunnel address has to be public. Use one starting with `https://` so the data is encrypted.

> **Does Brilo work with TherapyNotes?**
>
> Not directly. Brilo has no built in TherapyNotes connection. If TherapyNotes gives your account
> API access, a developer can connect it with a custom action or a webhook. If it does not, your
> agent can still take the details and pass them to your team by email or by transferring the call.

> **Why can Brilo not reach my practice system?**
>
> Your practice system is probably only reachable inside your office network or VPN. Brilo
> connects over the internet, so the part it calls must have a public address. Ask your
> IT provider to publish it, for example through a secure tunnel, then test it from the
> **Test response** step.

> **Should my practice system use a custom action or a webhook?**
>
> Use a custom action when your agent needs an answer during the call, such as open times or
> booking. Use a webhook when your practice system only needs a record after the call, such as a
> summary on the chart. Many practices use both.

> **Do I need a developer to connect my practice management system?**
>
> Yes, when the system is not in the app store. A custom action or a webhook needs a developer,
> plus your time testing it on a real call. See
> [Do I need a developer](https://docs.brilo.ai/start/do-i-need-a-developer.md).

## Related

* [Build a custom action](https://docs.brilo.ai/actions/build-a-custom-action.md) for the during the call piece
* [Send data to your systems](https://docs.brilo.ai/actions/send-data-to-your-systems.md) for the after the call piece
* [Supported integrations](https://docs.brilo.ai/supported/integrations.md) for what connects without a developer
* [Healthcare and HIPAA](https://docs.brilo.ai/compliance/healthcare-and-hipaa) before you go live in a clinic
* [An action did not run](https://docs.brilo.ai/actions/an-action-didnt-run.md) when a booking does not appear


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.