
Greet Every New Lead Before They Go Cold
How to Welcome Every New Lead Using the Contact Created Trigger in GoHighLevel
The first five minutes after somebody fills in your form decide most of what happens next. Reply inside that window and the conversation is still warm. Reply the following morning and you are competing with three other businesses who got there first, plus the buyer's own second thoughts.
The Contact Created trigger in GoHighLevel is the simplest fix for that problem. It starts a workflow the moment a new contact record appears in the sub account, whatever created it, and it does so in seconds rather than minutes. This guide covers what the trigger listens for, how to set it up, the filters that keep it precise, and the mistakes that quietly stop it working.
What the Contact Created Trigger Actually Does
The trigger fires once, when a contact record is created for the first time. It does not care how the record arrived. A form submission on a funnel, a calendar booking, a chat widget conversation, a Facebook or Google lead form, an inbound call to a tracked number, a manual entry by a team member or an API call from a connected system will all create a contact and all fire the trigger.
That breadth is the point. Rather than building a separate welcome sequence for each channel, you build one workflow on Contact Created and let filters decide what happens next.

The one behaviour worth testing yourself is bulk import. HighLevel's own documentation states that contacts added through a CSV import do not fire the Contact Created trigger, and that is the safe assumption to build on. Community reports have occasionally contradicted this on tag based triggers, so before you rely on it either way, import a two row test file and watch whether anything enrols. It takes a minute and saves you an embarrassing message going out to two thousand imported records.
Setting Up the Trigger Step by Step
Open Automation in the left sidebar, go to the Workflows tab, then click Create Workflowand choose Start from Scratch. Recipes are useful for standard sequences, but a welcome workflow is usually specific enough to the business that an empty canvas is quicker.
On the blank canvas, click Add New Trigger. The picker groups triggers by category. Under Contactyou will find Birthday Reminder, Contact Changed, Contact Created, Contact DND and Contact Tag sitting together. Select Contact Created.

Name the trigger next. This field is easy to skip and it is the one thing that makes an account readable a year later. New Lead from Paid Ads tells you what the workflow listens for. A default name tells you nothing.

Then click Add filters, set your conditions, click Save Trigger, build your actions and finally switch the toggle at the top right from DrafttoPublish. A workflow left in Draft never runs, and this is comfortably the most common reason a new build appears to do nothing.
The Filters Available on This Trigger
Filters are what turn a broad trigger into a precise one. On Contact Created the standard fields are deliberately short: Contact Type, Email,Phone and tag, with every custom field configured on the sub account listed underneath in its own group.

Tag is the one you will use most. Tag your forms, your ad sources and your booking pages, then filter the trigger on those tags and a single Contact Created workflow can route five different lead sources into five different sequences. The available operators are Equals to,Not Equals to,Any of and None of, which covers matching one tag or matching against a whole group at once.

Email and Phone are most useful as presence checks. Filtering on an email being present stops an email step firing at a contact created from a phone call with no address on file.Contact Type separates leads from customers where the account uses that distinction. Multiple filters on one trigger combine with AND logic, so every condition has to be true before the contact enrols.
What to Build Underneath It
The trigger is the easy half. A welcome workflow that actually converts tends to follow the same shape.
Send an SMS within seconds.Short, human, from a real name. This is the message that does the work, because it arrives while the person is still on your website.
Send an email a minute or two later.This one carries the detail: what happens next, who they will speak to, a booking link.
Assign an owner.Assign to User can round robin across a sales team so a real human owns the lead immediately.
Create a task.A dated call task for the assigned user means nothing depends on somebody remembering.
Tag and notify.Tag the record with its source and fire an internal notification so the team sees the lead land.
Wait, then follow up.A wait step followed by a second message catches everyone who did not reply to the first.

A published workflow with messaging actions and wait steps sitting underneath the trigger.
Two settings on the workflow Settings tab matter more here than anywhere else. Stop on Response halts the remaining messages the moment the lead replies, which stops your automation talking over a live conversation. The time window decides whether a lead created at midnight gets a text at midnight. For speed to lead you usually want the first SMS to send at any hour and the rest of the sequence held until morning.
Mistakes That Stop This Trigger Working
Leaving the workflow in Draft.The canvas saves, everything looks finished, and the toggle was never switched to Publish.
No sending number or from address.The workflow enrols the contact and the message step silently fails. Enrollment History on the workflow shows exactly this, and it is the first place to look.
Assuming imports will fire it.Test with a two row CSV before you assume either way.
Duplicate records.If your forms create a new contact rather than updating an existing one, returning leads get welcomed as though they are new. Check the duplicate handling settings on the sub account.
No filters on a busy account.Every contact from every source enters the same sequence, including records your team creates manually while testing something else.
Frequently Asked Questions
Does the Contact Created trigger fire for CSV imports?
HighLevel documents that contacts added through a bulk CSV import do not fire this trigger, and that is the assumption to build on. Because community reports have occasionally differed, run a two row test import before switching on any workflow that would message a large imported list.
Does it fire again if the same person fills in a second form?
No. The trigger fires when the contact record is created, not on every submission. If the second form matches an existing record it updates that contact rather than creating one. To react to repeat submissions use the Form Submitted trigger instead.
Can I run different welcome sequences for different lead sources?
Yes, and the tidiest way is tags. Have each form, ad campaign or booking page apply its own tag, then filter the Contact Created trigger on that tag. One workflow per source keeps each sequence simple and easy to switch off.
How fast does the workflow actually run?
Effectively immediately. Enrolment happens within seconds of the record being created, so the limiting factor is your own build: any wait step, time window or approval you have added between the trigger and the first message.
Need Expert Help with GoHighLevel?
New to GoHighLevel and ready to get started? Buy your GoHighLevel account here and launch with confidence.
Already know what you need and want our team to handle everything, from complete setup and customization to funnels, workflows, automations, CRM, and pipelines? Click here.



