Quick overview
Video: https://youtu.be/FUI6QNU9IJE
This workflow runs weekly to pull dentist leads from Apify Google Maps scraping results, normalizes the data, and syncs them to HighLevel (GoHighLevel) by upserting contacts and creating opportunities when needed, with Slack alerts sent if the workflow fails.
How it works
- Runs weekly on a schedule.
- Calls the Apify Google Maps actor to fetch dental clinic listings for the configured locations and keywords.
- Limits processing to the first 5 results, normalizes fields (name, phone, website, domain, address, ratings), and drops entries without a name plus at least a phone or website.
- Searches HighLevel contacts by phone number and marks each lead as new or existing based on whether a matching contact is found.
- For new leads, upserts the contact in HighLevel and then checks whether an opportunity already exists for that contact.
- For existing leads, checks HighLevel for an existing opportunity using the lead’s phone number.
- Creates a new HighLevel opportunity in the specified pipeline and stage for any lead that does not already have an opportunity.
- If any node errors, posts a failure message to the configured Slack channel with the node name and error details.
Setup
- Add an Apify API token (HTTP Header Auth) and update the Apify actor input (search terms, locations, max results) to match your targeting.
- Connect your HighLevel (GoHighLevel) OAuth2 credentials and replace the locationId, pipelineId, and stageId values with those from your account.
- Ensure your HighLevel account is set up to allow contact upserts and opportunity creation in the selected pipeline.
- Add Slack credentials and select the channel where you want workflow failure alerts to be posted.
- Adjust the item limit if you want to process more than 5 leads per run.