Read the Timeline
The timeline on a lead’s detail page is the canonical history of that lead. The current column on the board, the active flag chips, the temperature score — all of those are projections of the timeline. When the rest of the UI surprises you, the timeline answers the question.
This page walks you through what each row is telling you.
Anatomy of a timeline row
Section titled “Anatomy of a timeline row”Every row has four parts:
| Part | What it tells you |
|---|---|
| Time | When the event happened (timezone-aware; shown in your local time). |
| Actor | Who or what caused it — either your or a teammate’s name, or Scribe. |
| Event type | What kind of thing happened (state transition, flag set, contact logged, etc.). |
| Detail | Reason code, free-text note, or payload specifics. |
The actor is the first thing to look at. It tells you whether something was an explicit human action or an automatic side-effect.
Two kinds of actor: you, and Scribe
Section titled “Two kinds of actor: you, and Scribe”You (or another agent, by name) appear as the actor on anything done by hand:
- Logged a phone call.
- Added a manual note.
- Set or cleared a communication flag.
- Manually moved a lead to a different column.
- Reassigned the lead to a different agent.
Scribe appears as the actor on anything the system did automatically:
- State transitions that fired because of an event (you logged contact → Scribe wrote the
NEW → CONTACTINGrow). - Temperature recalculations from behavioral signals (the lead viewed three properties → Scribe wrote a temperature event).
- Timeout-driven transitions (21 days without response → Scribe wrote
CONTACTING → ARCHIVED). - Lead creation from a contact form submission.
If you can’t remember whether you moved a lead or the system did, the timeline answers it. The actor column is unambiguous.
See What Scribe does for the longer version of the actor model.
Event types you’ll see
Section titled “Event types you’ll see”State transitions
Section titled “State transitions”The most common timeline row. Format:
Scribe — State change: NEW → CONTACTINGtriggered by: contact_attemptedOr for an agent-driven transition:
You — State change: CONTACTING → QUALIFIEDtriggered by: motivation_confirmedThe triggered by line is the trigger name — the named reason the transition happened. For forward transitions it’s usually self-explanatory; for reverse transitions it’s a required reason code.
State transitions with reason codes (reverse moves)
Section titled “State transitions with reason codes (reverse moves)”When a lead moves backwards in the pipeline — COMMITTED → QUALIFIED after a buyer’s agreement falls apart, IN_CONTRACT → QUALIFIED after a contract gets voided, NEW → TRASHED for bad data — the timeline shows the reason code:
You — State change: COMMITTED → QUALIFIEDtriggered by: deal_collapsedreason: buyer changed jobs, lost pre-approvalThe reason code (e.g., deal_collapsed) is mandatory; the free-text reason after it is what you typed at the time. Both stay on the record.
Re-entry transitions
Section titled “Re-entry transitions”Scribe — State change: ARCHIVED → CONTACTINGtriggered by: lead_re_engageddetail: temperature_signal, score change +18 over 7dThis row says: a lead in ARCHIVED came back on their own. Their behavior triggered the re-entry — usually a return visit and some property views — and the system pulled them back into your active flow.
Activity entries (you logged something)
Section titled “Activity entries (you logged something)”You — Phone call logged"Left voicemail, mentioned the inquiry on the West End property."These are agent-entered notes about calls, emails, texts, showings, or anything you did. They don’t change state on their own — but the first activity entry on a NEW lead is what triggers the NEW → CONTACTING Scribe transition immediately below.
Flag set / flag cleared
Section titled “Flag set / flag cleared”You — Flag set: do_not_textreason: lead asked for email only
You — Flag cleared: unsubscribedreason: lead resubscribed at open houseBoth set and clear are preserved. A re-set creates a third row, not an edit to the second.
Temperature signal
Section titled “Temperature signal”Scribe — Temperature signal: +12detail: tour_request submittedA behavioral event that moved the temperature score. These rows are usually low-noise; you’ll see them when you’re trying to answer “why is this lead Hot?” and want to see what specifically drove the score up.
Reading the timeline backwards from a problem
Section titled “Reading the timeline backwards from a problem”The timeline is most useful when something looks wrong. A few common patterns:
“Why is this lead in CONTACTING and not QUALIFIED?”
Section titled ““Why is this lead in CONTACTING and not QUALIFIED?””Scroll the timeline. Look for a motivation_confirmed trigger. If you don’t see one, the lead hasn’t been explicitly qualified — even if the conversation feels like they’re qualified, the state machine doesn’t infer it from notes. Add an explicit “qualified” action.
”Why did this Hot lead suddenly drop to Cold?”
Section titled “”Why did this Hot lead suddenly drop to Cold?””Look at the most recent temperature events. If the score dropped without new behavioral signals, it decayed on its own — the score lowers over time when there’s no recent activity. If new signals are present and the score still dropped, something’s behaving unexpectedly; flag it.
”Why is this lead in ARCHIVED when I was working it last week?”
Section titled “”Why is this lead in ARCHIVED when I was working it last week?””Look for the most recent CONTACTING → ARCHIVED or QUALIFIED → ARCHIVED row. The trigger will be a timeout (timeout_21d_no_response or timeout_180d_no_progress). The timeline will show the 21- or 180-day gap between the last activity and the timeout transition. If you were “working it last week” without logging anything, the system didn’t know.
The fix isn’t reactivating the lead — it’s logging activity as it happens, so timeouts don’t fire against active work.
”Did I already reassign this lead, or am I about to?”
Section titled “”Did I already reassign this lead, or am I about to?””Reassignment events aren’t fully logged yet (the system has a known gap here — see the lifecycle dashboard guide for the current state). If you can’t find a reassignment row in the timeline, ask the previous agent directly.
What the timeline does not contain
Section titled “What the timeline does not contain”- Outbound emails sent automatically — those live in the email-system logs, not the lifecycle timeline.
- Property views and favorites — these are session events that feed the temperature scorer; they appear as aggregated temperature-signal rows, not individual rows.
- Search queries — same as above. They contribute to temperature, they don’t get individual rows.
If you need the underlying behavioral detail for a lead, the session activity view shows it. The lifecycle timeline shows what happened to the lead — promotions, transitions, flags, agent actions, and temperature events.
Related
Section titled “Related”- What Scribe does — why the system has a name and what it’s tracking
- Why reverse transitions need reasons — what the reason code on a reverse move is for
- State machine card — the transition table the timeline rows correspond to