Configure hidden URL parameters in Sayify to pass identity, campaign, account, and product context into forms for routing, integrations, and automation.

Passing Identity & Context

Hidden parameters let you pass useful context into a Sayify form without asking the respondent to type it. Use them for customer IDs, campaign attribution, product areas, account tiers, order IDs, or any other metadata your team already knows.

Sayify captures configured URL parameters at the start of a response session and stores them as hidden_fields. The values are then available in response details, inbox cases, routing rules, webhooks, exports, and integrations.


How It Works

  1. You configure the parameter names your form should capture.
  2. You send those values in the public form URL or website widget.
  3. Sayify stores matching values on the response session as hidden_fields.
  4. Routing, integrations, and inbox workflows can use those values later.

Example:

https://sayify.pro/i/lead-intake?customer_id=cus_123&utm_source=linkedin&account_tier=pro

If the form is configured to capture customer_id, utm_source, and account_tier, Sayify stores:

{
  "customer_id": "cus_123",
  "utm_source": "linkedin",
  "account_tier": "pro"
}

Configure Hidden Parameters

In the form builder:

  1. Open your form.
  2. Go to Hidden URL Parameters.
  3. Add a URL Parameter Name, such as customer_id, utm_source, account_tier, or product_area.
  4. Optionally set a fallback default value.
  5. Save the form.

Fallback defaults are useful when you want every response to contain a value, even when the URL does not include that parameter.

Parameter Example Value Use
customer_id cus_123 Match a response to a CRM/customer record
utm_source linkedin Attribute the response to a campaign source
account_tier enterprise Route high-value accounts differently
product_area billing Send support issues to the right team
order_id ord_789 Connect feedback to a purchase

Append the configured parameters to the form URL:

https://sayify.pro/i/support-intake?customer_id=cus_123&product_area=billing&plan=pro

Only configured hidden parameters are captured as hidden fields. Other URL parameters may be used by Sayify for form behavior, widget context, or prefill identity.


Pass Values Through the Widget

When you embed a Sayify widget, the widget forwards parent page query parameters into the form iframe. That means a page URL like this can feed hidden fields into the embedded form:

https://example.com/pricing?utm_source=google&account_tier=trial

You can also pass values explicitly.

Script Widget

<script
  src="https://resource.sayify.pro/cdn/widget.js"
  data-form="lead-intake"
  data-hidden-fields='{"customer_id":"cus_123","account_tier":"pro"}'>
</script>

JavaScript API

Sayify.init({
  form: "lead-intake",
  hiddenFields: {
    customer_id: "cus_123",
    account_tier: "pro",
    product_area: "billing"
  }
});

Custom Element Widget

<sayify-widget
  form="lead-intake"
  hidden-fields='{"customer_id":"cus_123","account_tier":"pro"}'>
</sayify-widget>

You can also set hidden fields programmatically:

const widget = document.querySelector("sayify-widget");
widget.setHiddenFields({
  customer_id: "cus_123",
  product_area: "billing"
});

Use Hidden Parameters for Routing

Hidden parameters can drive live routing. In routing rules, use the hidden variable group:

hidden.utm_source equals linkedin
hidden.account_tier equals enterprise
hidden.product_area equals billing

Examples:

  • If hidden.account_tier is enterprise, route the respondent to demo booking.
  • If hidden.product_area is billing, ask billing-specific support questions.
  • If hidden.utm_source is linkedin, ask a campaign-specific qualification question.
  • If hidden.plan is free, show self-serve upgrade guidance instead of sales routing.

Use Hidden Parameters in Integrations

Webhook and integration payloads include captured values under hidden_fields:

{
  "hidden_fields": {
    "customer_id": "cus_123",
    "utm_source": "linkedin",
    "account_tier": "pro"
  }
}

Flattened payloads can expose values like:

hidden_fields__customer_id = cus_123
hidden_fields__utm_source = linkedin

Use these values to:

  • update CRM records
  • enrich Slack alerts
  • send support tickets to the right queue
  • map responses back to campaigns
  • trigger Zapier or webhook automations
  • filter exports and reporting downstream

Identity Prefill vs Hidden Parameters

Sayify also supports identity-style parameters such as email, name, and phone for prefill/contact resolution. Hidden parameters are broader: they are for contextual metadata.

Use identity parameters when you want Sayify to know who the respondent is:

?email=alex@example.com&name=Alex

Use hidden parameters when you want to attach non-visible context:

?customer_id=cus_123&account_tier=enterprise&product_area=billing

Both can be used together.


Common Use Cases

Use Case Parameters
Campaign attribution utm_source, utm_medium, utm_campaign, ad_id
CRM matching customer_id, contact_id, company_id
Product support product_area, app_version, workspace_id, plan
Sales routing account_tier, segment, lead_source, region
Post-purchase feedback order_id, sku, store_id, delivery_method
Internal workflows team, department, project_code, owner_id

Limits and Safety

Sayify sanitizes hidden parameter keys and values before storing them. Still, treat URL parameters as user-visible data because URLs can appear in browser history, analytics tools, and referrer logs.

Good practices:

  • Do not pass passwords, secrets, payment details, private tokens, or sensitive health data in URL parameters.
  • Prefer stable IDs over long descriptive values.
  • Keep parameter names consistent across forms.
  • Use fallback defaults only when a missing value should still produce a known category.
  • Test with a sample response and confirm the values appear in the response detail or inbox case.

Was this page helpful?
Report an issue →