Opportunity and pipeline automation to decrease manual data entry and drive reporting efficiency
Supports multiple pipelines to automate updating opportunities in surgical and non-surgical pipelines
ModMed appointments shown on a silent EMR Appointments calendar, so appointment reports reflect what happened in ModMed
Automate Google review collection after appointments
Automate post-appointment follow-up
Automate patient retention campaigns for specific treatment and service types
Collect data for better patient segmentation
Automated birthday campaigns
Two-way sync to create patients in ModMed from Aesthetix CRM
Multi-location support with location-level routing
ModMed integration requires ModMed API access, which starts at $25 per provider paid directly to ModMed, plus a $149/month integration fee paid to Aesthetix CRM.
You don't need to send us a list of your appointment types. We read them directly from ModMed during setup, assign each one a category, and send the list to you to review and approve (see the Appointment Categorization section below).
Submit a request to [email protected] for the Aesthetix CRM integration. The ModMed Practice Solutions team manages the enablement process and gives you instructions for generating API credentials, which you then share with Aesthetix CRM for implementation.
Required credentials you must send to Aesthetix CRM:
Prefix URL for your practice
FHIR Username
FHIR Password
Aesthetix CRM will generate a unique API key for your account via ModMed Developer Support.
Unlike webhook-based integrations (such as Zenoti or PatientNow Pro), the ModMed integration is a polling integration. Every 5 minutes, AX Connect asks the ModMed API for every appointment and patient that changed since the last check, then sends each change to Aesthetix CRM.
Updates typically appear in Aesthetix CRM within 5 minutes of the action in ModMed. A few things can add time:
Several changes for one patient. When one patient has more than one change in the same check (for example, a checkout and a new booking), the changes are sent about 60 seconds apart, in the order that keeps the pipeline correct.
ModMed's nightly maintenance window. ModMed's API is unavailable for about 15 minutes every night, around 1 AM Pacific. Changes made during that window come through on the next successful check. Nothing is lost.
Very high appointment volume. At practices with very high daily volume, the sync can run behind on busy weekday mornings and catches up later in the day.
The integration only sends a change to Aesthetix CRM when something that matters changed: the appointment's status, date or time, provider, appointment type, or description. Re-saving an appointment in ModMed without changing any of those does not send the contact through your workflows again.
Check-ins count as a show. An appointment that is checked in or arrived is treated the same as Fulfilled / Checked Out.
Reschedules. When a patient's appointment is cancelled and a new appointment is booked for the same patient, the integration treats it as a reschedule. Only the new booking is sent, so the contact does not drop to the Cancelled / No-Show stage.
Order. A patient's changes are processed in pipeline order: completed, cancelled and no-show appointments first, then new bookings, with surgical bookings last. A checkout followed by a rebook ends on the next booking.
Email and phone checks. Placeholder or malformed email addresses and invalid phone numbers are not written to the contact. If a patient has neither a valid email nor a valid phone number in ModMed, that change is not written to Aesthetix CRM.
Other statuses. Statuses other than pending, booked, checked in or arrived, fulfilled, cancelled and no-show (for example, an appointment entered in error) are not sent to Aesthetix CRM.
For multi-location practices, we read location data from the ModMed API and write it to the ModMed Location custom field, so contacts are attributed to the correct location.
What triggers it: An appointment is created, or moves to a Pending or Booked status, in ModMed.
What happens:
We read the appointment's patient, provider and location.
We read the full patient record from ModMed and check the email and phone number.
We format the appointment date in your practice's time zone.
We read the location details (important for multi-location practices) and the provider's name.
We look up the patient's upcoming appointments in ModMed to set Next Visit.
For practices with appointment categorization, we set the Appointment Category from your practice's category list, which determines the pipeline and stage (see the Appointment Categorization section below).
We create or update the contact in Aesthetix CRM and add them to the EMR - ModMed Appointments + Pipeline Update workflow.
Fields updated in Aesthetix CRM:
First Name, Last Name, Email, Phone, Gender
Next Visit Date
Next Visit Service
Appointment Category (for practices with appointment categorization)
ModMed Appointment Date
ModMed Appointment Description
ModMed Appointment ID
ModMed Appointment Status
ModMed Appointment Type
ModMed Location
ModMed Patient ID
ModMed Provider
Workflow actions in Aesthetix CRM:
A contact note is added with the appointment details. This is your audit trail for troubleshooting: you can see which appointments came into the system and in what order.
The contact is routed through the Appointments + Pipeline Update workflow based on their appointment category and status (see the Pipeline Movement section below).
Next Visit: Next Visit Date and Next Visit Service show the patient's soonest upcoming booking in ModMed at the time of the change, not necessarily the appointment that just changed. Next Visit Date is date-only (for example, 3/12/2026).
What triggers it: An appointment is checked in (or arrived), or changes to Fulfilled or Checked Out, in ModMed.
What happens:
Data collection and appointment categorization work the same way as for new appointments.
Instead of Next Visit, we update Last Visit Date and Last Visit Service, since this is a completed appointment.
If the patient has no other upcoming booking in ModMed, Next Visit Date and Next Visit Service are cleared.
We update the ModMed Birthday field.
The contact is added to the same Appointments + Pipeline Update workflow for pipeline movement.
Additional fields updated (compared to Pending / Booked):
Last Visit Date (instead of Next Visit Date)
Last Visit Service (instead of Next Visit Service)
ModMed Birthday
Because a check-in counts as a show, Last Visit and the completed pipeline stage can update as soon as the patient is checked in.
What triggers it: An appointment changes to Cancelled or No-Show in ModMed.
What happens:
Data collection follows the same pattern as the other appointment statuses.
If the patient has no other upcoming booking in ModMed, Next Visit Date and Next Visit Service are cleared.
The contact is added to the Appointments + Pipeline Update workflow, where they are routed to the Cancelled / No-Show stage of the appropriate pipeline.
If the same patient was booked again for a new appointment, the cancellation is treated as a reschedule (see How changes are handled above) and only the new booking is sent.
What triggers it: A new patient is created, or an existing patient is updated, in ModMed. Patient changes are picked up in the same 5-minute check as appointments.
What happens:
We check the email and phone number, then create or update the contact in Aesthetix CRM.
No workflow is triggered: this keeps the contact record in sync.
Fields updated in Aesthetix CRM:
First Name, Last Name, Email, Phone
Address information
ModMed Patient ID
The Patient Charges sync is switched off for all ModMed practices. The charge data available through ModMed's API produced duplicate charge records in Aesthetix CRM, so we turned it off rather than send inaccurate data.
ModMed Charge Type and ModMed Transaction ID are no longer updated. Values already on a contact stay as they were.
We are working on a replacement that links charges to the patient's visit, so each charge is counted once.
Known Limitation: No Payment Data. The charge data in ModMed's API is not actual payment data. ModMed has indicated that a Payments API is in beta. Once it is available, we will be able to bring in actual payment data and complete Patient Lifetime Value tracking.
What this means for you: Unlike our Zenoti or PatientNow Pro integrations, the ModMed integration currently cannot automatically track Patient Lifetime Value or update opportunity values based on payments. If accurate revenue attribution is critical, discuss supplementary reporting options with your Aesthetix CRM team.
What triggers it: The tag ModMed Create is added to a contact in Aesthetix CRM (manually or through an automation).
What happens:
The tag triggers a workflow in AX Connect that sends a create patient request to the ModMed API.
The patient is created in ModMed.
Required fields in Aesthetix CRM:
To create a patient in ModMed, the contact must have all six of these fields filled in:
First Name
Last Name
Phone Number
Gender
Date of Birth (Birthday)
Note: ModMed may let you customize which fields are required on their side. Check with ModMed support if you need to adjust their requirements. All six fields above are required by our integration workflow by default.
Your ModMed appointments also appear on a calendar in Aesthetix CRM named EMR Appointments. Multi-location practices have one calendar per location (for example, EMR Appointments ยท Downtown). The calendar went live for every ModMed practice on October 27 and 28, 2026.
What it's for: The calendar lets the CRM's appointment reports show confirmed, showed, cancelled and no-show counts that match ModMed. It is a mirror of ModMed, not a booking calendar.
How appointments appear:
ModMed status | Calendar status |
|---|---|
Pending / Booked | Confirmed |
Checked In / Arrived, Fulfilled / Checked Out | Showed |
Cancelled | Cancelled |
No-Show | No-Show |
When a synced appointment is rescheduled, the original entry no longer counts as a cancellation (it is marked Invalid on the calendar) and the new booking appears.
Pre-Op and Post-Op appointments can be shown on the calendar without moving the pipeline, for practices that choose this.
Only appointments created or changed in ModMed since the calendar went live appear. Older future appointments appear the next time they change in ModMed.
The calendar is silent. It sends no confirmations, reminders or cancellation messages to patients, and no alerts to your team. We check it every day to make sure it stays silent.
The calendar itself sends nothing, but your workflows can still react to it. Because ModMed appointments are now real appointments on a CRM calendar, workflow triggers behave like this:
Workflow trigger | Fires for ModMed appointments on the EMR Appointments calendar? |
|---|---|
Appointment Status with no calendar filter | Yes. It fires when an appointment is added (status Confirmed) and each time its status changes (Showed, Cancelled, No Show, Invalid). |
Appointment Status filtered to another calendar ("In Calendar") | No |
Appointment Status filtered to an EMR Appointments calendar | Yes, on purpose |
Customer Booked Appointment | No. This trigger is for bookings made through a booking link or widget. |
Please don't:
Edit, move or delete appointments on the EMR Appointments calendar. Make changes in ModMed; the calendar follows.
Turn on notifications, reminders or Google invitations for this calendar.
Build a workflow with an Appointment Status trigger without a calendar filter. An unfiltered Appointment Status trigger fires for every synced ModMed appointment. If you build appointment workflows, filter them to the calendars they are meant for.
For plastic surgery practices (and any practice using dual pipelines), the integration uses appointment categorization to route contacts to the correct pipeline and stage. This is critical to the integration working properly.
During setup, we read all of your appointment types from ModMed and assign each one a category. We send you the list as your Appointment Categorization Document to review, and you must confirm every mapping before we finalize the integration. For how that document works and what each category means, see Appointment Category: How It Works. Incorrect categorization is the most common cause of contacts moving to the wrong pipeline stage.
Each appointment type is mapped to one of these categories:
Surgical Consult
Surgical Appointment
Non-Surgical Consult
Non-Surgical Appointment
Pre-Op Appointment (no pipeline updates)
Post-Op Appointment (no pipeline updates)
Block (no pipeline updates)
Your category list is fixed and kept by our team. Each appointment's category is written to the contact's Appointment Category field, and the Appointments + Pipeline Update workflow reads that field to choose the pipeline and stage.
New appointment types: We check your ModMed appointment types every week and add new ones to your category list. Until a new type is added, it falls back to keyword matching and may not have a category, so it may not route correctly. If you add appointment types in ModMed and need them working right away, contact us.
Surgical Pipeline:
Appointment Category | Status | Pipeline Stage |
|---|---|---|
Surgical Consult | Pending / Booked | Consult Booked |
Surgical Consult | Checked In / Fulfilled / Checked Out | Consult Complete |
Surgical Consult | Cancelled / No-Show | Cancelled / No-Show |
Surgical Appointment | Pending / Booked | Surgery Scheduled |
Surgical Appointment | Checked In / Fulfilled / Checked Out | Surgery Complete |
Surgical Appointment | Cancelled / No-Show | Cancelled / No-Show |
Non-Surgical Pipeline:
Appointment Category | Status | Pipeline Stage |
|---|---|---|
Non-Surgical Consult | Pending / Booked | Booked |
Non-Surgical Consult | Checked In / Fulfilled / Checked Out | Patient |
Non-Surgical Consult | Cancelled / No-Show | Cancelled / No-Show |
Non-Surgical Appointment | Pending / Booked | Booked |
Non-Surgical Appointment | Checked In / Fulfilled / Checked Out | Patient |
Non-Surgical Appointment | Cancelled / No-Show | Cancelled / No-Show |
The workflow also checks whether a contact is a lead or an existing patient:
Existing patients keep a single "won" status throughout the pipeline as they move between stages.
New leads keep an open status until they check out, at which point they move to the appropriate completed or patient stage.
For a full walkthrough of the most common ModMed issues, see the ModMed Integration Troubleshooting Guide.
If a contact is in the wrong pipeline stage, check:
Appointment Category: verify the appointment type is mapped to the correct category. Incorrect categorization is the most common cause of pipeline issues.
Contact Notes: review the audit trail to see which appointments came in and in what order.
Reschedules: a cancellation followed by a new booking for the same patient is a reschedule, so the contact stays on the new booking's stage rather than moving to Cancelled / No-Show.
Appointment Status: confirm the status in ModMed matches what you expect. Remember that a check-in counts as a show.
The native Date of Birth field in Aesthetix CRM can't be written through the integration directly. To work around this, we use a custom field called ModMed Birthday and bring the birthday from ModMed into that field.
A dedicated Birthday workflow then copies the value from ModMed Birthday into the native Date of Birth field, keeping them in sync. This ensures any birthday automations you've built in the CRM work correctly with data from ModMed.
The ModMed Birthday field is updated when an appointment is checked in, fulfilled or checked out.
Several workflows in your Aesthetix CRM account are hidden and locked. This is intentional: these workflows contain the core integration logic, and changes could break the integration. The locked workflows include:
EMR - ModMed Appointments + Pipeline Update
Birthday Update
If you need custom automation built on top of any of these, let us know. We can either unlock specific workflows or help you build triggers off the tags and fields these workflows create.
All ModMed-specific fields are organized in a ModMed folder within your custom fields.
Custom Field Name | Type | Custom Value |
|---|---|---|
ModMed Appt Status | Text |
|
ModMed Appt Date | Date |
|
ModMed Appt Type | Text |
|
ModMed Appt Description | Text |
|
ModMed Appt ID | Text |
|
ModMed Birthday | Date |
|
ModMed Location | Text |
|
ModMed Provider | Text |
|
ModMed Patient ID | Text |
|
ModMed Charge Type | Text |
|
ModMed Transaction ID | Text |
|
ModMed Provider is written as first and last name with a space (for example, "Jane Smith"). ModMed Appt Date uses your practice's time zone.
In addition to the ModMed-specific fields above, the integration also updates these standard Aesthetix CRM fields:
Next Visit Date and Next Visit Service (the patient's soonest upcoming booking; cleared when nothing else is booked)
Last Visit Date and Last Visit Service (on checked-in, fulfilled or checked-out appointments)
Appointment Category (for practices with appointment categorization)
First Name, Last Name, Email, Phone, Gender
Address information
This is a polling integration, not webhook-based. Updates appear in Aesthetix CRM within about 5 minutes of the action in ModMed. A patient with several changes, ModMed's nightly maintenance window (about 15 minutes around 1 AM Pacific), or very high volume on busy mornings can add time.
Only real changes are sent. Re-saving an appointment in ModMed without changing its status, time, provider, type or description does not update the contact or re-run your workflows.
A check-in counts as a show. Last Visit and the completed pipeline stage can update at check-in.
Contacts need a valid email or phone. Placeholder or malformed emails and invalid phone numbers are not written. If a patient has neither, their changes are not written to Aesthetix CRM.
Patient charges are off. The Patient Charges sync is switched off because it created duplicates. Payment data isn't available until ModMed's Payments API launches, so Patient Lifetime Value can't be tracked automatically yet.
Appointment categorization is critical. Review the category list we send during setup carefully. New appointment types are picked up weekly; contact us if you need one working sooner.
The EMR Appointments calendar is a mirror of ModMed. Don't edit it, don't turn on its notifications, and filter any Appointment Status workflow by calendar.
No backfill. The calendar and the improved Next Visit logic apply to appointments created or changed in ModMed since the October 2026 update.
Next Visit Date is date-only. We cannot store appointment times in this field (for example, 3/12/2026).
Birthday requires a workaround. The native Date of Birth field can't be written directly, so we use the ModMed Birthday custom field and a sync workflow to keep them aligned.
Two-way sync requires six fields. To create a patient in ModMed from Aesthetix CRM, the contact must have first name, last name, email, phone, gender and date of birth filled in before the ModMed Create tag is applied.
How do I know if the integration received an appointment? Check the contact's Notes tab. Every appointment change sent to Aesthetix CRM generates a note with the appointment details. Since this is a polling integration, allow up to 5 minutes for the data to appear. If an appointment was re-saved in ModMed without a real change (status, time, provider, type or description), no new note is expected.
Why is a contact in the wrong pipeline stage? The most common cause is incorrect appointment categorization. Check the contact's notes to see the appointment audit trail, then verify the appointment type is mapped to the correct category. Also remember that a check-in counts as a show, and a cancellation followed by a new booking is treated as a reschedule.
A patient cancelled and rebooked. Why didn't they move to Cancelled / No-Show? When a patient's appointment is cancelled and a new one is booked for the same patient, the integration treats it as a reschedule and only sends the new booking. This keeps the contact on the correct stage for their new appointment.
Why is Next Visit showing a different appointment than the one that just changed? Next Visit always shows the patient's soonest upcoming booking in ModMed. If the patient has an earlier appointment booked, that one is shown. Next Visit is cleared when a cancellation, no-show or checkout leaves the patient with nothing booked.
Why didn't a patient's email or phone come through? Placeholder emails, malformed addresses and invalid phone numbers are not written to the contact. Correct the email or phone in ModMed; it will come through the next time that patient or one of their appointments changes.
What is the EMR Appointments calendar, and can I book on it? It is a silent mirror of your ModMed appointments, so the CRM's appointment reports match ModMed. Don't book, edit or delete appointments on it: make changes in ModMed and the calendar follows. It sends no messages to patients or your team.
Why don't I see older appointments on the EMR Appointments calendar? The calendar shows appointments created or changed in ModMed since it went live (October 27 and 28, 2026). An older future appointment appears the next time it changes in ModMed.
I have a workflow with an Appointment Status trigger. Will the calendar set it off? Yes, if the trigger has no calendar filter. Add an "In Calendar" filter so the workflow only fires for the calendars it is meant for. Contact us if you'd like help reviewing your appointment workflows.
Why can't I see Patient Lifetime Value updating? ModMed's Payments API is in beta, so actual payment data isn't available yet, and the Patient Charges sync is currently off because it created duplicate charges. We are working on a replacement.
Why didn't a patient get created in ModMed after I added the ModMed Create tag? Verify that all six required fields are filled in: first name, last name, email, phone, gender and date of birth. If any are missing, the creation will fail.
How often does the integration sync? Every 5 minutes. When one patient has several changes at once, they are sent about a minute apart. ModMed's nightly maintenance window (about 15 minutes around 1 AM Pacific) can delay changes made during it, but nothing is lost.
I added new appointment types in ModMed. What do I need to do? Nothing right away: we check your appointment types every week and add new ones to your category list. Until then, a new type may not route contacts to the correct pipeline stage. Contact Aesthetix CRM support if you need it working sooner.
How does multi-location work? We read location data from ModMed and write it to the ModMed Location custom field, so contacts are attributed to the correct location. Multi-location practices also have one EMR Appointments calendar per location.
Contact Aesthetix CRM support through the help widget in your account or by email, and include the contact's name and the ModMed appointment details if you're reporting a sync issue. For custom automations built on the ModMed fields, the EMR Appointments calendar or your pipeline, submit a Custom Build Request.