Documentation Index
Fetch the complete documentation index at: https://docs.morf.health/docs/llms.txt
Use this file to discover all available pages before exploring further.
How It Works
When a browser visits the generated URL:- Browser Request: A user clicks the generated URL or their browser navigates to it
- Track Event Processing: Morf decodes the embedded track data and processes the analytics event
- Response: The browser receives either:
- A custom success page (if
Success Textwas provided) - A JSON response (if no
Success Textwas provided)
- A custom success page (if
Use Cases
- Email Marketing: Track email click-through events by embedding tracking URLs in email content
- Social Media: Monitor engagement from social media posts and campaigns
- Web Analytics: Track button clicks, form submissions, or other user interactions
- Customer Journeys: Capture touchpoints across different platforms and channels
Parameters
Hide parameters
Hide parameters
Custom message to display on the success page when someone visits the generated URL. If provided, users will see a branded HTML page with this text after the track event is processed. If not provided, a JSON response will be returned instead.
The name of the analytics event to trigger when the URL is accessed. This event will be processed through Morf’s Track API.
ID The unique identifier for the user associated with this track event. This value will be stored as the active customer ID.HI ID PII Property values to store on the Morf Profile when the track event is processed. These properties will be permanently updated on the user’s profile.HI ID PII Data associated with the event that will be available within Morf Workflows but is not automatically stored on the Morf Profile.{
"$result_object_key": {
"track_data": "A serialized morf_analytics.v1.Track protobuf message",
"url": "https://api.morf.healthcare/v1/track/link/d2aae7a5-b3b0-4bee-991b-695d501c91e5?success_text=hello%20world&track_data=ChQKEmpvaW4tYnV0dG9uLWNsaWNrZWQSJGQyYWFlN2E1LWIzYjAtNGJlZS05OTFiLTY5NWQ1MDFjOTFlNRo%3D"
}
}
{
"$result_object_key": {
"track_data": {
"event_data": "(Optional) Data associated with the event, *not* automatically stored on the Morf Profile",
"event_id": "(Optional) Unique identifier for the event (e.g. a UUID)",
"event_name": "(Required) Event name",
"occurred_at": "(Optional) Time the event occurred, if not provided - the time Morf receives the track event (RFC3339 ISO Format)",
"profile_ids": {
"active_campaign": "(Optional) An Active Campaign Contact ID",
"athena": "(Optional) An Athena Patient ID",
"axle_health": "(Optional) An Axle Health Patient ID",
"boulevard": "(Optional) A Boulevard Client ID",
"butterfly_labs": "(Optional) A Butterfly Labs Patient ID",
"customer": "(Optional) Any unique identifier in your organization",
"customer_io": "(Optional) A Customer.io Customer ID",
"elation": "(Optional) An Elation Patient ID",
"feathery": "(Optional) A user ID for a Feathery flow",
"formsort": "(Optional) A responder UUID for a Formsort flow",
"freshdesk": "(Optional) A Freshdesk Contact ID",
"healthie": "(Optional) A Healthie User (Patient) ID",
"hubspot": "(Optional) A Hubspot Contact ID",
"intakeq": "(Optional) An IntakeQ Patient ID",
"intercom": "(Optional) An Intercom Contact ID",
"junction": "(Optional) A Junction Patient ID",
"medplum": "(Optional) A Medplum Patient ID",
"nextech": "(Optional) A Nextech Patient ID",
"open_phone": "(Optional) An OpenPhone Contact ID",
"posthog": "(Optional) A PostHog Person ID",
"recurly": "(Optional) A Recurly Subscriber ID",
"sana_benefits": "(Optional) A Sana Benefits Patient ID",
"segment": "(Optional) A Segment Anonymous- or User- ID",
"spruce": "(Optional) A Spruce Contact ID",
"stripe": "(Optional) A Stripe Customer ID",
"zoho": "(Optional) A Zoho Contact ID"
},
"profile_properties": "(Optional) Property values to store on the Morf Profile",
"source_id": null,
"user_id": "(Required) Unique user ID. Note: this value will be stored as the active customer ID"
},
"url": "The url-encoded track event URL which when a browser request is made to will trigger the track event to fire in Morf"
}
}
Result Object Field Details
You can use the result of the action’s data as inputs to downstream workflow actions. Each fetch action requires a result object key to be specified which will nest the action’s result data inside the downstream data context in the Workflow. Here we demonstrate how to refer to this data using the prefix$result_object_key.
Hide fields
Hide fields
The url-encoded track event URL which when a browser request is made to will trigger the track event to fire in Morf
CEL
$result_object_key.url
Example
"https://api.morf.healthcare/v1/track/link/d2aae7a5-b3b0-4bee-991b-695d501c91e5?success_text=hello%20world&track_data=ChQKEmpvaW4tYnV0dG9uLWNsaWNrZWQSJGQyYWFlN2E1LWIzYjAtNGJlZS05OTFiLTY5NWQ1MDFjOTFlNRo%3D"
The track event data that was encoded into the URL
CEL
$result_object_key.track_data
Example
"A serialized morf_analytics.v1.Track protobuf message"
(Optional) Unique identifier for the event (e.g. a UUID)
CEL
$result_object_key.track_data.event_id
Example
"42b7133b-84db-436e-b721-7a63f2dde515"
(Required) Event name
CEL
$result_object_key.track_data.event_name
Example
"join-button-clicked"
ID (Required) Unique user ID. Note: this value will be stored as the active customer IDCEL
$result_object_key.track_data.user_id
Example
"d2aae7a5-b3b0-4bee-991b-695d501c91e5"
ID (Optional) Profile IDs. Third party IDs to associate with the Profile.CEL
$result_object_key.track_data.profile_ids
Example
{
"active_campaign": "51071",
"athena": "12312",
"axle_health": "0f472e61-138b-4bbe-b222-a5d254e2cdcd",
"boulevard": "urn:blvd:Client:client123",
"butterfly_labs": "663dbc35-500b-47d3-9d42-4bc29a729a08",
"customer": "1ea83e74-1dd7-4569-b8d6-866a43680917",
"customer_io": "e2e9163e-2a48-4cd4-9c78-0f7477c55126",
"elation": "100121441215212",
"feathery": "a9560d4e-5e75-43c8-89f8-2245ec2bdfd4",
"formsort": "1ea83e74-1dd7-4569-b8d6-866a43680917",
"freshdesk": "410ad90d-805f-4be5-9942-5490259c3ed6",
"healthie": "43281",
"hubspot": "80478911765",
"intakeq": "8213",
"intercom": "6025231623163",
"junction": "51261b3f-de23-459e-9c82-ed97496e317e",
"medplum": "7daba5ae-708d-4d75-9d5a-4744cea5cdbe",
"nextech": "a9db751b-c154-4e75-8f9c-ae7dd89ddeec",
"open_phone": "67f8f19bccf2f4d79cd6357a",
"posthog": "a9560d4e-5e75-43c8-89f8-2245ec2bdfd4",
"recurly": "3658ba4c-085d-4995-9e36-25f0401007db",
"sana_benefits": "100031277",
"segment": "51261b3f-de23-459e-9c82-ed97496e317e",
"spruce": "entity_0E5QDGJC03000",
"stripe": "cus_RpeF9OcJYBinL6",
"zoho": "1234567890123456789"
}
(Optional) Any unique identifier in your organization
CEL
$result_object_key.track_data.profile_ids.customer
Example
"1ea83e74-1dd7-4569-b8d6-866a43680917"
(Optional) A responder UUID for a Formsort flow
CEL
$result_object_key.track_data.profile_ids.formsort
Example
"1ea83e74-1dd7-4569-b8d6-866a43680917"
(Optional) A Healthie User (Patient) ID
CEL
$result_object_key.track_data.profile_ids.healthie
Example
"43281"
(Optional) An Axle Health Patient ID
CEL
$result_object_key.track_data.profile_ids.axle_health
Example
"0f472e61-138b-4bbe-b222-a5d254e2cdcd"
(Optional) A Butterfly Labs Patient ID
CEL
$result_object_key.track_data.profile_ids.butterfly_labs
Example
"663dbc35-500b-47d3-9d42-4bc29a729a08"
(Optional) A Recurly Subscriber ID
CEL
$result_object_key.track_data.profile_ids.recurly
Example
"3658ba4c-085d-4995-9e36-25f0401007db"
(Optional) An Intercom Contact ID
CEL
$result_object_key.track_data.profile_ids.intercom
Example
"6025231623163"
(Optional) A Sana Benefits Patient ID
CEL
$result_object_key.track_data.profile_ids.sana_benefits
Example
"100031277"
(Optional) An Active Campaign Contact ID
CEL
$result_object_key.track_data.profile_ids.active_campaign
Example
"51071"
(Optional) A Junction Patient ID
CEL
$result_object_key.track_data.profile_ids.junction
Example
"51261b3f-de23-459e-9c82-ed97496e317e"
(Optional) A Segment Anonymous- or User- ID
CEL
$result_object_key.track_data.profile_ids.segment
Example
"51261b3f-de23-459e-9c82-ed97496e317e"
(Optional) An IntakeQ Patient ID
CEL
$result_object_key.track_data.profile_ids.intakeq
Example
"8213"
(Optional) A Customer.io Customer ID
CEL
$result_object_key.track_data.profile_ids.customer_io
Example
"e2e9163e-2a48-4cd4-9c78-0f7477c55126"
(Optional) A Freshdesk Contact ID
CEL
$result_object_key.track_data.profile_ids.freshdesk
Example
"410ad90d-805f-4be5-9942-5490259c3ed6"
(Optional) A Hubspot Contact ID
CEL
$result_object_key.track_data.profile_ids.hubspot
Example
"80478911765"
(Optional) A Stripe Customer ID
CEL
$result_object_key.track_data.profile_ids.stripe
Example
"cus_RpeF9OcJYBinL6"
(Optional) A user ID for a Feathery flow
CEL
$result_object_key.track_data.profile_ids.feathery
Example
"a9560d4e-5e75-43c8-89f8-2245ec2bdfd4"
(Optional) An OpenPhone Contact ID
CEL
$result_object_key.track_data.profile_ids.open_phone
Example
"67f8f19bccf2f4d79cd6357a"
(Optional) An Elation Patient ID
CEL
$result_object_key.track_data.profile_ids.elation
Example
"100121441215212"
(Optional) An Athena Patient ID
CEL
$result_object_key.track_data.profile_ids.athena
Example
"12312"
(Optional) A PostHog Person ID
CEL
$result_object_key.track_data.profile_ids.posthog
Example
"a9560d4e-5e75-43c8-89f8-2245ec2bdfd4"
(Optional) A Nextech Patient ID
CEL
$result_object_key.track_data.profile_ids.nextech
Example
"a9db751b-c154-4e75-8f9c-ae7dd89ddeec"
(Optional) A Medplum Patient ID
CEL
$result_object_key.track_data.profile_ids.medplum
Example
"7daba5ae-708d-4d75-9d5a-4744cea5cdbe"
(Optional) A Spruce Contact ID
CEL
$result_object_key.track_data.profile_ids.spruce
Example
"entity_0E5QDGJC03000"
(Optional) A Zoho Contact ID
CEL
$result_object_key.track_data.profile_ids.zoho
Example
"1234567890123456789"
(Optional) A Boulevard Client ID
CEL
$result_object_key.track_data.profile_ids.boulevard
Example
"urn:blvd:Client:client123"
HI PII (Optional) Property values to store on the Morf ProfileCEL
$result_object_key.track_data.profile_properties
Example
{
"date_of_birth": "2000-01-01",
"email_address": "johndoe@example.com",
"phone_number": "+15551234122"
}
HI PII (Optional) Data associated with the event, not automatically stored on the Morf ProfileCEL
$result_object_key.track_data.event_data
Example
{
"plan_purchased": "Comprehensive Wellness++",
"session_id": "13139112"
}
(Optional) Time the event occurred, if not provided - the time Morf receives the track event (RFC3339 ISO Format)
CEL
$result_object_key.track_data.occurred_at
Example
"2025-01-02T03:04:05+06:00"
Description coming soon
CEL
$result_object_key.track_data.source_id
Example
null
