Event Parameters

Event parameters are the key/value pairs FunnelTrack ships alongside each event to your ad platforms and analytics destinations — Meta's custom_data, GA4's params, Google Ads' eventValues, and equivalents on TikTok, Pinterest, Snapchat, Reddit, LinkedIn, Microsoft Ads, and OpenAI. They drive revenue attribution, product-level reporting, and custom-audience segmentation. The good news: FunnelTrack auto-injects the vast majority of them — you only map what's specific to your business.

What FunnelTrack handles automatically

Don't manually map any of these — they're wired up for you out of the box.

Auto-injected on ecommerce events
On Purchase, Subscribe, StartTrial, AddToCart, InitiateCheckout, AddPaymentInfo, PlaceAnOrder, and CompletePayment events, FunnelTrack injects the standard ecommerce parameter set from the source payload — no mapping required.
  • Revenue + currency — pulled from event.revenue and event.currency. Read from the source-of-truth field on each source (order total for ClickFunnels / HighLevel / Stripe orders, lead value for opportunities). Currency defaults to USDwhen the source doesn't supply one.
  • content_ids — built from event.properties.product_ids: the array of SKUs or product UUIDs the source ships on each order.
  • contents[] — the Meta dispatcher builds a per-item array [{ id, item_price, quantity }, ...] from event.properties.line_items (normalized shape { product_id, name, unit_price, quantity }). The same normalized line-items feed GA4 items[], Google Ads cartData.items[], TikTok contents[], Pinterest line_items[], Snapchat products[], Reddit products[], and OpenAI data.contents[].
  • num_items — total quantity across the line items (sum of line_items[*].quantity).
  • order_id— the source's transaction identifier, passed through as the platform-appropriate key: order_id for Meta, TikTok, Pinterest, Snapchat, and Google Ads; transaction_id for GA4 and Microsoft Ads; conversion_id for Reddit. This also doubles as the dedup key on Meta CAPI.
  • content_type — defaults to product per integration config (the Meta connection page's meta_content_type setting overrides this if you sell product_group bundles).
  • Source attribution metadata source_platform plus source-specific identifiers (e.g. calendly_event_type_uuid, highlevel_workflow_id, highlevel_event_name) are written into the event properties so you can reference them in templates and filters.

When to add manual event parameters

Five scenarios that come up regularly — most accounts never need more than these.

  1. Sending custom business data alongside the event. Your lead form collects a budget field that you want to use to build a high-intent custom audience in Meta. Map it as a custom parameter named lead_budget and Meta will receive it in custom_data on every dispatch.
  2. Sending UTMs that didn't come through the standard click-ID path. Some CRMs ship an attribution surface of their own — HighLevel exposes attributionSource.utmSourceon every workflow webhook, for example. If the visitor never had a FunnelTrack session (so the standard click-ID path didn't fire), you can surface that as utm_source on the outbound event by mapping it manually.
  3. Sending GA4 standard event parameters.GA4's Purchase event accepts coupon, shipping, and tax as standard parameters. In the GA4 routing card, pick the GA4 Purchase event from the dropdown, then add a coupon parameter that pulls from your payload's customData.discount_code field.
  4. Per-destination overrides. The same source event can ship different parameter sets to different destinations. Example: Meta gets lead_quality as a custom param so you can build a lookalike, while Google Ads gets it baked into the conversion value via a different mapping on the Google Ads card.
  5. Static values for cross-event reporting. Map a literal value like funnel_stage: "tof" to every form-submit event from your top-of-funnel page set so your reporting can roll up by funnel stage without you having to encode it in every form.

How manual mapping works

Two field types, one place to configure them.

Field types

  • Webhook field — a dynamic value pulled from the inbound payload via dotted-path lookup. Examples: tracking.utm_source, order.line_items[0].price, customData.event_name. The dropdown shows you every field FunnelTrack discovered from the most recent submission on that source.
  • Static value — a literal string you type in. Same value on every event that fires through this card.

Where to add them

On any source → destination routing page, open the event card's Add Event modal and expand the Custom Parameters section. Click Add Parameter, give it a key name (the name the destination will receive), pick the value type, and either choose the field from the discovered-fields dropdown or type in your static value. Save the card and the parameter ships on every future event.

Template syntax (advanced)

For users composing values from multiple payload fields.

Parameter values support {{field_path}} templating for cases where one outbound value should be composed from multiple payload fields. Example: setting lead_full_name: "{{first_name}} {{last_name}}" builds a combined name from two separate fields on the submission.

Most accounts don't need templating — the discovered-fields dropdown handles ~95% of cases with a single field pick. Reach for templating only when you genuinely need to glue values together.

Common questions

Will manual parameters override the auto-injected ones?
Yes — manual keys take priority. If you map a custom value parameter on a Purchase event, it replaces the auto-injected revenue value from event.revenue. Useful for adjusting reported conversion value (e.g. sending lead score instead of order total).
Can I send the same parameter to different destinations with different names?
Yes. Each destination's routing card has its own custom-params list. The same source field can be mapped to lead_value on Meta and conversion_valueon Google Ads with no conflict — they're configured independently.
What if my field doesn't have a value on a particular submission?
The parameter is dropped from that event's outbound payload. Null and empty-string values are filtered out before dispatch, so a missing optional field never breaks the event — it just ships without that one key.
Are there parameter name length or character restrictions?
Most platforms accept alphanumeric + underscore. Meta caps keys at around 40 characters; GA4 caps both keys and string values at 40 and 100 characters respectively. Avoid spaces and special characters in the key name — they'll either be rejected or quietly stripped depending on the platform.
How do I see what parameters got sent?
Open Usage Logs, click any outbound event row, and you'll see the full payload that was shipped — including every parameter, the values that resolved, and what was dropped for being null or empty.

Ready to configure events?

Open your Integrations and add a custom parameter on any source → destination routing card.

Configure events for one of your destinations →

Related concept

Identity fields — email, phone, name, IP, click IDs — work differently. Read the companion guide.

Learn about User Data Parameters →