company logo

Help Center

Go to Aesthetix CRM
Terms & ConditionsPrivacy Policy
All collectionsIntegrationsModMedOverview of ModMed Integration with Aesthetix CRM

Overview of ModMed Integration with Aesthetix CRM

Learn more about the fields, workflows, sync behavior, and calendar available in the ModMed integration.

Integration Benefits & Automation

  • 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

Platform Connection Requirements

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).

Requesting the Integration

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.

How the Integration Works

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.

What counts as a change

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.

How changes are handled

  • 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.

Sync Details

1. New Appointment: Pending & Booked Statuses

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).

2. Appointment Status: Checked In, Fulfilled & Checked Out

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.

3. Appointment Status: Cancelled & No-Show

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.

4. Patient Created or Updated

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

5. Patient Charges: Currently Off

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.

6. Create Patient in ModMed (Two-Way Sync)

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

  • Email

  • 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.

EMR Appointments Calendar

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.

Appointment workflow triggers and the EMR Appointments calendar

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.

Appointment Categorization & Pipeline Logic

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.

Setup Process

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.

Pipeline Movement

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

Patient vs. Lead Logic

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.

Troubleshooting Pipeline Issues

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:

  1. Appointment Category: verify the appointment type is mapped to the correct category. Incorrect categorization is the most common cause of pipeline issues.

  2. Contact Notes: review the audit trail to see which appointments came in and in what order.

  3. 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.

  4. Appointment Status: confirm the status in ModMed matches what you expect. Remember that a check-in counts as a show.

Birthday Field Sync

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.

Hidden / Locked Workflows

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.

Contact & Opportunity Custom Fields

All ModMed-specific fields are organized in a ModMed folder within your custom fields.

Custom Field Name

Type

Custom Value

ModMed Appt Status

Text

{{ contact.modmed_appt_status }}

ModMed Appt Date

Date

{{ contact.modmed_appt_date }}

ModMed Appt Type

Text

{{ contact.modmed_appt_type }}

ModMed Appt Description

Text

{{ contact.modmed_appt_description }}

ModMed Appt ID

Text

{{ contact.modmed_appt_id }}

ModMed Birthday

Date

{{ contact.modmed_birthday }}

ModMed Location

Text

{{ contact.modmed_location }}

ModMed Provider

Text

{{ contact.modmed_provider }}

ModMed Patient ID

Text

{{ contact.modmed_patient_id }}

ModMed Charge Type

Text

{{ contact.modmed_charge_type }} (not currently updated)

ModMed Transaction ID

Text

{{ contact.modmed_transaction_id }} (not currently updated)

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

Important Notes & Limitations

  • 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.

Frequently Asked Questions

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.


Need Help?

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.

Did this answer your question?
๐Ÿ˜ž
๐Ÿ˜
๐Ÿ˜