Log into the GHL Agency platform. In the left-hand navigation menu, click on Sub-Accounts.
Use the search bar to locate the sub-account to be used. Once found, click the three-dot menu on the account card and select Manage Client.
Inside the Manage Client view, click the Actions button in the upper right corner. From the dropdown menu, select Load Snapshot.
In the Load Snapshot modal, use the dropdown to search for and select the appropriate snapshot. As of March 2026, the snapshot for a shared 5-practice account is:
Own - 5 Practice Shared Account FIXED snap
If the account already has one or more active practices, skip any assets that are already configured to avoid overwriting them. The rule is consistent across all asset types: skip items that do NOT include a specific practice name. Only Select items that include a practice name.
Apply this rule to the following asset categories:
If there are no active practices on the account, the snapshot can be loaded in full without skipping any items. However, before proceeding, ensure the following are completely deleted to prevent conflicts:
After the snapshot is loaded, navigate to Settings → Custom Values. Custom values are numbered 1 through 5, with Practice 1 using values with no number suffix and Practices 2–5 using the corresponding suffix (e.g., _2, _3, etc.).
The Appointment Validation Sheet Links used in the custom values are stored in the VitalisMD - Billing shared Google Drive. Navigate to Google Drive → Shared Drives and open VitalisMD - Billing.
Right-click any existing Success Tracker and select "Make a copy". Rename the copy using the format: [Practice Name] - Success Tracker.
Delete all existing records from the tracker except one. The single remaining row must be kept to preserve formatting and prevent automations from using the header row as a data entry point.
Navigate to Namecheap and use the search bar to find a suitable domain for the practice's landing sites and marketing campaigns.
Once a suitable and available domain is confirmed (indicated by a checkmark), click "Add to cart".
Click "Confirm Order" to complete the purchase.
After purchase, go to Manage Domain → Advanced DNS. Delete all existing records, then add a new A Record:
| Type | Host | Value | TTL |
|---|---|---|---|
| A Record | @ | 162.159.140.166 | Automatic |
Once the domain is configured, hand it off to Dayane. She will provide:
Two payment links must be created per practice. Navigate to Payment Links and duplicate an existing practice's links using the three-dot menu → Duplicado (Duplicate):
After duplicating, update the following fields in each link:
Click "Actualizar producto" (Update product) to save.
After saving each link, scroll to the Metadata section and click "Editar" (Edit) to add:
| Field Name | Value |
|---|---|
| Client | Name of the practice |
| LocationID | GHL Location ID of the sub-account |
If the practice operates in a different timezone than the GHL account, create a Pabbly timezone conversion workflow. Name it:
[GHL Timezone] to [Practice Timezone] - [Account Name] - Global Validation S...
Replace the default webhook URL in both the Appointment Reminder Campaign and Appointment Cancelled workflow custom values with the new Pabbly webhook.
Within the workflow, update both DateTime Formatter steps:
Navigate to Settings → Phone System → Phone Numbers and click "+ Add Number". Set the Friendly Name to identify the practice.
Navigate to Settings → Domains and click "+ Connect a domain":
Navigate to Pipelines and update the names to reflect the new practice. Choose a pipeline slot for a practice not currently live on the account.
Navigate to Calendars and update the two calendars matching the chosen pipeline's practice name. Also update the Calendar Group name in the sidebar.
Create a new Google Calendar named: [Practice Name] - VitalisMD Appointments
In the Appointment Calendar settings in GHL, go to the External Sync tab. Set Link to Calendar to the newly created Google Calendar. Leave sync as Default Sync (One-way Sync). Click "Save changes".
A Pabbly workflow must be created for each lead form going live. Name using the convention:
FB to HL - Lead Form - [Practice Name] [State] - [Campaign Name]
Update the trigger step with:
After updating the trigger, click "Re-Capture Webhook Response" to capture a fresh response from the new form, ensuring all fields are properly mapped throughout the workflow.
Route 1 (Qualified Leads): Update Select Label to map to the location qualifier question from the new form. Filter Type: Equal to / Value: yes.
Route 2 (Disqualified Leads): Update the same field for Route 2. Filter Type: Equal to / Value: no.
Update the GHL connection to the correct sub-account, then re-execute the step to retrieve the correct pipeline and stage IDs for the new practice.
America/Chicago)
Once all steps are configured, execute them in order — the test lead should appear in GHL.
Navigate to Sites → Funnels and open the folder matching the chosen practice. Each folder contains 4 funnels.
All Funnels — Settings Update:
[pixel] with the actual Pixel ID provided by Dayane (appears twice in the snippet)
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '[pixel]');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=[pixel]&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->
Appointment Requests & Phone Evaluations — Image Updates:
In Meta Business Suite, go to Safety Settings → Domains. Click "+ Añadir" and follow Meta's domain verification steps by adding a TXT record in Namecheap. Once propagated, the domain will show as "Verificado" (Verified).
Navigate to the Available Ad Accounts Google Sheet, locate the ad account number provided by Dayane, and update the Name column to reflect the practice being onboarded.
In Automations, locate these two shared workflows (outside any practice folder) and add a new condition branch for the new practice:
For each new branch update:
location_name custom value (e.g., )
Navigate to the workflow folder matching the chosen practice. All workflows should be published. The only one requiring extensive editing is the Appointment Reminders Campaign.
Webhook — Global Validation Form Action (Appointment Reminders & Cancelled Workflow): Verify the webhook URL custom value is correct for the practice's timezone. If different from the GHL account, replace with the Pabbly timezone-adjusted webhook. Ensure all Custom Data fields use the correctly numbered custom values.
Appointment Reminders Campaign — Content Updates:
Verify the test contact was created correctly in GHL with:
If the practice is in a different timezone than the GHL account, before booking the test appointment:
From the test lead's contact record, book an appointment using the correct Appointment Calendar for the practice.
After booking, manually execute all automation steps for the test contact. Monitor progress in the Enrollment History of each workflow — the contact should show as "Finished" or actively progressing through wait steps.