Forms versus surveys: when to use each
GoHighLevel has two distinct tools for collecting information: Forms and Surveys. They look similar but serve different purposes and work differently in the platform.
Forms are for lead capture. When someone submits a form, GHL creates a new contact record (or updates an existing one if the email or phone matches) and triggers any workflows connected to that form. Forms appear on landing pages, website pages and funnel steps as the primary mechanism for converting a visitor into a contact in your CRM.
Surveys are for gathering information from contacts who are already in your system. A survey link sent in an email to existing clients collects their responses and updates their contact record with the answers. Surveys are multi-step, showing one or a few questions at a time rather than all fields at once. They are better suited for longer questionnaires like onboarding intake forms, client satisfaction surveys and discovery questionnaires.
Step 1: Build your first form
Go to Sites in the left sidebar, then Forms, then Add Form. Give the form a descriptive name that reflects its purpose and where it will be used: "Free Estimate Request, Homepage" or "Discovery Call Booking, Facebook Ad." Clear names make it easier to identify forms in workflow triggers and reporting when you have 10 to 15 forms across different campaigns.
The form builder has a drag-and-drop interface. Fields in the left panel are dragged onto the form canvas on the right. The canvas shows exactly how the form will appear to the visitor. Rearrange fields by dragging them to a new position. Delete fields by clicking the X on any field element.
The three default fields on every new form are First Name, Last Name and Email. These are sufficient for a basic lead capture form. For service businesses, add Phone as a required field immediately since SMS automation depends on having a phone number for every contact.
Step 2: Choose the right field types
GHL's form builder offers several field types suited to different kinds of information. Text fields capture open-ended answers like name, address or a description of the job. Dropdown fields let the contact choose from a preset list, useful for service type, property type or budget range. Checkbox fields allow multiple selections from a list. Radio buttons allow a single selection from a list. Date fields capture appointment preferences or project timelines. File upload fields let contacts attach photos or documents.
Choose field types that reduce typing for the contact wherever possible. A dropdown for "What type of roofing service do you need?" with options (repair, replacement, inspection, gutters) converts at a higher rate than a text field asking the same question because the contact can answer with a single click rather than typing. Reduce friction at every point in the form and completion rates improve.
Custom fields created under Settings, then Custom Fields appear as options in the form builder. Map form fields to custom contact fields for information specific to your business that you want stored on the contact record and available in automation tokens. A roofing company that creates a custom field for "roof age" can add it to their estimate request form and reference it in follow-up messages: "Thanks for letting us know your roof is {{custom.roof_age}} years old."
Step 3: Add conditional logic
Conditional logic shows or hides form fields based on the contact's answers to previous questions. This keeps forms shorter and more relevant for each specific contact rather than showing every possible field to everyone.
Click on any field in the form builder and find the Conditional Logic option in the field settings panel. Set the condition: "Show this field when [previous field] equals [specific value]." A contact who selects Commercial for property type sees commercial-specific fields. A contact who selects Residential sees different fields. Both see a shorter, more relevant form than they would if all fields were always shown.
Conditional logic is particularly useful for service businesses with multiple service types. An HVAC company might have a single form that branches into different question sets based on whether the contact needs repair, replacement or a new installation. One form handles all enquiry types cleanly rather than requiring separate forms for each service.
Step 4: Configure form settings
Click the Settings icon at the top of the form builder. The most important settings to configure are the redirect action, the duplicate contact handling and the notification settings.
The redirect action determines what happens after the form is submitted. Set it to redirect to a specific thank you page URL rather than showing a generic success message. The thank you page should confirm the submission and set a clear expectation: "Thanks, {{contact.first_name}}. You will receive a call from us within the next few minutes." This expectation-setting significantly increases answer rates on follow-up calls because the contact is prepared for your call.
Under duplicate contact handling, set the behaviour when a contact who already exists in your CRM submits the form. The recommended setting is to update the existing contact record with any new information from the form rather than creating a duplicate. This keeps your CRM clean and ensures all information is consolidated on one record.
Enable notification emails so your team receives an alert when a new form submission arrives. Set the notification email to go to the team member responsible for follow-up. Include the contact's name, phone number and form answers in the notification email body so the team member has context before making the follow-up call.
Step 5: Embed on your website or funnel
Under the Embed tab in your form settings, GHL provides two options: a direct link to a hosted form page at a GHL URL and an iframe embed code for placing the form on any external webpage.
For GoHighLevel funnel pages, add a Form element from the element panel and select your form from the dropdown. The form renders natively on the funnel page without needing the iframe code.
For WordPress or other website builders, add an HTML block and paste the iframe embed code. The form renders on your page with the same fields and settings as the hosted version. Submissions from the embedded form appear in GHL exactly the same as submissions from the hosted page.
Test the embedded form on a real mobile device after placement. The most common embedding issue is the form appearing too narrow on mobile because of the container width. Adjust the container width on your website to ensure the form is fully readable and usable on a phone screen.
Step 6: Connect to workflows
The real power of GHL forms comes from the workflows they trigger. Every form submission can fire any combination of automated actions: create a pipeline opportunity, apply tags, send an SMS, send an email, notify a team member and add the contact to a nurture sequence.
Go to Automation, then Workflows. Create a new workflow with Form Submitted as the trigger. Select your specific form name. Every submission of that form fires this workflow. Add your actions in sequence. The first action for most service businesses is Send SMS with an instant acknowledgement. The second action is an internal notification to your team. The third adds the contact to the correct pipeline stage.
Build separate workflows for each distinct form rather than one workflow that tries to handle all forms with If/Else branching. A workflow triggered by the "Free Estimate Request" form should be different from the workflow triggered by the "Discovery Call Booking" form. Separate workflows are easier to test, debug and improve independently.
Step 7: Build a survey
Go to Sites, then Surveys, then Add Survey. The survey builder works similarly to the form builder but presents questions in a multi-step format with one or a few questions per screen. This format is less overwhelming for longer questionnaires and typically achieves higher completion rates than a long single-page form.
Surveys are connected to contacts rather than creating new contacts. Send a survey link to existing contacts via SMS or email. When they complete the survey, their responses update their contact record in GHL. Use surveys for: client onboarding intake (collecting project details after a sale), client satisfaction checks mid-programme, needs assessment before a discovery call and annual review surveys to past customers.
Map each survey question to a specific custom field on the contact record. When a client answers "What is your primary goal?" in the onboarding survey, that answer saves to the "primary goal" custom field and is available as a personalisation token in all future automated messages sent to that contact. See our GHL CRM tutorial for how to set up custom fields before building your surveys.
Want the form conversion checklist?
We will email you the form setup checklist covering field types, conditional logic, redirect settings and the workflow connection steps from this guide.
Start your 30-day free trial
Sign up through BuildOnAuto and get our contractor snapshot, automations and review sequences ready on day one.
No credit card required · Cancel anytime · Setup bonuses included
