Lead-to-CRM automation with Make: a safe setup guide
Build a lead-to-CRM automation with Make that captures forms, prevents duplicate contacts, tracks source, and starts controlled follow-up.

This sheet contains partner links. A purchase through one earns Runbook a commission at no additional cost to you. How we make money.
In about 75 minutes, you'll have a lead-to-CRM automation with Make and GoHighLevel that catches a website inquiry, files it under the right source, and prepares the correct follow-up. You will test the whole route without contacting a customer. The result is one visible sales record instead of another lead stranded in an inbox.
What you'll build
Your website form will send each inquiry to Make, the software that moves information between business tools. Make will check the submission and pass it to GoHighLevel. GoHighLevel is the CRM, the software that stores your customers and sends the follow-ups.
The finished route looks like this:
| Stage | What happens | What you check |
|---|---|---|
| Form | A visitor submits contact details and a question | Consent and source are present |
| Make webhook | The inquiry arrives immediately | Required fields are not blank |
| GoHighLevel contact | One person is created or updated | No duplicate record appears |
| Source tag | The contact receives source-website | Reporting can separate lead sources |
| Opportunity | A potential job enters the New Lead stage | The sales board shows an owner and status |
| Follow-up | A workflow prepares the first reply | Sending stays off until testing passes |
A webhook is a web address that catches data another system sends. Make says webhook scenarios normally run as soon as information arrives, so this route removes the wait between a form submission and a CRM record. If you have not built the receiving address yet, complete the Make webhook setup first.
Your move
Stack
You need three things:
- A website form that can send data to a webhook.
- A Make scenario, which is Make's name for one automated routine.
- A GoHighLevel sub-account with permission to manage contacts, opportunities, tags, and workflows.
Make's GoHighLevel connector documentation lists modules for searching, creating, and updating contacts, plus creating and updating opportunities. A module is one step on the Make canvas. The connection uses authorization from GoHighLevel, so you do not paste a password into the scenario.
Use test details that belong to you. Do not use a real prospect as the first run. Write AUTOMATION TEST in the message field so nobody mistakes the record for a sale.
Steps
1. Prepare the CRM before Make
In GoHighLevel, open the correct sub-account. Select Opportunities, then Pipelines, then Create New Pipeline. Name it Inbound leads. Add these stages:
- New Lead
- Contacted
- Booked
- Won
- Lost
Keep the first version short. A stage should represent a real change in the sale, not every click a team member makes.
Next, open Settings > Business Profile > Contact Preferences. Turn Allow Duplicate Contacts off. Choose Email as the primary match and Phone as the secondary match if your form collects both. HighLevel's contact deduplication guide explains that these preferences control whether matching submissions create another record or update the existing person.
Create the tag source-website. A tag is simply a label attached to a contact. Use a fixed label rather than free text, or you will eventually get several versions such as Website, web-site, and site lead that split the same source across reports.
2. Capture one complete sample
In Make, select Scenarios > Create a new scenario. Name it Website lead to GoHighLevel v1. Add Webhooks > Custom webhook, then select Add beside the Webhook field. Name the webhook website-leads-v1 and copy its address into your form's webhook or integration setting.
Select Run once in Make. Open the form in a private browser window and submit your own details. Include every field the live form can send:
- first name
- last name
- phone
- message
- consent
- source
- submission ID
Return to Make and select the numbered bubble above the webhook. Check that every value sits under the correct label. Make's webhook documentation says incoming requests are queued and usually start the scenario immediately. That makes the webhook useful for new inquiries, but it also means a bad field can reach the next step quickly.
3. Add a validation gate
Select the right edge of the webhook module and add Tools > Set multiple variables. Create clean variables named first_name, last_name, email, phone, message, consent, source, and submission_id. Map the matching form fields into them.
Set source to website inside Make rather than trusting a visitor-supplied value. Keep the original landing-page name in a separate field if you need campaign detail.
Select the line after the Tools module and choose Set up a filter. Name it Valid lead with consent. Require these conditions:
consentequalstruemessageexists- either
emailorphoneexists
The filter is a gate. A submission that cannot be contacted, has no request, or lacks the consent your process requires should stop before it enters the customer database.
4. Connect Make to GoHighLevel
Add GoHighLevel > Create a Contact after the filter. In Connection, choose Create a connection, select the location connection, and authorize only the sub-account receiving these leads. If your account requires a private marketplace application, follow the connection screen to create it and grant contact and opportunity access.
Map first name, last name, email, phone, and message. Map source-website into Tags. If the module exposes a source field, map the fixed value website there too.
Do not turn on the scenario yet. Select Run once, send the test form again, and inspect the new contact under Contacts > Smart Lists in GoHighLevel.
5. Create the sales opportunity inside GoHighLevel
Keep Make responsible for a clean contact handoff. Let GoHighLevel place that person on the sales board.
Open Automations > Workflows, select Create Workflow, then choose a blank workflow. Name it Website lead intake. Select Add Trigger > Contact Tag. Set the event to Added and choose source-website.
HighLevel's Contact Tag trigger guide confirms that a workflow can begin when a specified tag is added. It also warns that tags do not trigger older contacts retroactively. That is useful here: only a new handoff from Make should enter this route.
Add Opportunity > Create/Update Opportunity. Select the Inbound leads pipeline, the New Lead stage, and Open status. If one person can submit several requests, decide whether those should update one open opportunity or create separate jobs. For most local businesses, one open opportunity per current inquiry keeps the board readable.
Add an internal notification to the responsible person. Include the contact name, phone, email, message, and source. Keep the workflow in draft while you test.
6. Add follow-up without sending it
Below the opportunity action, add an email or text action. Leave it unpublished, or route it only when the contact carries a separate test-approved tag. The first reply should confirm receipt and set an honest expectation for a human response.
Use the CRM follow-up comparison if you still need to choose the sending system. Remember that whether your emails actually reach inboxes is called deliverability. Before switching on email, complete the inbox authentication build.
7. Run the two-pass test
Publish only the opportunity and internal-notification actions. Keep customer messaging disabled. Then run these tests:
- Submit a complete form. Confirm one contact, the
source-websitetag, one open opportunity, and one internal notice. - Submit the same details again. Confirm the existing contact changes or remains intact, and no second contact appears.
- Submit without consent or without a contact route. Confirm the Make filter stops the run before GoHighLevel.
- Open Make's scenario history and inspect each module. Green checks are not enough. Read the actual mapped values.
When both valid submissions leave one clean record, publish the follow-up action and send one last test to yourself. Then switch the Make scenario on.
The part that breaks
Duplicate contacts are the costly failure because each copy can start another text, email, task, and opportunity. The problem often hides during a single happy-path test. Your second identical submission is the important one.
Source labels break next. Do not let every form invent its own spelling. Keep a small approved list such as source-website, source-google, and source-referral. That gives you reporting you can trust later.
Finally, watch the Make connection. If authorization expires, the website may still show a successful form message while the CRM receives nothing. In Make, open Scenario settings and enable storage for incomplete executions where your plan permits it. Check failed runs each workday. For volume and credit planning, use the Make pricing breakdown.
Copy this
Paste this into the first reply, then replace the brackets before publishing:
Subject: We received your request
Hi {{contact.first_name}},
Thanks for contacting [Business name] about [service]. We received your request and a team member will reply by [honest time window].
If the request is urgent, call [phone number].
[Business name]
Keep this message factual. Do not promise a time you cannot meet after hours or on weekends.
Upgrade path
After seven clean days, add one improvement at a time. Route leads by service area, assign an owner, or write the landing-page name into a custom field. Test after every change.
Then add a daily exception check: compare form submissions with CRM contacts and investigate any missing submission ID. That simple count catches silent failures before a week of inquiries disappears.
Your next build is the automation library. Pick the handoff that removes the next repeated copy-and-paste job, and keep the same rule: one controlled test before customer contact. Get the next build.
Frequently asked questions
What does a lead-to-CRM automation do?
It takes a new inquiry from your form, checks the information, creates or updates the person in your CRM, records the lead source, and starts the correct follow-up routine.
How long does this Make and GoHighLevel setup take?
Allow about 75 minutes for the first build, including the CRM connection, duplicate checks, two test submissions, and a review of the paused follow-up workflow.
How do you stop duplicate contacts in GoHighLevel?
Turn off Allow Duplicate Contacts, match by email first and phone second, then submit the same test lead twice and confirm that one contact record remains.
Should the first test send an email or text message?
No. Keep customer messages disabled until the contact, source tag, pipeline opportunity, and duplicate test all produce the expected result.
About Runbook
AI tools and automation builds for marketers. What to use, how to wire it, and the workflow to copy this week. How we work
GET THE NEXT DISPATCH
Run the next build before your competitors read about it.
One short email when an AI tool or automation actually changes the work, with the build to copy.
No send unless there is a build worth running.
// keep_reading
Related builds

Zapier alternatives for automation in 2026
Zapier is easiest to start, but Make, n8n and GoHighLevel can be cheaper or cleaner for the right automation job.

Best CRM for automated lead follow-up in 2026
GoHighLevel wins for built-in speed-to-lead SMS and email. Three CRMs for lead follow-up automation, with pricing and the step that trips every builder.

Best AI automation tools for marketing teams in 2026
Make bills by credit, Zapier by task. Four automation tools marketing teams run, priced at real volume, with the job each handles and where each breaks.