Note: We also offer a Nextech Cloud integration, which is detailed in a separate help article. The two integrations work the same way with one key difference: patient creation requirements. Practice Plus requires significantly more fields to create a patient via the two-way sync. All other workflows, fields, and pipeline logic are identical.
How to Create Patient in Nextech Cloud From Aesthetix CRM 2-Way Sync
Learn how the manual 2 way sync works between Aesthetix CRM and Nextech Cloud.
Opportunity & pipeline automation to decrease manual data entry and drive reporting efficiency
Supports multiple pipelines to automate updating opportunities in surgical and non-surgical pipelines
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/client segmentation
Automated birthday campaigns
Patient lifetime value tracking from active payments
Two-way sync to create patients in Nextech from Aesthetix CRM
Multi-location support with location-level routing
Nextech Practice Plus integration requires Nextech Direct API access, which starts at a $2,000+ one-time fee and an additional monthly fee paid directly to Nextech.
The integration is built on AX Connect, which requires a $99/month per location integration fee paid to Aesthetix CRM.
Clients will be required to provide all appointment types and purposes in a spreadsheet for Aesthetix CRM to properly set up the appointment categorization.
The Nextech Practice Plus integration is a polling integration. Every 5 minutes, we poll the Nextech API for modifications to appointment statuses, patient records, and payments. When we detect a change (for example, an appointment moving to "fulfilled" status), we pull that data in and process it through our workflows.
Because this is polling-based rather than webhook-based, updates typically appear in Aesthetix CRM within 5 to 10 minutes of the action being taken in Nextech Practice Plus.
For multi-location practices, we isolate the location name from the appointment payload and map it to a NXT Appointment Location custom field, ensuring contacts are properly attributed to the correct location.
Because we poll at a rapid 5-minute interval, any modification to an appointment within that window will be caught. This means you may occasionally see the same appointment appear multiple times in a contact's notes -- for example, the same pending appointment showing up two or three times. This doesn't affect pipeline movement (a pending appointment coming in multiple times won't cause any stage changes), but it can create some extra note entries. This is a known characteristic of polling-based integrations.
What triggers it: An appointment is created or modified to a Pending or Confirmed status in Nextech Practice Plus (detected every 5 minutes via polling).
What happens:
We extract the patient ID from the appointment payload and make a GET Patient request to pull full patient data.
We isolate the location name from the appointment payload (critical for multi-location practices).
We format the phone number and email from the patient data for Aesthetix CRM's API.
We pull the practitioner associated with the appointment.
We identify and isolate both the appointment type and appointment purpose.
For plastic surgery + med spa practices: We run a custom code action to perform appointment categorization, classifying the appointment type into the correct category to determine the pipeline and stage (see Appointment Categorization section below).
We format the appointment date (date-only, no time support).
We create or update the contact in Aesthetix CRM and add them to the NXT Appointments Update workflow.
Fields updated in Aesthetix CRM:
First Name, Last Name, Email, Phone
Next Visit Date
Next Visit Service
Appointment Category (for plastic surgery practices)
NXT Appointment Date
NXT Appointment Location
NXT Appointment Practitioner
NXT Appointment Purpose
NXT Appointment Status
NXT Appointment Type
NXT Patient ID
Workflow actions in Aesthetix CRM:
A contact note is added with: appointment status, appointment type, appointment purpose, appointment practitioner, appointment location, appointment date, and appointment category. These notes are your audit trail for troubleshooting.
For multi-location practices, the contact is added to a location assignment workflow to ensure proper location routing.
The contact is routed through the Appointments Update workflow based on their appointment category and status (see Pipeline Logic section below).
Important: Next Visit Date uses a date-only format (e.g., 3/12/2026). The Aesthetix CRM API does not currently support date and time, so appointment times are not stored.
What triggers it: An appointment status changes to Fulfilled in Nextech Practice Plus (detected every 5 minutes via polling).
What happens:
The workflow follows the same pattern as Pending & Confirmed in terms of data collection, formatting, and appointment categorization.
The key difference is which date fields are updated: instead of Next Visit Date and Next Visit Service, we update Last Visit Date and Last Visit Service -- since this is a completed appointment.
We also update the NXT Birthday field at this stage.
The contact is added to the same NXT Appointments Update workflow for pipeline movement.
Additional fields updated (compared to Pending/Confirmed):
Last Visit Date (instead of Next Visit Date)
Last Visit Service (instead of Next Visit Service)
NXT Birthday
What triggers it: An appointment status changes to Cancelled or No-Show in Nextech Practice Plus (detected every 5 minutes via polling).
What happens:
The workflow follows the same pattern as the other appointment status workflows for data collection and formatting.
Next Visit Date and Next Visit Service are not updated for cancelled or no-show statuses.
The contact is added to the same NXT Appointments Update workflow, where they are routed to the Cancelled/No-Show stage of the appropriate pipeline.
What triggers it: A payment with "active" status is detected via the Nextech Payments Reconciliation endpoints (polled every 5 minutes).
What happens:
We extract the patient ID from the payment data and make a GET Patient request.
We format the invoice paid amount with the payment total from Nextech.
We format the phone number and email, then create or update the contact in Aesthetix CRM.
The contact is added to the NXT Payments Update workflow.
Fields updated in Aesthetix CRM:
Invoice Paid Amount
NXT Patient ID
NXT Last Payment Date
NXT Payment Status
Workflow actions in Aesthetix CRM:
A contact note is added with the payment status and invoice amount.
The Invoice Paid Amount is added to the Patient Lifetime Value via a math function.
The opportunity value is updated with the patient lifetime value.
Important Considerations for Payments:
Nextech payment data does not tie to a specific appointment. Payments come in as isolated transactions with no relationship to a particular appointment or service, which limits how useful this data is for attribution.
Not recommended for plastic surgery practices. Because of how plastic surgery practices handle reconciliations, credits, billing adjustments, and payment plans, the payments data can create issues with projecting and reporting. Surgical practices often find it makes more sense to use manual Opportunity Value assignment -- reflecting actual signed quotes or the treatments/surgeries the patient is interested in -- rather than automated payment tracking.
Works well for non-surgical / med spa practices. Non-surgical transactions are typically straightforward and transactional, so the automated Patient Lifetime Value tracking from payments tends to be accurate and useful.
This trigger is optional. We can enable or disable the payments integration based on your needs. If you're unsure whether it's right for your practice, talk to your Aesthetix CRM team.
How to Create Patient in Nextech Practice Plus From Aesthetix CRM 2-Way Sync
Learn how the manual 2 way sync works between Aesthetix CRM and Nextech.
What triggers it: A tag called NXT-Create is added to a contact in Aesthetix CRM (either manually or via automation).
What happens:
The tag triggers a workflow in AX Connect that sends a create patient request to the Nextech API.
The patient is typically created in Nextech Practice Plus within 15 to 20 seconds.
If the patient already exists in Nextech Practice Plus, the system will not create a duplicate.
Practice Plus requires significantly more fields than Nextech Cloud. This is the primary difference between the two Nextech integrations.
Required fields in Aesthetix CRM:
To successfully create a patient in Nextech Practice Plus, all of the following fields must be populated:
First Name
Last Name
Phone Number
Date of Birth
Referral Source (must match exactly with Nextech Practice Plus values)
General Practitioner (must match exactly with Nextech Practice Plus values)
Street Address
City
State
Postal Code (ZIP Code)
Critical: The Referral Source and General Practitioner fields must match the exact values configured in Nextech Practice Plus. If they don't match exactly, the patient creation will fail. During integration setup, we will provide you with the correct values to use.
How to create a patient:
Open the contact record in Aesthetix CRM.
Ensure all 11 required fields listed above are completed.
Scroll to the Tags section and add the tag: NXT-Create
The system will process the creation within 15-20 seconds.
Common reasons for errors:
Missing any of the 11 required fields
Referral Source or General Practitioner values don't match Nextech Practice Plus exactly
The patient already exists in Nextech Practice Plus
Nextech Cloud vs. Practice Plus comparison: Nextech Cloud only requires 5 fields (first name, last name, email, phone, date of birth). Practice Plus requires all 11 fields listed above, including referral source, general practitioner, and full address -- all of which must be populated and, where applicable, must match Nextech's exact values.
For plastic surgery + med spa practices (and any practice using dual pipelines), the integration uses appointment categorization to route contacts to the correct pipeline and stage.
During integration setup, we pull all of your appointment types and purposes from the Nextech API and provide them to you for review. We do some initial categorization, but you must confirm all mappings are correct before we finalize. Incorrect categorization is the most common cause of contacts moving to the wrong pipeline stage.
Each appointment type is mapped to one of these appointment categories:
Surgical Consult
Surgical Appointment
Non-Surgical Consult
Non-Surgical Appointment
Block (does not update opportunities)
Pre-Op Appointment (does not update opportunities)
Post-Op Appointment (does not update opportunities)
Online Appointment
Important: Block, Pre-Op, and Post-Op appointment categories intentionally do not update opportunities. If an appointment is categorized as one of these, the contact will not be moved in the pipeline.
Surgical Pipeline:
Appointment Category | Status | Pipeline Stage |
Surgical Consult | Pending / Confirmed | Consult Booked |
Surgical Consult | Fulfilled | Consult Complete |
Surgical Consult | Cancelled / No-Show | Cancelled / No-Show |
Surgical Appointment | Pending / Confirmed | Surgery Scheduled |
Surgical Appointment | Fulfilled | Surgery Complete |
Surgical Appointment | Cancelled / No-Show | Cancelled / No-Show |
Non-Surgical Pipeline:
Appointment Category | Status | Pipeline Stage |
Non-Surgical Consult | Pending / Confirmed | Booked |
Non-Surgical Consult | Fulfilled | Patient |
Non-Surgical Consult | Cancelled / No-Show | Cancelled / No-Show |
Non-Surgical Appointment | Pending / Confirmed | Booked |
Non-Surgical Appointment | Fulfilled | 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 maintain a single "won" status throughout the pipeline as they move between stages. The same stage changes apply, but the opportunity status stays as won.
New leads keep an open status until their appointment is fulfilled, at which point they're moved to the appropriate completed/patient stage.
If a contact is in the wrong pipeline stage, check:
Contact Notes -- review the audit trail to see which appointments came in and in what order. A common issue is a cancelled status arriving after a rescheduled/booked appointment, which can cause the contact to move backward in the pipeline.
Appointment Category -- verify the appointment type is mapped to the correct category. If a note exists but the contact is in the wrong stage, the categorization is likely the issue.
No note at all -- if there's no note for an expected appointment, it means the event didn't come through the API. This could be a Nextech-side issue or a processing issue we can investigate.
Aesthetix CRM (GoHighLevel) does not currently expose the native Date of Birth field via API. To work around this, we create a custom field called NXT Birthday and bring in the birthday data from Nextech into that field.
A dedicated Birthday workflow then copies the value from the NXT Birthday custom field into the native Date of Birth field, keeping them in sync. This ensures that any birthday automations you've built in the CRM will work correctly using data from Nextech.
The Birthday workflow is triggered when a contact's appointment reaches the Fulfilled status.
Several workflows in your Aesthetix CRM account are hidden and locked. This is intentional -- these workflows contain the core integration logic, and modifications could break the integration. The locked workflows include:
NXT Appointments Update
NXT Payments Update
NXT Birthday
NXT Location Assignment (multi-location accounts)
If you need custom automation built on top of any of these, let us know and we can either unlock specific workflows or help you build triggers off of the tags and fields these workflows create.
All Nextech-specific fields are organized in a Nextech folder within your custom fields. These fields are shared between Nextech Practice Plus and Nextech Cloud integrations.
Custom Field Name | Type | Custom Value |
NXT Patient ID | Text |
|
NXT Appointment Type | Text |
|
NXT Appointment Date | Date |
|
NXT Appointment Status | Text |
|
NXT Appointment Location | Text |
|
NXT Appointment Practitioner | Text |
|
NXT Appointment Purpose | Text |
|
NXT Payment Status | Text |
|
NXT Last Payment Date | Date |
|
NXT Birthday | Date |
|
In addition to the Nextech-specific fields above, the integration also updates these standard Aesthetix CRM fields:
Next Visit Date (on pending/confirmed appointments)
Next Visit Service (on pending/confirmed appointments)
Last Visit Date (on fulfilled appointments)
Last Visit Service (on fulfilled appointments)
Appointment Category (for plastic surgery practices)
Invoice Paid Amount (if payments integration is enabled)
Patient Lifetime Value (if payments integration is enabled)
First Name, Last Name, Email, Phone
This is a polling integration, not webhook-based. Updates appear in Aesthetix CRM within 5 to 10 minutes of the action in Nextech, rather than the near-instant updates seen with webhook-based integrations.
Duplicate note entries are possible. Because we poll every 5 minutes, the same appointment modification can be caught multiple times if modifications occur within the polling window. This doesn't affect pipeline movement but can create extra notes.
Payment data does not tie to appointments. Nextech payments come in as isolated transactions. This is fine for non-surgical practices but can create issues for surgical practices with complex billing. The payments trigger is optional and not recommended for plastic surgery.
Appointment categorization is critical. Incorrect categorization is the most common cause of pipeline issues. Review the spreadsheet we provide during setup carefully, and contact us whenever you add new appointment types in Nextech.
Next Visit Date is date-only. The Aesthetix CRM API does not support date and time, so only the appointment date is stored (e.g., 3/12/2026).
Birthday requires a workaround. GoHighLevel's native Date of Birth field isn't accessible via API, so we use the NXT Birthday custom field and a sync workflow to keep them aligned. Birthday data is updated when an appointment is fulfilled.
Block, Pre-Op, and Post-Op categories don't move the pipeline. These appointment categories are intentionally excluded from opportunity updates.
Two-way sync requires 11 fields for Practice Plus. This is significantly more than Nextech Cloud's 5 fields. Referral Source and General Practitioner must match Nextech's exact values.
Feature | Nextech Cloud | Nextech Practice Plus |
Appointment workflows | Identical | Identical |
Payment workflows | Identical | Identical |
Pipeline logic | Identical | Identical |
Custom fields | Shared (same fields) | Shared (same fields) |
Patient creation tag | NXT-Create | NXT-Create |
Patient creation fields | 5 required (first name, last name, email, phone, DOB) | 11 required (adds referral source, general practitioner, street address, city, state, ZIP) |
Exact-match fields | None | Referral Source, General Practitioner |
Patient creation time | 1-2 minutes | 15-20 seconds |
Q: How do I know if the integration received an appointment?
Check the contact's Notes tab. Every appointment event generates a note with the status, type, purpose, practitioner, location, date, and category. If there's no note, the event didn't come through the API.
Q: Why do I see the same appointment in the notes multiple times?
This is a known characteristic of polling integrations. If an appointment is modified multiple times within the 5-minute polling window, each modification is captured. It doesn't affect pipeline movement but can create extra notes.
Q: 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 check whether a cancellation was processed after a new booking -- this can cause a contact to appear to move backward.
Q: Should I enable the payments integration? I
t depends on your practice type. For non-surgical / med spa practices, it works well and provides useful Patient Lifetime Value tracking. For plastic surgery practices, it's generally not recommended due to how payments are structured (no tie to appointments, complex billing/credits). Talk to your Aesthetix CRM team to decide.
Q: Why didn't a patient get created in Nextech after I added the NXT-Create tag?
For Practice Plus, verify that all 11 required fields are populated: first name, last name, email, phone, date of birth, referral source, general practitioner, street address, city, state, and ZIP code. The most common cause is a missing field, or the Referral Source / General Practitioner values not matching Nextech's exact values. The patient may also already exist in Nextech.
Q: What's the difference between Nextech Cloud and Practice Plus?
The integrations work identically for appointments, payments, and pipeline logic. The only difference is patient creation: Cloud requires 5 fields, while Practice Plus requires 11 fields (including referral source, general practitioner, and full address). See the comparison table above.
Q: How does multi-location work?
We isolate the location name from the appointment payload and map it to the NXT Appointment Location custom field. For multi-location patient creation, we set up a location field that maps to your Nextech location IDs during integration setup.
Q: I added new appointment types in Nextech. What do I need to do?
Contact Aesthetix CRM support so we can pull the new appointment types and add them to your categorization mapping. Until they're categorized, new appointment types may not route contacts to the correct pipeline stage.