Inbox — Unified Thread v2 (Direction B + A hybrid)

Call card collapses to one dense row by default (A's economy), expands on play to reveal the full scrubber row (B's first-class playback). Appointment-booked / rescheduled / cancelled events appear as compact A-style rows. Single thread, all event types interleaved chronologically.

Final thread design — hybrid call card + compact appointment events
Two calls shown in different states: top one is collapsed (one row), bottom one is playing (scrubber expanded below the same row). Appointment booked + rescheduled events shown as compact A-style rows. Click the play button on either call card to toggle the state.
Recommended
Steve Montgomery · +1 (303) 555-0142SALES · 7 events
Tuesday, May 6
Hi, saw your text — what's the listing price on the Aspen lot?
10:14 AM
Dialer 2:14 Voicemail left Sarah K. 10:18 AM
0:00 / 2:14
Left you a quick voicemail with details. Best time to call back?
10:19 AM · Sarah K.
BLAST · spring-aspen-warmHey Steve — quick note that the lot tour next Saturday has 2 spots left. Want one?
2:30 PM · Auto blast
REPLY TO BLAST · spring-aspen-warmYes please — sign me up for the 10:30 slot.
4:15 PM
Wednesday, May 7
Softphone 5:42 Qualified Sarah K. 9:02 AM
1:48 / 5:42
Thanks for the call — please send the appointment confirmation when you can.
9:11 AM
Appointment booked Sat May 24, 10:30 AM PT · Aspen lot tour by Sarah K. 9:14 AM
All set — see you Saturday at 10:30 AM at the Aspen lot. Calendar invite sent.
9:15 AM · Sarah K.
Thursday, May 8
Rescheduled Sat May 24, 10:30 AM → Sun May 25, 2:00 PM PT by Sarah K. 11:22 AM
Inbound Voicemail 0:34 After hours 3:47 PM
0:00 / 0:34
Source key
DialerCallSession (campaign dialer)
SoftphonePersonalCallSession
InboundInboundCall (toll-free pool)
Voicemailstacked when no live agent answered
Blast SMS — dashed indigo border + campaign tag
Appointment events
Booked — teal
Rescheduled — amber
Cancelled — red
Interaction
Click the ▶ on any call to expand the scrubber inline. Press again to collapse. Subsequent calls in the same conversation auto-collapse the previous one (one player at a time).

Motion + polish baked in