What appears in the timeline
Each timeline entry has anentry_type and a corresponding payload object:
| Entry type | What it represents |
|---|---|
event | An event sent by your application for this contact. |
tag_assigned | A tag was assigned to this contact. |
tag_removed | A tag was removed from this contact. |
workflow_execution | A workflow ran for this contact. |
campaign_recipient | The contact was included in a campaign send. |
profile | The contact record was created or updated. |
subscription | The contact’s subscription state changed. |
direct_email | A transactional email was sent directly to this contact. |
How to read each entry type
profileaction: created— the contact record was first created.action: updated— contact fields were updated.- Shows the email at the moment of the change.
state: subscribed— contact opted in or was re-subscribed.state: unsubscribed— contact opted out.unsubscribe_reasonis shown when provided.
- Shows subject, from address, and delivery status.
status_textgives the human-readable status:sent,received,delivered,opened,clicked,deferred,bounced,failed,skipped.deferredmeans the provider temporarily delayed delivery — the email will be retried automatically.- Use
sent_email_idto cross-reference the full sent email record.
- Shows which workflow ran, its status, and timestamps.
- Includes
email_openedandemail_clickedwhen the execution sent an email. sent_email_reflinks to the specific sent email record.
- Shows which tag changed and the timestamp.
- Useful for verifying that event-driven tag rules are firing correctly.
- The raw event your application sent (type, action, source, status).
- Useful for confirming events are arriving and being attributed to the right contact.
- Shows the campaign, send status, and engagement milestones (opened, clicked).
Real example: a new user’s first 24 hours
Here is a real contact journey for a newly signed-up user. The timeline reads newest-first and covers two days of activity.June 19, 2026 — 3 events
| Time | Entry | Type | Detail |
|---|---|---|---|
| 6:23 PM | Verify your email address | direct_email | opened |
| 9:00 AM | Welcome Workflow | workflow_execution | opened |
| 9:00 AM | Welcome Workflow | workflow_execution | opened |
June 18, 2026 — 15 events
| Time | Entry | Type | Detail |
|---|---|---|---|
| 8:16:07 PM | Subscribed | subscription | subscribed |
| 8:16:07 PM | Profile created | profile | created |
| 8:16:07 PM | Verify your email address | direct_email | sent |
| 8:16:07 PM | Verify your email address | direct_email | sent |
| 8:16:07 PM | Verify your email address | direct_email | received |
| 8:16:09 PM | Verify your email address | direct_email | delivered |
| 8:16:10 PM | Verify your email address | direct_email | opened |
| 8:16:19 PM | Verify your email address | direct_email | opened |
| 8:16:24 PM | signup | event | received |
| 8:16:24 PM | Onboarding | tag_assigned | assigned |
| 8:16:24 PM | New Signup | tag_assigned | assigned |
| 8:16:24 PM | Lead | tag_assigned | assigned |
| 8:16:24 PM | Profile updated | profile | updated |
| 8:16:24 PM | Verify your email address | direct_email | clicked |
| 8:16:26 PM | Verify your email address | direct_email | clicked |
- At 8:16:07 PM the contact signed up:
Profile createdandSubscribedappeared together, meaning the registration flow created the contact and opted them in simultaneously. - The transactional
Verify your email addressemail was dispatched immediately:sent→received→deliveredwithin 2 seconds. - The contact opened the email at 8:16:10 PM — within 3 seconds of delivery.
- At 8:16:24 PM the
signupevent arrived from your application. This triggered tag assignment:Lead,New Signup, andOnboardingwere all assigned in the same second. Profile updatedappeared alongside the tags — the contact record was enriched from the signup event payload.- The contact clicked the verification link at 8:16:24 PM and again at 8:16:26 PM (double-click pattern is common on verification links).
Common uses
Debugging why a workflow did not run- Check for the expected trigger event in the timeline.
- Confirm the tag was assigned.
- Look for a
workflow_executionentry with afailedstatus and reviewerror_message.
- Look for a
subscriptionentry with the expectedstateand timestamp.
- Look for
direct_email,campaign_recipient, orworkflow_executionentries and checkstatus_text.
- Review
tag_assignedandtag_removedentries with timestamps to trace how tags changed over time.

