Date: 2026-06-14

Importance: High

Status: Complete for feasibility, pending for implementation.

Summary of work done

Sam asked whether Attorney Hubs and dashboards can track voicemail count per day, phone answer percentage, unreturned calls, and negative sentiment voicemails. I loaded the Litify and Attorney Hub workup skills, verified live LITIFY_ORG connectivity, ran a sample litify_pm__Matter__c query, checked live field definitions for SAIL_Call_Log__c and Task, refreshed current seven-day counts, and located the active Salesforce metadata repo under /Users/samaguiar/Documents/Projects/Repos/sail-litify/salesforce-metadata.

Answer: yes, this is addressable. The reliable build should create a normalized communications KPI layer first, then wire Attorney Hub tiles and dashboard drilldowns to that same layer.

Evidence gathered

Live SAIL_Call_Log__c fields still include Direction__c, Platform__c, Call_Duration_Seconds__c, Call_ID_External__c, Related_Task_ID__c, Matter__c, Intake__c, Summary__c, Call_Notes__c, Next_Steps__c, Score__c, and Summary_Link_External__c.

Live Task fields checked include CallDisposition, CallDurationInSeconds, CallObject, TaskSubtype, rcsfl__RC_Logging_Type__c, Link_to_Call_Details__c, and litify_pm__Matter__c.

Seven-day current evidence from SAIL_Call_Log__c: 1,056 call-log rows, 1,055 RingCentral rows, 329 inbound, 727 outbound, 442 matter-linked, and 161 intake-linked.

Seven-day current evidence from Task: 1,826 call tasks. Dispositions included 76 Call connected, 15 Answered, 2 Connected, 7 Voicemail, 4 Missed, 2 No Answer, plus many null dispositions. This supports a provisional answer-rate metric but should not be treated as a final KPI without normalization because null dispositions dominate the raw task set.

Summary__c cannot be filtered directly in SOQL, and Score__c cannot be grouped directly. That confirms the need for a normalized field or nightly rollup rather than dashboard formulas that parse rich text in real time.

Recommended implementation shape

Build AttorneyHubPhoneKpiService or equivalent shared Apex service that reads RingCentral-backed call evidence, normalizes daily facts, and exposes: voicemail count by day, answer percentage, unreturned call count by SLA window, negative sentiment voicemail count, and drilldown rows.

Add visible hub tiles only after the drilldown row source is the same predicate as the tile count. This follows the existing Attorney Hub rule that card counts and drilldowns must match.

For negative sentiment, do not rely only on rich-text keyword searches. Use Score__c if the scoring contract is confirmed, or add explicit normalized fields such as Sentiment_Category__c, Voicemail_Flag__c, Callback_Status__c, and Callback_Due_At__c.

Reason for ending session

The feasibility question is answered with live evidence. No metadata was changed. Implementation should be a separate build step because the active repo has a dirty worktree with many existing changes from other agent work, and the current requested action was feasibility rather than deployment.

Suggested next steps

A capable next agent can proceed by creating a reversible implementation branch, adding the shared KPI service and tests, wiring one pilot overview hub first, then expanding to the circulated hubs after count-to-drilldown QA passes. The likely first pilot should be one current overview component rather than all hubs at once.