
GoHighLevel Forms and Surveys: Setup Guide (2026)
GoHighLevel Forms and Surveys: Setup Guide (2026)
By Dr Priya Jaganathan, GoHighLevel Certified Admin · HL Growth Partner, Australia · Updated 1 September 2026 · 8 min read
Most agencies treat GoHighLevel forms and surveys as interchangeable, then wonder why their contact records are half empty. The difference is structural: a form is a single-screen data capture element that lives inside a funnel step or website page, while a survey is a multi-step, page-by-page experience with built-in conditional logic that branches based on what the contact answers. Use a form when you want a name, email, phone and one or two qualifiers captured in under ten seconds. Use a survey when you need six or more answers, when later questions depend on earlier ones, or when you are scoring and disqualifying leads before they ever reach a calendar.
Both live under Sites in the sub-account, both write to the same custom fields on the contact record, and both fire their own workflow trigger. But they behave differently on embed, on partial submission, and on how much data you can realistically expect a mobile visitor to give you. This guide walks through the build order I use on every client sub-account: fields first, then the form or survey, then the embed, then the workflow, then the consent and compliance layer. Get that order wrong and you will be rebuilding automations because a custom field did not exist when the form was created.
GoHighLevel forms and surveys: what each one is actually for
The Forms builder and the Surveys builder are separate tools in the same menu (Sites > Forms and Sites > Surveys). They share the same drag-and-drop field library and the same custom field pool, so a "Suburb" field you create for a form is immediately available in a survey. Where they diverge is flow control.
Forms: fast capture, one screen
A form renders as a single block. You can add multi-step pages in the newer Forms builder, and you can apply conditional logic to show or hide individual fields, but the intent is speed. Every extra field on a form costs you conversion rate — on Australian service-business funnels I consistently see a measurable drop once a form passes five visible fields on mobile. Keep it to first name, last name, email, phone and one qualifying question. Everything else can be enriched later by workflow or by a survey sent post-submission.
Surveys: qualification and branching
A survey is built as a sequence of slides. Conditional logic on a survey operates at the question and page level, so answering "Renting" on question two can skip the four ownership questions and jump straight to the budget question. Surveys also support scoring, sticky contact, and a disqualification path where a contact who answers outside your criteria gets sent to a "not a fit" thank-you page instead of your booking calendar. That branching is the whole reason surveys exist — if your survey has no conditional logic in it, you have built a slow form.
| Capability | Forms builder | Surveys builder |
|---|---|---|
| Field types | Standard contact fields, custom fields, file upload, signature, terms and conditions, hidden fields, source | Same field library plus radio, checkbox and single-select question slides designed for one-question-per-screen |
| Conditional logic | Show or hide individual fields based on a previous answer | Show, hide, skip pages, jump to a specific slide, and branch to disqualification |
| Multi-step | Supported, but best kept to two or three steps | Native — each question or group sits on its own slide with a progress bar |
| Partial data capture | Nothing saved until the contact submits | Enable "Save partial submission" and answers write to the contact as they progress |
| Best use case | Lead magnet opt-in, contact us, quote request, event registration | Application funnel, intake questionnaire, qualification quiz, onboarding brief |
| Workflow trigger | Form Submitted | Survey Submitted |
The build order that saves you a rebuild
Step 1: create your custom fields first
Go to Settings > Custom Fields in the sub-account and create every field you intend to collect before you open the builder. Give them plain names that a workflow author will recognise in six months — "Property Suburb" beats "Field 3". Choose the data type deliberately: single line text for free entry, dropdown for anything you will later filter or segment on, and number for anything you will use in a maths operation or a lead score. Dropdown values are what make your smart lists usable; free text is what makes them useless.
Step 2: build the form or survey
In Sites > Forms, click Add Form, then drag your fields in. Set the submit button text to describe the outcome ("Get My Quote", not "Submit"). Under form settings you choose the on-submit action: show a message, redirect to a URL, or open a booking widget. Redirect to a dedicated thank-you page rather than an inline message — you need a distinct URL for conversion tracking and for a Google Ads or Meta conversion event.
For surveys, work slide by slide and set the logic as you go rather than at the end. GoHighLevel evaluates survey logic top-down, so a jump rule on slide two that points to slide six will skip everything between. Test every branch by actually completing the survey in an incognito window with a throwaway email — logic errors are silent and only surface as gaps in your contact records weeks later.
Step 3: add hidden fields and custom values
Hidden fields are how you attribute leads. Add hidden fields for source, campaign and the specific page the form sits on, and populate them either with a default value in the builder or by URL parameter. If you are running paid traffic, pair this with UTM capture so the contact record shows exactly which ad produced the enquiry. The same discipline applies to Facebook lead ads integration, where the native form fields need mapping to the same custom fields your on-site form writes to — otherwise you end up with two versions of the same data point.
Custom values (Settings > Custom Values) let you store agency-level or sub-account-level constants such as business name, booking link and privacy policy URL, then reference them inside form text and confirmation messages. When the client rebrands, you change one custom value rather than editing eleven forms.
Step 4: embed it
Inside a funnel or website page, drop in the Form element and pick your form from the dropdown. For external sites — WordPress, Shopify, a Squarespace page — use the embed code from the form's Integrate tab. You get three embed types:
- Inline — the form sits in the page flow. Default choice for landing pages and contact pages.
- Popup — triggered by a button click or exit intent. Good for lead magnets on content pages.
- Slide-in — enters from the corner on scroll depth or timer. Useful on long blog posts, intrusive anywhere else.
Turn on sticky contact if you have more than one form in a funnel. Sticky contact pre-fills known values on subsequent steps so a contact who gave you their name on step one is not asked again on step three. It dramatically lifts multi-step completion rates.
Wiring GoHighLevel forms and surveys into workflows
A submission that does not trigger anything is just a database entry. In Automation > Workflows, create a workflow with the Form Submitted trigger and filter it to the specific form — never leave the filter blank, or every form in the sub-account will fire the same automation. Surveys use the Survey Submitted trigger with the same filtering rule.
The minimum viable workflow
Every form workflow I ship has five actions in this order: add a tag that names the form, create an opportunity in the right pipeline at the first stage, send an internal notification to the team, send the contact an acknowledgement email through Mailgun, then a follow-up SMS through LC Phone after a short wait step. Opportunity creation is the step most people skip, and it is the one that turns a contact list into a sales pipeline you can actually forecast from. Map the opportunity name to the contact name plus the service requested so the pipeline card is readable at a glance.
Branch on the answers, not just the submission
Use an if/else condition on the custom field values captured in the form. A budget answer under your minimum routes to a nurture sequence; above it routes to a booking link and an internal SMS to the sales rep. This pairs naturally with a lead scoring workflow setup, where each answer adds or subtracts points and the total determines routing. For tracking what the contact does after the acknowledgement email lands, trigger links setup and tracking gives you a click-level signal you can branch on without needing a separate analytics tool.
When a workflow does not fire, the cause is almost always the trigger filter, a missing field mapping, or the contact already sitting in the workflow and being blocked by re-entry settings. My workflow troubleshooting guide to fixing errors walks through the execution log, which is the first place to look rather than the last.
Consent capture and Australian compliance
If you are going to email or SMS the people who fill in your HighLevel forms, you need consent that stands up under the Spam Act 2003. That means an explicit, unticked consent checkbox on the form with wording that names your business and states what you will send — not a buried line in a terms link. Store the consent as a custom field with a date stamp so you can evidence it later, and keep the form's submission record intact rather than deleting old entries.
The ACMA publishes the current guidance on consent, identification and unsubscribe obligations at acma.gov.au, and it is worth reading before you launch any outbound sequence. Practical rules I apply on every Australian sub-account: separate checkboxes for email and SMS consent if you intend to use both channels, sender identification in every message, and a functioning unsubscribe that actually writes back to the contact's DND settings. Phone-based outreach adds another layer — see the detail in SMS A2P compliance for Australia before you send your first campaign.
Snapshots and reuse
Once a form, survey, custom field set and workflow work together cleanly, capture the whole sub-account as a snapshot so the next client build starts from a working base. Snapshots carry forms, surveys, custom fields, workflows and pipelines, but they do not carry your Mailgun domain, LC Phone number or any API keys — those get reconnected per sub-account. GoHighLevel's own documentation at help.gohighlevel.com keeps the current list of what does and does not transfer, and it changes often enough to be worth checking each time.
Common mistakes to avoid
- Building the form before the custom fields. You end up with data landing in generic fields that no workflow can filter on, and re-mapping after the fact means the historical submissions stay orphaned.
- Leaving the workflow trigger unfiltered. A Form Submitted trigger with no specific form selected fires for every form in the sub-account, so your quote-request automation starts emailing newsletter subscribers.
- Using free-text fields for anything you will segment on. "Sydney", "sydney" and "Syd" are three different values in a smart list. Dropdowns or radio buttons for anything with a finite answer set.
- Asking eight questions on a single-screen form. If you genuinely need eight answers, that is a survey with conditional logic and partial submission enabled, not a longer form.
- Skipping opportunity creation. Contacts without opportunities give you no pipeline value, no stage reporting and no way to see which form actually produces revenue.
- Pre-ticking the consent checkbox or bundling email and SMS consent into one. Both undermine the consent record you would need to rely on under the Spam Act, and both are easy to fix before launch and expensive to fix after.
If you want your GoHighLevel forms and surveys built to feed clean data into your pipelines, book a strategy call with the HL Growth Partner team.
Frequently asked questions
What is the difference between GoHighLevel forms and surveys?
A form is a single-screen capture element built for speed, typically four to six fields, with optional field-level conditional logic. A survey is a multi-slide experience with page-level branching, jump logic, disqualification paths and partial submission saving. Forms fire the Form Submitted workflow trigger; surveys fire Survey Submitted. Both write to the same custom fields on the contact record.
Can I embed a HighLevel form on a WordPress or Shopify site?
Yes. Open the form in Sites > Forms, go to the Integrate tab, and copy the embed code. You choose inline, popup or slide-in. Paste the code into a custom HTML block on the external page. Submissions still land in the GoHighLevel sub-account and still fire your workflows, and hidden fields still capture source attribution as long as you set them before generating the code.
Why is my form submission not triggering my workflow?
Check three things in order. First, the trigger filter — confirm the workflow's Form Submitted trigger has the correct form selected. Second, workflow re-entry settings — if the contact already went through the workflow and re-entry is off, they will not run again. Third, the execution log on the workflow itself, which shows whether the contact entered and where they stopped.
Do surveys save answers if someone abandons partway through?
Only if you enable partial submission in the survey settings. With it on, each answer writes to the contact record as the respondent advances, so an abandoned survey still leaves you a contact with partial data you can follow up. With it off, nothing is saved unless the final slide is submitted. For long qualification surveys, turn it on.
How do I capture Spam Act consent on a form?
Add an unticked checkbox field with explicit wording naming your business and the message types you will send, and map it to a dedicated consent custom field. Use separate checkboxes for email and SMS if you plan to use both. Do not pre-tick it, do not make consent a condition of receiving an unrelated download, and keep the submission record so the consent is evidenced with a timestamp.
