Tracking lifecycle stages
ft_sid and ft_uid contact properties.Lifecycle changes are offline events: they happen inside HubSpot with no browser attached. The seven default HubSpot lifecycle stages (Subscriber, Lead, MQL, SQL, Opportunity, Customer, Evangelist) each ship as their own card, and custom stages are supported. The receiver reads the lifecyclestage value and routes it to the matching card.

Choose the trigger
In Automation → Workflows, create a workflow with a trigger of Property value changed on the Contact object, and set the property to Lifecycle stage.


Select the lifecycle stages to enroll
Set the new value to all standard lifecycle stages, plus any custom stages specific to your business that you want to track.

Add the Send a webhook action
Add an action, choose Send a webhook, set the method to POST, and paste your FunnelTrack HubSpot webhook URL from the integration page.

Customize the request body
Choose Customize request body and map the fields below. Each row is either a dynamic contact property or a static value you type in.
lifecyclestage, email, firstname. FunnelTrack matches on these exact keys.| Field | Required? | Type | Why it matters |
|---|---|---|---|
event | Required | Static | Routes the receiver branch. Set the value to lifecycle_update |
lifecyclestage | Required | Dynamic | The stage that changed (internal value, e.g. marketingqualifiedlead). |
email | Required | Dynamic | Identifies the contact. Hashed for advanced matching at every destination. |
ft_uid | Strongly recommended | Dynamic | The offline attribution bridge to the visitor's most recent session. |
phone | Recommended | Dynamic | Hashed for advanced matching and as a fallback identifier. |
firstname | Recommended | Dynamic | Hashed user data — raises Event Match Quality. |
lastname | Recommended | Dynamic | Hashed user data — raises Event Match Quality. |
ft_uid is strongly recommended for the most reliable offline conversion attribution. If ft_uidisn't present, FunnelTrack falls back to the contact's info to attribute the conversion, as long as a prior action (such as a form submission) was already captured for that contact.
{
"email": "person@example.com",
"event": "lifecycle_update",
"phone": "+15551234567",
"ft_uid": "d8d1d541-1794-44b5-95d3-dbf0a39a20f1",
"firstname": "Alex",
"lastname": "Nguyen",
"lifecyclestage": "marketingqualifiedlead"
}Enable lifecycle tracking in FunnelTrack
Open a destination and enable the lifecycle events you want to send. FunnelTrack ships pre-built cards for all standard stages; for custom stages, add an event with the Add More Events builder.

Verify
Trigger a stage change, then open the Event Delivery Logand confirm the inbound lifecycle event. If you're sending ft_uid, expand the payload and check that the ft_uid value is present.

ft_uid retroactively assigned. Those older contacts fall back to email / phone matching, so keep that in mind when reviewing early results.