Revset
Book a Free Audit

30-minute call · No obligation

HomeGHL HubMarketing & CampaignsBuild Dynamic Check-In Loop Campaigns in GoHighLevel
REVSET LABS · EXPERT GUIDE·Marketing & Campaigns

Build Dynamic Check-In Loop Campaigns in GoHighLevel

1,506 words·6 min read·Updated 28 April 2026·beginner·
Arsalan ZaffarArsalan ZaffarLinkedIn

👉 Start your 30-day GoHighLevel free trial.

Start 30-Day Free Trial
Quick Answer

To build a dynamic check-in loop campaign in GoHighLevel, create a custom form with a 'Redeem Status' field, generate prefilled URLs, and then automate the check-in process using workflows and trigger links. This comprehensive setup typically takes 45-60 minutes to complete.

Key Takeaways
  • Always use a hidden 'Redeem Status' custom field in your check-in form to track redemption state.
  • Dynamically prefill form fields using URL query parameters to ensure a seamless customer experience and accurate data capture.
  • Utilize GoHighLevel's Trigger Links to shorten URLs, enable tracking, and integrate with dynamic QR code generation.
  • Implement conditional logic on your check-in form to prevent duplicate redemptions and provide clear feedback to customers.
  • Automate the entire check-in process with workflows to update contact records, send review requests, and maintain accurate campaign tracking.

What is a Check-In Loop Campaign and Why Use It?

A check-in loop campaign in GoHighLevel creates an automated system for customers to check in for an offer, event, or service using a unique QR code. This system tracks redemptions and prevents multiple uses. It streamlines customer engagement, reduces manual data entry, and ensures efficient tracking of your promotions or events. This guide will walk you through setting up a robust digital check-in system that generates unique tickets, validates entries instantly, and automates post-check-in actions like review requests. You will learn how to build the necessary forms, links, and workflows to manage the entire process seamlessly within GoHighLevel.

Step 1: How to Set Up Your Check-In Form

Your check-in form is the central point where customers verify their ticket and provide necessary information. It collects customer details and confirms eligibility when staff scan a QR code. You will create a new form and add a hidden field to track redemption status.

1
Access the Form BuilderGo to Sites in your GoHighLevel sub-account. Then, click on Forms → Builder to open the form creation interface.
2
Create a New FormClick + Add Form to start building a new form. You can choose a blank form or select a relevant template to save time, for example, a restaurant-related template if your campaign is for a dining offer.
3
Customize Form FieldsKeep essential contact fields like Full Name, Phone Number, and Email. Remove any unnecessary fields to simplify the check-in process for your staff and customers.
4
Rename the Submit ButtonClick on the form's submission button element. Change its text to 'Check-In' or 'Redeem' to clearly indicate its purpose.
5
Add a Custom Field for Redemption StatusClick Add Element and drag a Single Line custom field onto your form. Name this field 'Redeem Status' and ensure it is grouped under 'Contact'.
6
Hide the Custom FieldSelect the 'Redeem Status' field you just created. In its settings, enable the 'Hidden' option. This field will store whether a ticket has been redeemed but will not be visible to customers.
7
Save Your FormClick Save Form in the top right corner to save all your changes. Your basic check-in form is now ready.
🔥 Pro Tip

For faster setup, use a form template that closely matches your needs and then modify it. This saves time compared to building from scratch.

Step 2: How to Generate Prefilled URLs for Customers

Prefilled URLs automatically populate customer information when they access the check-in form. This eliminates manual data entry and ensures a smooth, error-free experience. You will modify the form's direct link to include dynamic contact merge fields.

1
Copy Your Form LinkAfter saving your form, click the Integrate button located next to the 'Save Form' button. Copy the 'Form Link' provided.
2
Modify the URL with Query ParametersPaste the copied form link into a text editor. Append query parameters to the end of the URL to prefill customer data dynamically. Use the format `?field_name=Contact.MergeField`.
3
Include Essential Contact FieldsAdd parameters for `full_name=Contact.Name`, `phone=Contact.Phone`, and `email=Contact.Email`. For example, your URL might look like `yourformlink.com?full_name=Contact.Name&phone=Contact.Phone&email=Contact.Email`.
4
Set Initial Redeem StatusAlso, add `&redeem_status=False` to the URL. This ensures that when a customer first accesses the form, their redemption status is set to 'False' by default.
5
Verify ConsistencyEnsure that the query parameter names (e.g., `full_name`) exactly match the field names in your GoHighLevel form. The `Contact.MergeField` values must also match GoHighLevel's merge fields for accurate data population.
6
Save the Modified LinkKeep this complete, modified URL handy. You will use it in the next step to create a trigger link and generate QR codes.
🔥 Pro Tip

Double-check that your query parameter names (e.g., `full_name`) match the internal names of your form fields in GoHighLevel. Mismatches will prevent prefilling.

Trigger links in GoHighLevel shorten URLs, track clicks, and enable powerful workflow automation. You will use your prefilled URL to create a trigger link, which is essential for dynamic QR code generation and tracking customer engagement.

1
Navigate to Trigger LinksFrom your GoHighLevel dashboard, go to Marketing → Trigger Links to access the trigger link management area.
2
Add a New Trigger LinkClick + Add Link to create a new trigger link. Give it a clear, descriptive name such as 'Free Dessert Campaign Check-In' or 'Event Access QR Link'.
3
Paste Your Modified URLIn the 'URL' field, paste the full, prefilled URL you prepared in Step 2. This is the link that customers will ultimately click or scan.
4
Save the Trigger LinkClick Save to finalize your trigger link. GoHighLevel will generate a shortened, trackable version of your URL. Copy this shortened trigger link for the next step.
🔥 Pro Tip

Use descriptive names for your trigger links. This makes it easier to identify and manage them, especially when you have multiple campaigns running.

Try GoHighLevel Free

Start your 30-day GoHighLevel free trial

Everything in this guide is in your free trial. 30 days, no credit card — the platform behind 78+ revenue systems.

Start 30-Day Free Trial

Some links are affiliate links — if you sign up we may earn a commission, at no extra cost to you. We only recommend GoHighLevel because we build on it every day.

Step 4: How to Send Dynamic QR Codes via Email

Each customer needs a unique QR code linked to their personal check-in form. You will create an email template that dynamically generates a QR code for each recipient using their specific trigger link. This ensures a personalized and efficient check-in experience.

1
Utilize a QR Code Generator APIGoHighLevel integrates seamlessly with external QR code APIs. You can use a service like `API.QRServer.com` to generate QR codes dynamically within your emails. This service creates an image based on a URL you provide.
2
Create an Email TemplateIn GoHighLevel, navigate to Marketing → Emails → Templates. Create a new email template for your check-in campaign. Add all relevant campaign details, instructions for checking in, and any branding elements.
3
Insert Dynamic QR Code ImageWithin your email template, add an image element. For the image URL, use the structure: `https://api.qrserver.com/v1/create-qr-code/?data=<>`.
4
Replace the PlaceholderReplace `<>` with the actual merge field for your trigger link. To find this, click the 'Custom Values' icon in the email builder and select your specific trigger link from the list, for example, `{{trigger_link.YOUR_TRIGGER_LINK_NAME}}`.
5
Test the Email and QR CodeSend a test email of your template to yourself. Scan the QR code using your phone to ensure it directs you to the prefilled check-in form correctly.

⚠️ Ensure the `<>` placeholder is replaced with the correct GoHighLevel merge field for your specific trigger link. Incorrect merge fields will result in broken QR codes.

🔥 Pro Tip

Always test your dynamic QR codes thoroughly before sending out your campaign. Ensure the QR code scans easily and directs to the correct, prefilled form.

Step 5: How to Automate the Check-In Process with Workflows

Automating the check-in process ensures that once a customer submits the form, their contact record is updated, and subsequent actions are triggered. This includes marking their ticket as redeemed and potentially sending a review request.

1
Create a New WorkflowGo to Automations → Workflows and click + Create Workflow. Choose to start from scratch or select a relevant template.
2
Set the Workflow TriggerAdd a new workflow trigger. Select Form Submitted and then choose the specific check-in form you created in Step 1.
3
Add an 'Add Tag' ActionAdd an action step immediately after the trigger. Select Add Contact Tag and create a new tag, such as 'Free Dessert Checked-In' or 'Event Attended'. This helps you segment checked-in contacts.
4
Add an 'Update Contact Field' ActionAdd another action step. Select Update Contact Field and choose your custom field 'Redeem Status'. Set its value to 'True'.
5
Add Optional Post-Check-In ActionsConsider adding further actions like Send Review Request (if applicable) or Google Sheets Integration to log check-in data. These steps enhance your campaign's value.
6
Publish and Save the WorkflowOnce all your actions are configured, click Save and then ensure you set the workflow to Publish mode. This activates the automation.
🔥 Pro Tip

Always test your workflow by submitting the check-in form yourself. Verify that the tag is added, the 'Redeem Status' updates, and any other actions (like review requests) are triggered correctly.

Step 6: How to Prevent Multiple Redemptions

Preventing multiple redemptions is crucial for the integrity of your campaign. You will implement conditional logic on your check-in form to disqualify any customer who attempts to use an already-redeemed ticket, ensuring fairness and preventing abuse.

1
Edit Your Check-In FormGo back to Sites → Forms → Builder and open the check-in form you created in Step 1.
2
Access Conditional LogicClick on the Conditional Logic tab within the form builder settings. This is where you define rules based on form field values.
3
Add a New Conditional RuleClick + Add Rule. Set the condition: 'IF' Redeem Status 'IS' True. This checks if the customer's status indicates a previous redemption.
4
Set the Disqualification ActionFor the 'THEN' action, select Disqualify Lead. This prevents the form submission if the condition is met.
5
Add a Disqualification MessageIn the 'Show Message' field, enter a clear message like: 'You’ve already redeemed this ticket. Thank you for your visit.' This informs the customer why they cannot check in again.
6
Save the FormClick Save Form to apply your conditional logic changes. This ensures the form now actively prevents duplicate redemptions.
7
Test the Redemption PreventionPerform two test scans of your QR code. The first scan should allow a successful check-in. The second scan should display your disqualification message, confirming the feature works. Verify in your Form Submissions that only one successful entry exists for your test contact.

⚠️ Failing to set up conditional logic correctly means customers could potentially redeem offers multiple times, undermining your campaign's integrity.

🔥 Pro Tip

When testing, ensure you use a real contact in GoHighLevel whose 'Redeem Status' can be toggled. This gives you the most accurate test of the conditional logic.

Troubleshooting Common Issues

⚠️ My QR code doesn't prefill customer data or leads to a blank form.
Check your prefilled URL parameters. Ensure the field names (e.g., `full_name`) exactly match your GoHighLevel form's field names, and the merge fields (e.g., `Contact.Name`) are correct. Also, verify that the custom field `Redeem Status` is correctly named and hidden.
⚠️ The check-in form allows a customer to redeem the offer multiple times.
Review the Conditional Logic on your check-in form. Ensure the rule is set: 'IF Redeem Status IS True' THEN 'Disqualify Lead' and that you have saved the form after making these changes.
⚠️ The workflow isn't updating contact tags or the 'Redeem Status' field after a check-in.
Confirm that your workflow is set to 'Published'. Also, check the workflow trigger to ensure it's correctly linked to your specific check-in form and that the form submission is indeed triggering it.
⚠️ The QR code image does not appear in the sent email.
Verify the image URL for the QR code within your email template. Ensure that `https://api.qrserver.com/v1/create-qr-code/?data=` is correct and that `<>` is replaced by the actual GoHighLevel merge field for your trigger link (e.g., `{{trigger_link.your_link_name}}`).
⚠️ The trigger link created in GoHighLevel is not clickable or functional.
Double-check the URL you pasted when creating the trigger link. Ensure it's the full, modified prefilled URL from Step 2 and that it's a valid web address. Test the original modified URL directly in a browser first.

Common Mistakes to Avoid

  • Using incorrect or misspelled merge fields in the prefilled URL, leading to blank form fields.
  • Forgetting to mark the 'Redeem Status' custom field as 'Hidden', confusing customers.
  • Not publishing the workflow after building it, which prevents any automation from running.
  • Failing to implement conditional logic on the form to prevent multiple redemptions, leading to campaign abuse.
  • Using a generic form link instead of a GoHighLevel Trigger Link in the QR code, which disables tracking and dynamic prefilling.

Frequently Asked Questions

QCan I use this check-in system for events, workshops, or other types of campaigns?
Yes, absolutely! This GoHighLevel check-in system is highly versatile. It works perfectly for managing attendance at events, workshops, seminars, or any promotion where you need to issue unique tickets, track redemptions, and prevent multiple uses. Simply adjust the form fields and workflow actions to match your specific campaign's needs.
QHow can I track who has checked in and redeemed their offer?
You can track check-ins in several ways. The primary method is through your GoHighLevel workflow, which adds a specific tag (e.g., 'Checked-In') to the contact and updates their 'Redeem Status' custom field to 'True'. You can filter your contacts by this tag or field. Additionally, you can integrate your workflow with Google Sheets to log all check-in data in real-time for detailed reporting.
QIs it possible to customize the QR code and email content?
Yes, you have full control over the email content and how the QR code appears. You can design your email template with your branding, add specific instructions, and place the dynamic QR code image anywhere within the email body. The QR code generator API used in this guide creates a standard black and white QR code, which is highly scannable across devices.
QWhat happens if a customer tries to check in more than once?
The system is designed to prevent multiple redemptions. When a customer attempts to check in, the form's conditional logic checks their 'Redeem Status' custom field. If it's already set to 'True' (meaning they've redeemed before), the form will disqualify the submission and display a custom message indicating that the ticket has already been used, ensuring fairness.
QCan I send an SMS notification to staff when a customer checks in?
Yes, you can easily add an SMS notification to your check-in workflow. After the 'Update Contact Field' action, simply add a new action step: 'Send SMS'. You can configure this SMS to be sent to a specific staff member's phone number, including details from the checked-in contact using merge fields, providing real-time updates.
Try GoHighLevel Free

Start your 30-day GoHighLevel free trial

Everything in this guide is in your free trial. 30 days, no credit card — the platform behind 78+ revenue systems.

Start 30-Day Free Trial

Some links are affiliate links — if you sign up we may earn a commission, at no extra cost to you. We only recommend GoHighLevel because we build on it every day.

Arsalan Zaffar
Arsalan Zaffar
Revset Labs · Revenue Systems · 78+ GHL Builds

Arsalan writes GHL guides from real build experience — 78+ systems, $9.2M in client pipeline. Wharton, CXL & Google certified.

Connect on LinkedIn
Tags:GoHighLevelCheck-In SystemQR CodeWorkflow AutomationFormsCampaign Management