All Contacts

Daniel Lee

Workflows

Every workflow run this contact has entered, and how far they got.

Go to Workflow Builder
18442
v3
Pending
2 days ago
17903
v7
Completed
3 weeks ago
16110
v2
Exited
2 months ago
15288
Win-back — Lapsed 60d
v1
—
4 months agoLog expired
13576
Spring Grooming Reminders
v2
Completed
7 months agoLog expired
Daniel Lee · Workflows

Loyalty Rewards — Members

In progress

Now at Wait · 2 days

resumes Sep 24, 9:38 AM

Run 18442 Version v3 Entered Sep 20, 2026 · 9:14 AM Via Segment · Contact Added Group Happy Tails — Tempe

Log

Entry
Sep 20 · 9:14:02 AM
Trigger Audience › Segment › Contact Added — segment Members — Active
Entry conditions evaluated
Membership Status in active — matched (value: active)
Marketing Subscription is opted_in — matched
Re-entry: allowed, 1 prior run · Trigger event id evt_9f31c2
Send · Reward unlocked
Sep 20 · 9:14:06 AM
Hi Daniel — you've earned a free groom at Happy Tails Tempe. Reply CLAIM and we'll book it.
Marketing · Safe hours · Sent as Happy Tails — Tempe · 1 segment · SMS
Delivery · Queued 9:14:06 → Sent 9:14:08 → Delivered 9:14:11 · carrier OK View message ↗
Brand Standard checks passed · not held for safe hours · advanced to next step
Compliance check
Sep 20 · 9:14:12 AM
Marketing subscription still opted in · frequency cap 4/week not reached (2 this week)
Condition · Replied?
Sep 20 · 9:38:41 AM
If replied CLAIM — Inbound message body contains "claim" → true (received 9:38:12 AM)
Update Contact
Sep 20 · 9:38:43 AM
tags: new, high_value → new, high_value, vip
reward_claimed_at: — → 2026-09-20T09:38:43Z
2 fields changed · no conversion recorded on this step
Update · HubSpot
Sep 20 · 9:38:44 AM
API Destination HubSpot Update Contact
Endpoint:
PATCH https://hubspot.com/crm/v3/contacts/48213
Status:
200 OK
Duration:
184 ms
Attempt ID:
k7Rw2Q
1 attempt · advanced to next step

Request

Method: PATCH
Content Type: application/json
{
  "firstname": "Daniel",
  "lastname": "Lee",
  "phone": "+16025550148",
  "tags": "new;high_value;vip",
  "reward_claimed_at": "2026-09-20T09:38:43Z"
}

Response

Code: 200
Content Type: application/json
{
  "id": "48213",
  "properties": {
    "firstname": "Daniel",
    "lastname": "Lee",
    "tags": "new;high_value;vip",
    "reward_claimed_at": "2026-09-20T09:38:43Z",
    "lastmodifieddate": "2026-09-20T09:38:44.184Z"
  },
  "updatedAt": "2026-09-20T09:38:44.184Z",
  "archived": false
}
Wait · 2 days
Sep 20 · 9:38:45 AM
Resumes Sep 24, 2026 · 9:38 AM (in 1 day 14 h) — then continues to Send · Book your visit
Back to History

Loyalty Rewards — Members

Published: v3 Published 9/2/2026

Sankey Chart

Distribution of events across the steps and exits of this flow.

Contacts

What this prototype is proposing

Three surfaces and one link between them. Built to give the design conversation something concrete; none of it is a commitment to implementation.

1 · A Workflows tab under Contact › Logs

Same row-card pattern as the existing Campaigns tab, one row per run, not per workflow — because a contact can re-enter, and each entry has its own version and outcome.

2 · A per-run stage timeline

The log shape Test Mode already uses, rendered for a real run: one row per executed step, ordered, timestamped, with a per-node-type detail block. Steps not yet reached stay visible, greyed, so the whole path reads.

3 · The Sankey counterpart

Clicking a step bar opens Step Contacts (At this step / Passed through / Exited here) as a 384px panel that pushes the chart rather than covering it. The chart header gets the one list a bar cannot carry: everyone who made it at least through the trigger.

The deep link

Contacts › View › Logs › Workflows › {workflow} › run {instance_id}
  ← from Step Contacts row      "View run"
  ← from the contact's own Workflows tab
  → back out via "View in Analytics" (workflow + version, the Sankey)

One object in two directions: aggregate → individual from the Sankey, individual → aggregate from the run header. "View in Analytics" lands on the same version the run executed, not the current one.

Open questions for design

  • Retention — how far back do run logs go, and does the tab paginate or cut off?
  • Does a Group-level user see runs for contacts outside their group?
  • Step Contacts on a high-volume workflow: is "At this step" live, or as-of the filter window?
  • Does the timeline show steps from a version that no longer exists in the current draft?
  • Export: per-step contact list, per-run log, both, or neither in v1?