The next agent or developer picking this up cold. Assume they have:
sf CLI authenticated to LITIFY_ORG./Users/samaguiar/Documents/Projects/litify/ringcentral-sms-sync/ for context.sf project commands from a terminal.Do NOT assume prior context from the sync build conversation. Everything needed is in this document.
Build a Lightning Web Component that displays RingCentral SMS history as an iMessage-style chat-bubble conversation on the Matter and Intake record pages in Litify. The data already exists — every text is stored as a litify_pm__lit_Note__c record with Topic Text message sent or Text message received, linked to the Matter or Intake via litify_pm__lit_Matter__c / litify_pm__lit_Intake__c. The sync that creates these Notes runs on launchd every 2 minutes today (project: litify/ringcentral-sms-sync/).
The visual target: inbound messages as gray bubbles on the left, outbound messages as blue bubbles on the right, oldest at top, newest at bottom, auto-scroll to newest on load. Show sender name and timestamp on each bubble. If the record has texts from multiple counterparty numbers, provide a tab or dropdown selector.
This component is read-only in phase 1. Sending new SMS from Litify is out of scope and should be tracked as phase 3.
Every sync-created Note has these fields populated:
Name — e.g. SMS From +15024431333 (4/13/2026, 10:39:27 AM) or SMS Sent to +15024431333 (...)
litify_pm__lit_Topic__c — Text message sent or Text message received
litify_pm__lit_Note__c (the body field, confusingly also the rich text area) — a multi-line string with this EXACT format:
Direction: Inbound
From: +15024431333
To: +15028138900
Sender user: Alyssia Higgs (ext 156)
RC sent: 2026-04-13T14:39:27.000Z
--- MESSAGE ---
hey is my case still on track
litify_pm__lit_Matter__c or litify_pm__lit_Intake__c — lookup to the parent record (one or the other, not both).
OwnerId — the Salesforce User ID of the RC user whose extension handled the message. This is how we know who sent outbound texts.
External_Id__c — rc_msg_{rcMessageId}, guaranteed unique, immutable.
CreatedDate — when the Note was upserted, NOT when the SMS was sent. For chronological ordering, parse the RC sent line from the body, not CreatedDate.
Important contingency: The sync writes CreatedDate at sync time, so a 60-day backfill's CreatedDate clusters all show 2026-04-14/15. Do NOT order the conversation by CreatedDate — order by the RC sent timestamp parsed from the body. The backfill report reports/sync-live-wave1_intake-2026-04-15T01-27-53-135Z.json shows the original RC creation times.