Work through this guide when something in 4D EMR did not reach Aesthetix CRM, or reached it and looks wrong. For how the integration works end to end, see Overview of 4D EMR Integration with Aesthetix CRM.
Before anything else, open the contact in Aesthetix CRM and click Notes.
Every appointment change and every invoice the integration sends is logged as a note on the contact. This is the fastest way to tell whether Aesthetix CRM received the update.
An appointment note looks like this:
Appt Status: Confirmed Appt Type: Consultation Appt Subtype: Surgical Appt Consult Reason: Rhinoplasty
You see a note: Aesthetix CRM received the update. Keep reading to find out why something still looks wrong.
No note at all: Aesthetix CRM never received the update. Start from the sections below.
The integration checks 4D EMR on a schedule, so changes are not instant.
Appointments: checked every 5 minutes. Changes usually appear within about 5 minutes.
Patient charges: checked every 15 minutes. Invoices usually appear within about 15 minutes.
Several changes for one patient: when one patient has more than one change in the same check, the changes are sent about 60 seconds apart.
A short 4D EMR outage: if 4D EMR's API does not answer, the next check reads the missed time again. Appointment changes are not lost.
Wait 10 minutes for an appointment and 20 minutes for a charge before assuming something did not sync.
The integration only sends an appointment when something that matters changed: its status, its date or time, or its appointment type or subtype.
Re-saving an appointment in 4D EMR sends nothing new.
Moving an appointment between Unconfirmed and Confirmed sends nothing new.
Statuses the integration does not use (for example Left Message, Arrived, Roomed or Left Unseen) are never sent.
If one of these is what happened, no new note is expected and nothing is broken.
Wait 10 minutes first. If the appointment was booked moments ago, check again shortly.
The appointment type may not be categorized yet. Every 4D EMR appointment type and subtype is mapped to a category that decides the pipeline and stage. We check your appointment types weekly and add new ones, so a type added in 4D EMR since the last check may have no category yet. An appointment with no category is not routed.
Find the exact appointment type and subtype names as they appear in 4D EMR.
Send them to Aesthetix CRM support.
We add them to your category list, and appointments of that type route correctly from then on.
The patient has no valid email or phone number in 4D EMR. Placeholder and malformed email addresses (for example [email protected]) and invalid phone numbers are not written to a contact, so different patients are never merged into one record. If a patient has neither a valid email nor a valid phone number, the change is not written to Aesthetix CRM at all. Fix the patient's contact details in 4D EMR and the next change comes through.
Many contacts are affected, not just one. Contact support right away with the date the problem started and a few example patient names.
The appointment type is mapped to the wrong category. This is the most common cause. The note shows the appointment type and subtype that came in, and the contact's Appointment Category field shows the category the integration assigned. If the category is wrong, that is your answer. Send support the appointment type and the correct category. Do not edit the integration workflows yourself: they are locked to protect the integration.
The appointment is Pre-Op, Post-Op or Block. These three categories deliberately do not move opportunities. No stage change is expected.
The patient is still booked for another appointment. A cancellation, no-show or reschedule of one appointment does not move a contact who is still booked for a different appointment today or later. The contact stays on their upcoming booking. This is intentional.
The patient has an upcoming surgery. A Pre-Op, Post-Op or Block change does not overwrite a contact who is booked for an upcoming surgery, so the contact stays at Surgery Scheduled.
The contact's type is Patient, so the opportunity shows as won. Contacts whose Contact Type is Patient keep a won status at every stage, Consult Booked included, so their revenue stays attributed in your reports. The stage still moves; only the status looks unexpected.
There is no opportunity on the contact. The integration creates or updates one opportunity per contact. For a contact whose type is still Lead, the opportunity is opened with no value. The opportunity value is set to Patient Lifetime Value once the contact is a Patient.
The events arrived out of order. A contact's opportunity can move backward between stages if 4D EMR sends changes out of order (for example a late cancellation after a new booking). Check the notes to see what came in and when, and contact support to correct the stage.
Surgical Pipeline:
Appointment Category | 4D EMR Status | Pipeline Stage |
|---|---|---|
Surgical Consult | Unconfirmed / Confirmed / Rescheduled | Consult Booked |
Surgical Consult | Seen / Checked Out | Consult Complete |
Surgical Consult | Cancelled / No-Show | Cancelled / No-Show |
Surgical Appointment | Unconfirmed / Confirmed / Rescheduled | Surgery Scheduled |
Surgical Appointment | Seen / Checked Out | Surgery Complete |
Surgical Appointment | Cancelled / No-Show | Cancelled / No-Show |
Non-Surgical Pipeline:
Appointment Category | 4D EMR Status | Pipeline Stage |
|---|---|---|
Non-Surgical Consult | Unconfirmed / Confirmed / Rescheduled | Booked |
Non-Surgical Consult | Seen / Checked Out | Patient |
Non-Surgical Appointment | Unconfirmed / Confirmed / Rescheduled | Booked |
Non-Surgical Appointment | Seen / Checked Out | Patient |
Non-Surgical Consult / Appointment | Cancelled / No-Show | Cancelled / No-Show |
Pre-Op, Post-Op and Block appointments do not move the pipeline.
A reschedule keeps the contact booked. Rescheduled by Office and Rescheduled by Patient are treated as booked appointments for pipeline purposes, so a reschedule does not drop a contact to Cancelled / No-Show. On the EMR Appointments calendar the original entry is marked Invalid instead, so it does not count as a cancellation in your reports, and the new booking appears as its own entry.
Here is when each field updates:
Next Visit Date and Next Visit Service update on a booked appointment (Unconfirmed, Confirmed or Rescheduled).
Last Visit Date and Last Visit Service update when an appointment is marked Seen or Checked Out.
Cancellations and no-shows change neither. Next Visit and Last Visit stay as they were.
If a field did not update:
Check the Notes tab to confirm the appointment change came through.
Confirm the status in 4D EMR is the one you expect. An appointment that happened but was never marked Seen or Checked Out does not update Last Visit Date.
If several bookings for one patient came in together, the soonest one is written last.
If the note is there but the field is still blank, contact support with a screenshot of the note.
These fields store the date only. Appointment times are not included. See Understanding Next Visit & Last Visit Fields in EMR Integrations.
Patient charges are on at every 4D EMR practice. Charges have been grouped and sent per invoice since October 23, 2026: one invoice is sent once with its total, rather than one event per line item.
Work through these before contacting us:
The charge is on an older invoice. The integration reads today's and yesterday's invoices in your practice's time zone. A charge added to an invoice dated earlier than yesterday is not picked up. If your team adds charges to older invoices, let us know.
A refund or credit was issued. Refunds and credits are not subtracted from Patient Lifetime Value automatically yet. Contact us with the patient and the refund details so we can correct the value.
The total does not match the invoice. The invoice total is each line's price less its discount, times the quantity, plus tax. If specific line items are excluded for your practice at your request (for example card surcharges or processing fees), those are not counted.
A second note appeared for the same invoice. If a line is added to an invoice after the invoice was first sent, only the new amount is sent, which shows as its own note.
The value looks high for older visits. Charges before October 23, 2026 were counted line by line as they came in and were not re-added. If totals from before that date look wrong, contact support and we will review the patient's history.
The opportunity value does not match Patient Lifetime Value. Charges update Patient Lifetime Value right away, but the opportunity value is set when the opportunity next moves stage on an appointment change. It catches up at the patient's next booking, completion, cancellation or no-show. The charges workflow never creates an opportunity.
The EMR Appointments calendar is a silent mirror of your 4D EMR schedule, used so the CRM's appointment reports match 4D EMR.
The appointment is older than the calendar. The calendar went live on October 15, 2026 (or on your practice's go-live date, if later). There was no backfill. An older future appointment appears the next time it changes in 4D EMR.
It is a staff time block with no patient. Blocks without a patient are not sent.
It was rescheduled. The original entry is marked Invalid and the new booking appears as its own entry.
Do not fix it on the calendar. An appointment booked or edited on the EMR Appointments calendar is not sent to 4D EMR, and your edit is replaced the next time the appointment changes in 4D EMR. Make the change in 4D EMR and the calendar follows.
4D EMR appointments are real appointments on a CRM calendar, so appointment triggers can react to them.
An Appointment Status trigger with no calendar filter fires for every synced 4D EMR appointment, which can send patients a second reminder or follow-up.
Add an In Calendar filter so each appointment workflow only fires for the calendars it is meant for.
A Customer Booked Appointment trigger does not fire for synced appointments. That trigger is for bookings made through a booking link or widget.
The workflows we install are already limited to their own calendars. If you would like help reviewing your appointment workflows, contact support.
To create a patient in 4D EMR from Aesthetix CRM, add the tag 4d-create to the contact.
Before applying the tag, make sure these fields are filled in:
Field | Notes |
|---|---|
First name | Required |
Last name | Required |
Required | |
Phone | Required |
Date of Birth | Sent when it is filled in, not required |
Still not working? The most common cause is a missing required field. Fill it in, remove the tag, and apply it again.
Patient already exists in 4D EMR? Search by email and phone in 4D EMR before assuming the sync failed.
Don't re-apply the tag repeatedly. Each time the tag is added, the patient is sent to 4D EMR again, which can create a duplicate record.
4D EMR birthdays arrive in a custom field called 4D Birthday, not the native Date of Birth field. A built-in workflow copies the value across, and it runs when an appointment is marked Seen or Checked Out. A patient who has only ever had booked appointments will have 4D Birthday filled in but Date of Birth still empty.
If birthday automations are not firing:
Open the contact and check that 4D Birthday has a value.
Check whether the native Date of Birth field is filled in.
Confirm the patient has had at least one appointment reach Seen or Checked Out in 4D EMR.
If 4D Birthday is filled in and Date of Birth is empty after a completed appointment, contact support.
The integration workflows are locked, but everything they write is available to build on.
Tags added by the integration: appt cancelled and appt noshow. Both are added on a cancellation or no-show and are not removed later, so allow for a contact who re-books afterwards.
Fields you can trigger from: Next Visit Date, Next Visit Service, Last Visit Date, Last Visit Service, Appointment Category, Lead Type, Patient Lifetime Value, Invoice Paid Amount, 4D Appointment Status, 4D Appointment Type, 4D Appointment Subtype, 4D Appointment Date, 4D Provider Name, 4D Consult Reason.
Contact Source: a contact created by the integration with no source is given the source 4D Direct.
Need a workflow unlocked or a new appointment type categorized? Contact Aesthetix CRM support.
What's happening | What to do |
|---|---|
No note after 10 minutes, one patient | Check the appointment type and the patient's email and phone, then contact support |
No note, several patients affected | Contact support right away with the date it started |
New appointment type not routing | Send support the exact appointment type and subtype |
Contact in the wrong pipeline stage | Send support the appointment type and the correct category |
Contact moved backward between stages | Contact support with the contact's notes |
Charge missing from Aesthetix CRM | Check the invoice date, then contact support with the invoice details |
A refund needs to come off Patient Lifetime Value | Contact support with the patient and refund details |
Patient Lifetime Value wrong before October 23, 2026 | Contact support to review the patient's history |
Patient creation not working | Check the four required fields and re-apply the tag once |
Birthday automation not running | Confirm a completed appointment exists, then contact support |
Appointment missing from the calendar | Confirm it changed in 4D EMR after October 15, 2026 |
A workflow fired for a synced appointment | Add an In Calendar filter, or contact support for a review |
Need to customize a locked workflow | Contact support |
How long should I wait before reporting a sync issue?
Ten minutes for an appointment and twenty for a charge. Appointments are checked every 5 minutes and charges every 15.
I re-saved an appointment in 4D EMR and nothing happened. Is the integration broken?
No. Only a real change sends an update: the status, the date or time, or the appointment type or subtype. Moving an appointment between Unconfirmed and Confirmed also sends nothing new.
A patient cancelled but stayed in Booked. Why?
They are still booked for another appointment today or later, so the integration leaves them on that booking. A contact with an upcoming surgery is also left at Surgery Scheduled.
Why does an existing patient show as won at Consult Booked?
Contacts whose Contact Type is Patient keep a won status at every stage so their revenue stays attributed. This is expected.
A patient rescheduled. Why are there two entries on the calendar?
The original appointment is marked Invalid so it does not count as a cancellation, and the new booking appears as its own entry. In the pipeline, the contact stays on a booked stage.
A charge is in 4D EMR but not in Aesthetix CRM. Why?
Check that the patient has a valid email or phone in 4D EMR, and that the charge sits on an invoice dated today or yesterday. Charges added to older invoices are not picked up.
Can I fix a wrong appointment on the EMR Appointments calendar?
No. Make the change in 4D EMR. Edits made on the calendar are replaced the next time the appointment changes in 4D EMR, and an appointment booked there is never sent to 4D EMR.
Why did my reminder workflow text a patient about an EMR appointment?
An Appointment Status trigger with no calendar filter fires for synced 4D EMR appointments. Add an In Calendar filter to that workflow.
Contact Aesthetix CRM support through the help widget in your account or by email. For a sync issue, include the patient's name, the appointment date or invoice number in 4D EMR, and a screenshot of the contact's Notes tab. For custom automations built on the 4D fields, the EMR Appointments calendar or your pipelines, submit a Custom Build Request.