Form Setup

Set up SourceTag with Acuity Scheduling

Acuity Scheduling (part of Squarespace) supports custom intake form fields. You can create intake questions and pre-fill them via URL parameters, allowing SourceTag to pass attribution data through the scheduling embed.

How it works

You create custom intake questions in Acuity. When the scheduling page is embedded on your site, SourceTag appends the attribution values as query parameters to the Acuity embed URL. Acuity pre-fills the intake fields from those parameters.

What you need

  • SourceTag installed on your website
  • An Acuity Scheduling account (Growing plan or above for custom intake forms)
  • Acuity embedded on your site

Step 1: Create custom intake form fields

  1. Log in to Acuity Scheduling
  2. Go to Availability > Intake Forms (or Customise > Intake Forms)
  3. Click Edit on the intake form for your appointment type
  4. For each SourceTag field, add a new question:
    • Set the Label to the SourceTag field name (e.g. st_fc_channel)
    • Set the field type to Text Box (single line)
    • Tick Hidden if the option is available (to hide it from the person booking)
  5. Save the intake form

If your Acuity plan does not have a “Hidden” toggle for intake questions, you can still use this approach. The fields will be visible to the person booking but pre-filled, so they should not need to change them. Alternatively, you can use CSS to hide them (see Tips below).

[IMAGE: Screenshot of Acuity intake form editor showing custom fields being added]

Core fields (add these)

  • st_fc_channel
  • st_fc_detail_1
  • st_fc_detail_2
  • st_fc_detail_3
  • st_fc_detail_4
  • st_lc_channel
  • st_lc_detail_1
  • st_lc_detail_2
  • st_lc_detail_3
  • st_lc_detail_4
  • st_fc_landing_page
  • st_lc_landing_page

Optional extended fields

  • st_fc_click_id and st_lc_click_id (click IDs)
  • st_visits (visit count)
  • st_days_to_convert (days since first visit)
  • st_device (device type)

[IMAGE: Screenshot of Acuity intake form with all core fields added]

Step 2: Note the field IDs

Each intake question in Acuity has a unique ID. You may need this to map parameters correctly. Check the embed URL structure or the Acuity API documentation to confirm how parameters are passed to intake fields.

Acuity uses a URL parameter format like:

?field:FIELD_ID=value

or for named fields:

?st_fc_channel=value

The exact format depends on your Acuity version. Check by previewing the scheduling page and inspecting the URL structure.

[IMAGE: Screenshot showing Acuity intake field ID in the form editor]

Step 3: Embed Acuity on your page

Use Acuity’s embed code to add the scheduler to your site. The page must also have the SourceTag script installed.

<!-- Acuity embed example -->
<iframe src="https://app.acuityscheduling.com/schedule.php?owner=YOUR_OWNER_ID" title="Schedule Appointment" width="100%" height="800" frameBorder="0"></iframe>
<script src="https://embed.acuityscheduling.com/js/embed.js" type="text/javascript"></script>

SourceTag detects the Acuity embed and appends the attribution parameters to the scheduling URL.

[IMAGE: Screenshot of Acuity embed on a website]

Step 4: Test

Visit the page with UTM parameters:

?utm_source=test&utm_medium=cpc&utm_campaign=acuity-test

Book a test appointment. In Acuity, go to the appointment details and check the intake form responses. The custom fields should contain your attribution data.

[IMAGE: Screenshot of Acuity appointment details showing intake form data with attribution values]

Tips

  • If your Acuity plan does not support hidden intake questions, you can add CSS to hide the fields visually. Add a <style> block that targets the intake field containers by their IDs.
  • Acuity’s integrations (Zapier, API, email notifications) include intake form data. Attribution values will flow through to your CRM.
  • Acuity is now part of Squarespace. If you use Squarespace for your website, you can add the Acuity embed block directly in the Squarespace editor.
  • Test the parameter format carefully. Acuity’s URL parameter mapping can vary between scheduling page versions.