{
  "event_data":  {
    "plan_purchased":  "Comprehensive Wellness++",
    "session_id":  "13139112"
  },
  "event_id":  "42b7133b-84db-436e-b721-7a63f2dde515",
  "event_name":  "join-button-clicked",
  "occurred_at":  "2025-01-02T03:04:05+06:00",
  "profile_ids":  {
    "active_campaign":  "51071",
    "axle_health":  "0f472e61-138b-4bbe-b222-a5d254e2cdcd",
    "butterfly_labs":  "663dbc35-500b-47d3-9d42-4bc29a729a08",
    "customer":  "1ea83e74-1dd7-4569-b8d6-866a43680917",
    "customer_io":  "e2e9163e-2a48-4cd4-9c78-0f7477c55126",
    "formsort":  "1ea83e74-1dd7-4569-b8d6-866a43680917",
    "freshdesk":  "410ad90d-805f-4be5-9942-5490259c3ed6",
    "healthie":  "43281",
    "hubspot":  "80478911765",
    "intakeq":  "8213",
    "intercom":  "6025231623163",
    "recurly":  "3658ba4c-085d-4995-9e36-25f0401007db",
    "sana_benefits":  "100031277",
    "segment":  "51261b3f-de23-459e-9c82-ed97496e317e",
    "vital":  "51261b3f-de23-459e-9c82-ed97496e317e"
  },
  "profile_properties":  {
    "date_of_birth":  "2000-01-01",
    "email_address":  "johndoe@example.com",
    "phone_number":  "+15551234122"
  },
  "user_id":  "d2aae7a5-b3b0-4bee-991b-695d501c91e5"
}
{
  "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",
    "axle_health":  "(Optional) An Axle Health Patient 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",
    "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",
    "recurly":  "(Optional) A Recurly Subscriber ID",
    "sana_benefits":  "(Optional) A Sana Benefits Patient ID",
    "segment":  "(Optional) A Segment Anonymous- or User- ID",
    "vital":  "(Optional) A Vital Labs Patient ID"
  },
  "profile_properties":  "(Optional) Property values to store on the Morf Profile",
  "user_id":  "(Required) Unique user ID. Note: this value will be stored as the active customer ID"
}

The Morf Track API is used to send structured event and profile data to Morf. These events are used to trigger workflows which automatically update profile properties for your customers (Morf Profiles).

An example payload and description of the payload fields is given on the right hand side.

Events

Triggering Webhook Types

Any event_name is supported as an event type. For example, join-button-clicked is a valid event name. There are no limitations on the character set or length of the event name, however we recommend using a short, descriptive name which is easy to understand and identify.

Requests

Submit a POST request to the Morf Track API endpoint (ask your customer success liaison for details of the endpoint to use or navigate to the Connect tab of a Track workflow’s trigger node in the graph).

The POST request should include a JSON body with the data defined in the schema below. See the example and a description of the payload on the right hand side for details. We recommend setting the Content-Type: application/json header if you wish.

If a field is marked (Optional), you can either send that field in the payload or not. Eliding the key is tolerated as is submitting null as the value. These are treated equivalently.

Special Object Fields

Profile Properties (profile_properties)

Profile properties are used to store data on a Morf Profile. Any field matching an existing Morf Profile Property type will be updated on the Morf Profile. For example, if the payload’s profile properties object contains a date_of_birth field, the Morf Profile’s date_of_birth property will be updated.

New scalar field values inside this object will be added to the Morf Profile as new properties. For example, if you sent a new field like favorite_color with a value of blue, the new Property type will be created and updated on the Morf Profile.

Event Data (event_data)

Event data is used to store data associated with the event. This data is not automatically stored on the Morf Profile but is available to be accessed within a Morf Workflow.

Profile Ids (profile_ids)

This object is used to store IDs from third party systems. The customer field is used to store a unique identifier in your organization. The other fields are used to store IDs from other third party systems.

{
  "event_data":  {
    "plan_purchased":  "Comprehensive Wellness++",
    "session_id":  "13139112"
  },
  "event_id":  "42b7133b-84db-436e-b721-7a63f2dde515",
  "event_name":  "join-button-clicked",
  "occurred_at":  "2025-01-02T03:04:05+06:00",
  "profile_ids":  {
    "active_campaign":  "51071",
    "axle_health":  "0f472e61-138b-4bbe-b222-a5d254e2cdcd",
    "butterfly_labs":  "663dbc35-500b-47d3-9d42-4bc29a729a08",
    "customer":  "1ea83e74-1dd7-4569-b8d6-866a43680917",
    "customer_io":  "e2e9163e-2a48-4cd4-9c78-0f7477c55126",
    "formsort":  "1ea83e74-1dd7-4569-b8d6-866a43680917",
    "freshdesk":  "410ad90d-805f-4be5-9942-5490259c3ed6",
    "healthie":  "43281",
    "hubspot":  "80478911765",
    "intakeq":  "8213",
    "intercom":  "6025231623163",
    "recurly":  "3658ba4c-085d-4995-9e36-25f0401007db",
    "sana_benefits":  "100031277",
    "segment":  "51261b3f-de23-459e-9c82-ed97496e317e",
    "vital":  "51261b3f-de23-459e-9c82-ed97496e317e"
  },
  "profile_properties":  {
    "date_of_birth":  "2000-01-01",
    "email_address":  "johndoe@example.com",
    "phone_number":  "+15551234122"
  },
  "user_id":  "d2aae7a5-b3b0-4bee-991b-695d501c91e5"
}
{
  "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",
    "axle_health":  "(Optional) An Axle Health Patient 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",
    "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",
    "recurly":  "(Optional) A Recurly Subscriber ID",
    "sana_benefits":  "(Optional) A Sana Benefits Patient ID",
    "segment":  "(Optional) A Segment Anonymous- or User- ID",
    "vital":  "(Optional) A Vital Labs Patient ID"
  },
  "profile_properties":  "(Optional) Property values to store on the Morf Profile",
  "user_id":  "(Required) Unique user ID. Note: this value will be stored as the active customer ID"
}

Schema Field Details

Track
Event Payload
event_id
string

(Optional) Unique identifier for the event (e.g. a UUID)

CEL
event_id
Example
"42b7133b-84db-436e-b721-7a63f2dde515"
event_name
string
required

(Required) Event name

CEL
event_name
Example
"join-button-clicked"
user_id
string
required

ID (Required) Unique user ID. Note: this value will be stored as the active customer ID

CEL
user_id
Example
"d2aae7a5-b3b0-4bee-991b-695d501c91e5"
profile_ids
object

ID (Optional) Profile IDs. Third party IDs to associate with the Profile.

CEL
profile_ids
Example
{
"active_campaign":  "3014141",
"intercom":  "6025231623163"
}
profile_ids.customer
string

(Optional) Any unique identifier in your organization

CEL
profile_ids.customer
Example
"1ea83e74-1dd7-4569-b8d6-866a43680917"
profile_ids.formsort
string

(Optional) A responder UUID for a Formsort flow

CEL
profile_ids.formsort
Example
"1ea83e74-1dd7-4569-b8d6-866a43680917"
profile_ids.healthie
string

(Optional) A Healthie User (Patient) ID

CEL
profile_ids.healthie
Example
"43281"
profile_ids.axle_health
string

(Optional) An Axle Health Patient ID

CEL
profile_ids.axle_health
Example
"0f472e61-138b-4bbe-b222-a5d254e2cdcd"
profile_ids.butterfly_labs
string

(Optional) A Butterfly Labs Patient ID

CEL
profile_ids.butterfly_labs
Example
"663dbc35-500b-47d3-9d42-4bc29a729a08"
profile_ids.recurly
string

(Optional) A Recurly Subscriber ID

CEL
profile_ids.recurly
Example
"3658ba4c-085d-4995-9e36-25f0401007db"
profile_ids.intercom
string

(Optional) An Intercom Contact ID

CEL
profile_ids.intercom
Example
"6025231623163"
profile_ids.sana_benefits
string

(Optional) A Sana Benefits Patient ID

CEL
profile_ids.sana_benefits
Example
"100031277"
profile_ids.active_campaign
string

(Optional) An Active Campaign Contact ID

CEL
profile_ids.active_campaign
Example
"51071"
profile_ids.vital
string

(Optional) A Vital Labs Patient ID

CEL
profile_ids.vital
Example
"51261b3f-de23-459e-9c82-ed97496e317e"
profile_ids.segment
string

(Optional) A Segment Anonymous- or User- ID

CEL
profile_ids.segment
Example
"51261b3f-de23-459e-9c82-ed97496e317e"
profile_ids.intakeq
string

(Optional) An IntakeQ Patient ID

CEL
profile_ids.intakeq
Example
"8213"
profile_ids.customer_io
string

(Optional) A Customer.io Customer ID

CEL
profile_ids.customer_io
Example
"e2e9163e-2a48-4cd4-9c78-0f7477c55126"
profile_ids.freshdesk
string

(Optional) A Freshdesk Contact ID

CEL
profile_ids.freshdesk
Example
"410ad90d-805f-4be5-9942-5490259c3ed6"
profile_ids.hubspot
string

(Optional) A Hubspot Contact ID

CEL
profile_ids.hubspot
Example
"80478911765"
profile_properties
object

HI PII (Optional) Property values to store on the Morf Profile

CEL
profile_properties
Example
{
"date_of_birth":  "2000-01-01",
"email_address":  "johndoe@example.com",
"phone_number":  "+15551234122"
}
event_data
object

HI PII (Optional) Data associated with the event, not automatically stored on the Morf Profile

CEL
event_data
Example
{
"plan_purchased":  "Comprehensive Wellness++",
"session_id":  "13139112"
}
occurred_at
string

(Optional) Time the event occurred, if not provided - the time Morf receives the track event (RFC3339 ISO Format)

CEL
occurred_at
Example
"2025-01-02T03:04:05+06:00"