This guide walks you through the process of integrating your GoHighLevel (GHL) CRM with your HealthSherpa Medicare account.
This works with all GHL/LeadConnector white-labels too – such as Done For You, AgentCRM, GoGuru, or any other white-label.
If you have any questions, email medicare-integrations@healthsherpa.com.
Looking for troubleshooting help? See the troubleshooting section below.
What this integration offers
This streamlines your workflow from GHL, to quoting, to enrollment, eliminating dual data entry.
GHL contacts sync to HealthSherpa Medicare in real-time – both when created and when updated:
Each GHL contact gets a unique link to their HealthSherpa Medicare quoting session:
So, your GHL contact data flows to HealthSherpa Medicare all the way through quoting and enrollment – eliminating double data entry:
To send data from HealthSherpa Medicare back to GoHighLevel, you'll want to set up our webhook.
1. Before you begin
Make sure:
You know your GHL Sub-account location ID(s)
You’ve converted your HealthSherpa Medicare account to an agency. You can do this even if you’re a solo agent.
(If your agency has unique LocationIDs/Sub-accounts per agent, and added your LocationID to their API key, you don't need to be an agency. Details)
For any of your downline agents using this integration – their HealthSherpa Medicare account is joined to your agency account.
User emails match between GHL and HealthSherpa Medicare accounts. (See how to update your HS Medicare email here.)
2. Setting up the integration
To set up the integration, watch this video – or follow the instructions below.
Generate your API key
Log into your HealthSherpa Medicare agency account.
Go to the Integrations tab.
Under the GoHighLevel section, click Generate your API key.
Enter one or more GHL location IDs (comma-separated).
(Entering more than one location is applicable IF each of your GHL agents has their own sub-account/location ID. Learn more below.)
Click "Generate API key."
⚠️ If you need to edit Location IDs after generating your key, contact us: medicare-integrations@healthsherpa.com (soon you'll be able to do this yourself).
Install the HealthSherpa Medicare for Workflows App
Log into your HealthSherpa Medicare account, and in the same browser, click one of these install links:
Using classic GoHighLevel? > Click this install link
Using a whitelabel such as GoGuru, DFY, AgentCRM? > Click this install link
You’ll land on this page – scroll down and click the Next button:
Select the GHL Sub-account you'd like to integrate with:
Enter the API key you generated and press Verify & Install:
You'll be directed to HealthSherpa Medicare, and see this success message:
3. Setting up Workflows
To set up Workflows, watch this video, or follow the instructions below.
• Required custom fields
In GHL, go to Settings > Custom Fields and add two custom fields attached to the Contacts object.
Click the Create field button
Select Single Line
Enter
hsmedicare_contact_idas the field nameFor "Add to object," select Contact
For "Folder name," select Contact
Press Save
Then repeat the above, but using hsmedicare_redirect_url as the field name:
⚠️ Tip: When naming and selecting the custom fields hsmedicare_contact_id and hsmedicare_redirect_url note that our integration expects these names to be lowercase. If GHL auto-capitalizes or if you select an incorrect version, the field update may silently fail – even if the step shows as “successful.”
• Create Contact Workflow
To access your Workflows in GHL, navigate to the Automations page.
1. Click the Create Workflow button, and select Start From Scratch:
2. Click Add New Trigger and choose Contact Created, then click the Save Trigger button.
(If you want, you can add a filter here. For example, if you have ACA and Medicare contacts, you can add a filter for contacts tagged "Medicare.")
3. Then, below that Contact Created trigger, click the plus sign to add an action, choose Assign to User, select yourself as the user, then click Save Trigger.
4. Add the Create Contact V1 workflow action defined in the HealthSherpa Medicare for Workflows app.
To add this, enter Create Contact V1 in the search field. Use that exact term, make sure you don't add an extra space. You may need to scroll down.
Click on Create Contact V1
Then you'll see all of the fields that can be written to on HealthSherpa, and which fields from GHL should map to them. Make any edits you need here. When you're done, press the Save Action button.
5. Click the plus sign below Create Contact v1 to add an action, then:
Click Update contact field
Click Add field
Search for hsmedicare_contact_id and select it
Then click the "tag" icon, and navigate to HealthSherpa Medicare For Workflows (scroll down), then #1 Create Contact V1 then Contact ID
Click Add field
Search for hsmedicare_redirect_url and select it
Then click the "tag" icon, and navigate to HealthSherpa Medicare For Workflows (scroll down), then #1 Create Contact V1, then Redirect URL
Click Save Trigger
6. Optional: Click "Test workflow" to test that a Contact is successfully created. If you have any issues, click into the "Execution logs" and click "View Details" for clues.
7. Finally, Save (if it isn't auto-saved) and Publish your Workflow to set it live:
• Update Contact Workflow
Now you'll go through similar steps, but for the Update Contact Workflow, to trigger the Contact record in HealthSherpa to be updated to match the Contact record in GHL.
1. Go back to your Automations page, click the Create Workflow button, and select Start From Scratch.
2. Click Add New Trigger and choose Contact Changed.
3. Click Add Filters. Here's you'll choose which fields should – upon having their value updated – trigger this Workflow. For example, if you select email, then if the email in GHL, then the entire Contact record (not just the email field) will be updated on HealthSherpa.
Important: these are AND filters, not OR filters, so you should only set 1 filter per trigger. Most likely, you'll want to set up multiple filters – in which case you'd add multiple triggers, with a filter each, like this:
4. Add the Update Contact V1 workflow action defined in the HealthSherpa Medicare for Workflows app.
To add this, enter Update Contact V1 in the search field. Use that exact term, make sure you don't add an extra space. You may need to scroll down.
Click on Update Contact V1
Then you'll see all of the fields that can be written on HealthSherpa, and which fields from GHL should map to them. Make any edits you need here. When you're done, press the Save Action button.
5. Finally, Save (if it isn't auto-saved) and Publish your Workflow to set it live:
✅ With that, you're all set! Your contacts will sync, and you'll have a HS Medicare redirect link on each GHL contact record.
⚠️ Important: Make sure each contact is assigned to an agent with a HealthSherpa account and is connected to your agency. The sync will not occur if there is no agent assigned to the Contact.
⚠️ Important: If you'll be updating a contact's assigned agent over time, you'll need a separate custom Workflow – see below for how handle that.
• Backfilling (optional)
Here's how to move all or some of your existing GHL Contacts over to HealthSherpa Medicare at once:
In GHL, go to your Contacts tab
Select any Contacts you'd like to move over from your Contacts list
Click the Add to Automation icon:
Add an Action Name – this can be anything, it's just for your logs
Select the Create Contact Workflow – or in other scenarios, you may want to run the Update Contact Workflow
Click Add to Automation and your Contacts will transfer to HS Medicare
Tip: When backfilling many contacts at once, you might encounter a “Too Many Requests” error. In our internal testing, batches of ~20 contacts processed reliably; higher volumes (50–100) had intermittent failures. Consider chunking your batches into smaller sets to avoid this error.
Contact reassignment between agents
If you use GHL in a way where contacts may be reassigned from one agent to another over time, you’ll need to add a separate Reassignment Workflow to keep your sync working as expected.
Without this workflow, updating a contact’s assigned agent will fail to sync, because the contact remains tied to the original agent’s HealthSherpa account.
You'll account for this by building a Reassignment Workflow:
Reassignment Workflow
This workflow triggers when a contact's assigned agent changes and syncs the contact to the new agent’s HealthSherpa account.
⚠️ Important: This is not a true "transfer” of the Contact record in HealthSherpa – it results in a new contact being created in HealthSherpa, in the new agent's account.
Step 1. Create a new workflow
Go to Automation > Workflows in GHL and click + Create workflow
Select Start from scratch
Set the trigger to: Contact Changed
Then apply a filter: Assigned User > Has changed
Press Save trigger
Step 2. Add conditional logic (important!)
Add a condition block immediately after the trigger:
Only continue if:
HS Medicare Contact IDexists on the contact
This prevents the workflow from running for brand new contacts (since those should use the Create Contact workflow instead). It ensures this workflow only runs when an already-synced contact is being reassigned.
Step 3. Add the Create Contact workflow action
Under the Yes branch of your condition:
Click the + sign
Add the Create Contact V1 action from the HealthSherpa Medicare for Workflows app
Configure as needed (e.g. lead vs client, contact fields, etc.)
Step 4. Update the custom fields
Add an Update Contact Field step to set the new contact’s:
hsmedicare_contact_id→ value returned from the Create Contact stephsmedicare_redirect_url→ value returned from the Create Contact step
What to expect
After a contact is reassigned to a new agent, a new HealthSherpa contact is created in the new agent's HealthSherpa Medicare account.
The redirect link now points to that new contact
Old redirect links (from the previous agent) will still work – but only for that agent
Medicare applications are not transferred between agents (since they're tied to separate contact records in HealthSherpa)
Let us know at medicare-integrations@healthsherpa.com if you have any questions.
If you have a Sub-account per agent
Some agencies set up their GHL principal agent as a Sub-account, and downline agents are Users below that Sub-account. Other agencies set up their GHL principal agent as an Agency, and each downline agent is a Sub-account below that Agency. If you're operating this way, here's what you need to do:
When you generate your API key, enter the Location IDs of all of your downline agents' Sub-accounts, comma separated.
Then, each agent should go through the integration process outlined in the Workflow Creation section above.
⚠️ After you create your API key, if you need to add or remove Location IDs, go to your Integrations tab in HS, scroll to the GHL card, and click Update Location Id.
Field reference & validation
Below are the contact fields HealthSherpa expects, with their rules. Any optional fields that did not pass validation will be ignored and contact creation/update will sync, so long as the required fields pass validation:
Field | Required? | Rules / Format |
external_id | Required (hidden) | Auto‑populated from contact.id |
agent_email | Required (hidden) | Auto‑populated from user.email. An agent with a HealthSherpa Medicare account must be assigned to the contact in order for the sync to occur |
first_name | Required | String, 1–100 chars. Defaults to contact.first_name |
last_name | Required | String, 1–100 chars. Defaults to contact.last_name |
Optional | Must be a valid email format if present. Defaults to contact.email | |
phone | Optional | Must be a valid US phone number and 10 digits if present. Defaults to contact.phone_raw |
address_1 / address_2 | Optional | Strings, max 100 chars each. address_1 defaults to contact.address1 |
city | Optional | String, max 100 chars. Defaults to contact.city |
state | Optional | Must be a valid US state (e.g., TX or Texas). Defaults to contact.state |
zip | Optional | 5-digit US ZIP code (e.g., 77001) |
birth_date | Optional | Use a Date Picker field. |
sex | Optional | Must be male or female if provided |
type | Optional | Must be client or lead, defaults to lead |
medicare_number | Optional | String, max 100 chars |
medicaid_number | Optional | String, max 100 chars |
medicare_part_a_effective_date | Optional | Use a Date Picker field type in GHL |
medicare_part_b_effective_date | Optional | Use a Date Picker field type in GHL |
medicaid_eligible | Optional | Must be either true or false |
extra_help | Optional | Must be either true or false |
Troubleshooting
Tip: Try troubleshooting with our AI chatbot (in the bottom-right corner).
The integration didn't connect
Did you log into your HealthSherpa Medicare account first, and from the same browser, load the installation link?
Did you load the correct installation link? There are 2: one for GoHighLevel classic, and one for LeadConnector/Whitelabel brands (such as DFY, Agent CRM, GoGuru, etc.)
Did you use the correct LocationID?
Did you copy your API key into the GHL integration page, and not your LocationID?
Contacts aren't syncing
Common issues:
Make sure that you clicked Publish on your Workflows.
Make sure that you are the user/agent assigned to the contact in GHL
Make sure your GHL account's email matches the email for your HealthSherpa Medicare account.
If you're a downline agent and your agency set up the integration for you, check that your HealthSherpa Medicare account is joined to the agency account that set up the integration.
Less common issues:
Make sure you've added our custom fields in lowercase, just like this: hsmedicare_contact_id and hsmedicare_redirect_url
If only the Update workflow isn't syncing, try the steps in the Custom fields aren't populating section below
Make sure the
hs_contact_idcustom field is stored under the Contact folder, not any other folder.Check the Execution Logs of the Workflow for the Create Contact v1 action with a Failed status and click View Details. This will reveal the Event Details and any messages about why the contact failed to sync:
Fields aren't all syncing
If your contacts are syncing, but certain fields aren't transferring over, please reference the field validation section above to ensure that your values match the Rules / Format criteria there.
To investigate further, from your workflow, click Execution Logs, look for any logs with the Create Contact v1 action and click View Details. This will reveal the Event Details and any messages about specific fields that failed to be saved:
Make sure you've added our custom fields in lowercase, just like this: hsmedicare_contact_id and hsmedicare_redirect_url
Custom fields aren't populating
If our two custom fields aren’t updating, or if the "Update contact" workflow has stopped working (even though the workflow log shows “success”) you may have a broken field mapping.
This is likely due to an action version number change. This can happen if you’ve deleted and re-added, or added more than one “Create Contact” action – which increments the internal action number – for example, if you've added a second Create Contact action it will be called "#2 Create Contact v1" and the custom field value hsmedicare_create_contact_v1.1.data.redirect_url will change to hsmedicare_create_contact_v1.2.data.redirect_url.
In other words, this error happens if the number on the right doesn't match the number on the left here:
To fix this issue: reopen your “Update Contact Field” action in your Create Workflow, re-select the correct two custom fields from the dropdown menu, save, and publish. If that doesn't work, delete and re-add the action:
FAQ
What is my Location ID?
In your GHL account, click into Settings and then Business Profile:
Can I sync a contact's prescriptions, providers, or pharmacies?
Not yet.
Does data sync from HealthSherpa Medicare back to my GHL CRM?
Yes, to send data from HealthSherpa Medicare back to GoHighLevel, you'll want to set up our webhook.
Where do I get my API Key on GoHighLevel?
Note, you don't need a GHL API key for the above setup, only if you're also setting up our Webhook. For most users, you'll find your API key on the Settings > Business Profile page – see here for a video walkthrough. Some versions of GoHighLevel (such as GoGuru), only have it available under the "Private Integrations" page (also known as the "API keys" page) – to get it there, 1) click new integration 2) give it a name 3) for Scopes, select Edit Contacts and View Contacts, 4) you'll see a popup with your API key, like this.
AgentCRM workflow
If you're using AgentCRM, they've created a workflow template you can use, saving you some steps. See this video walkthrough, and reach out to them with questions.
Got questions? Contact support
You can chat with the AI bot anytime (in the bottom-right corner),
email medicare-agents@healthsherpa.com, or call (855) 521-4984.






























