Scene Agent Assist consoles¶
Status: Design record | Last reviewed: 2026-10-07
This record captures the design and reference investigation for configurable Salesforce and Headless consoles. The V1 implementation and current operational contract are documented in Director. The design notes below also retain future Custom App and Amazon Connect considerations.
Release scope¶
| Release | App types |
|---|---|
| V1 | Salesforce, Headless |
| Fast follow | Custom App |
| Backlog | Amazon Connect Agent Workspace |
Stage type and application shell are separate settings. Preserve Voice Agent Call stages and add Agent Assist stages. Narration, highlights, callouts and camera cues apply to both. A Scene can transition from voice self-service to human assistance while preserving its authored conversation and record context.
Salesforce uses the native Omni-Channel visual reference. The simulated utility bar contains only Omni-Channel, with Phone and Inbox. It starts in a configured, usable state; provider login and unrelated utility entries are outside the Scene. Amazon Connect as a standalone workspace remains backlog scope even when a Salesforce source example uses Connect underneath its Omni-Channel widget.
Verified reference material¶
On 2026-10-07, the existing devsdo CLI authentication opened a fresh authenticated
Playwright Chromium session. Clear Connect and Business Plus Case pages were
inspected in the browser, and their current metadata and owned components were
retrieved into an isolated reference project.
| Reference | Current developer name |
|---|---|
| Clear Connect application | DCC_Patient_Service_Clear_Connect |
| DCC Multi Patient Service Case Page | DCC_Patient_Service_Multi_Case_Page |
| Business Plus application | DCC_B_Business_Plus |
| Business Plus Case page | DCC_B_Case_Business |
| Shared three-column template | DCC_Custom_Interaction_Template |
| Native Omni-Channel component | runtime_service_omnichannel:omniWidget |
Fresh Clear Connect app metadata uses #234F3E and renditionDownload_1.
Business Plus uses #4E50FE and DCC_B_BusinessPlusLogo. An older Clear Connect
retrieval used red/Takeda branding and is not the current visual baseline.
Auto Plus, Banking Plus, Health Plus and Insurance Plus application metadata were
also retrieved to inform branding presets; those four apps were not browser-audited.
The shared template assigns 21.3% to the left column, 53.7% to the center, and the
remaining space to the right, with 0.5rem gaps. Treat these as reference geometry
for a preset rather than universal proportions for every composition.
DCC_GlobalCssLoader loads dccBaseResources/dccStyle.css; this source includes
the custom card styling and the incoming/current-work wrapping override for
.omni-slds-truncate-90. SLDS alone does not contain these customizations.
Current Clear Connect composition:
| Region | Components |
|---|---|
| Left | dccMultiPatientProfile, dccMultiPatientAccountSummary, dccMultiPatientContactDetails |
| Center | dccMultiPatientInteractionDetails, dccMultiPatientInquirySummary, dccMultiPatientAppealForm, dccMultiPatientCaseSnapshot |
| Right | dccMultiPatientRightPanel, containing Agent Assist and Transcript tabs |
The reference pack is private and Git-ignored under
.local-data/scene-salesforce-reference-2026-10-07/. It contains screenshots,
sanitized rendered markup, browser stylesheet captures, downloaded image assets,
146 retrieved source/metadata files, and provenance manifests. Raw browser
authentication state stays in a separate private file and is not a reusable asset.
An earlier private source capture supplies 74 extracted native phone modules,
including opencti:dialPad, native_voice:inputPhoneNumber,
native_voice:globalCallActions and native_voice:enhancedPhoneCallControls.
The dialpad module contains compiled HTML templates and CSS. These are references
to adapt, not a standalone distributable Salesforce application.
The live browser subsequently provided the active OpenCTI v1
phoneCallControls, phoneCallEntry, phoneCallExtension and participant
modules. V1's standard call-entry rows, round control row and full-width
End/Leave Call button are the implemented Salesforce baseline.
For native Phone reference capture, a browser-local mock provider supplies the connector readiness response. Provider endpoints are blocked and the connector's tenant-configuration request is fulfilled locally. No live call is placed. Fresh captures cover the Case consoles, empty Inbox and idle Phone. Existing ringing references and compact-layout metadata inform incoming work; a fresh live ringing/transfer/wrap-up capture is not claimed by this investigation.
Configurable Salesforce shell¶
Present setup as Workspace, Branding, Records, Components and Incoming work. Choose a preset first, then edit its fields while previewing the result. Keep the user-facing configuration structured; CSS is a component-authoring extension rather than the mechanism for renaming tabs or changing record data.
| Setting | Author controls |
|---|---|
| Workspace | App label, preset/version, viewport, active record tab |
| Branding | Existing template, app logo, display label, supported shell colors |
| Primary tab | Object label and record label/template |
| Subtabs | Account, Case number, optional Voice Call; labels, order, active tab |
| Left sidebar | B2B/B2C, preset, images, detail groups, visible fields |
| Main console | Ordered sections/tabs and their component instances |
| Right rail | Standard Agent Assist; optional transcript view using shared rendering |
| Utility bar | Omni-Channel only; configured Phone/Inbox and simulated call state |
| Incoming work | Work items, context rows, summary, image/icon and acceptance target |
Keep branding and workspace structure independently editable. Extend the existing branding template selection, uploads and snapshot mechanism with supported shell tokens, app logo and display label. A workspace preset can supply default tab labels, layouts and components. A Scene saves its chosen overrides and exact asset versions, so later template edits do not change an existing recording.
The primary tab supports both a literal label such as Account and a bound record label such as an account name. Subtabs bind to the same Account, Case and optional Voice Call objects. Selecting a different tab changes the simulated workspace. It does not navigate to a live Salesforce record.
One record context¶
Store structured authored records separately from their presentation: account, contact/person, case, optional voice call, related records and work item. Use stable IDs and typed bindings from those records into component properties. Extend reusable details where appropriate rather than copying the same text into the incoming card, sidebar and Assist input.
For example, an incoming item's caller label, the profile card's name, the primary tab's record label and Assist's host context can all reference the same contact. Changing that contact updates each view. Changing a Case number updates its tab, details card and incoming acceptance target together.
Expose the resolved value beside a binding in the editor. Validate missing records, invalid acceptance targets and empty required fields before export.
Incoming work and Phone¶
An incoming work item is a saved object with:
- Stable ID and channel.
- Title, subtitle, image/icon and displayed number.
- Optional queue, priority, waiting/ringing state and timing.
- Ordered context rows and detail groups with bound or literal values.
- Optional multiline summary and configured expansion/overflow behaviour.
- Accept/decline actions and the Account/Case/Voice Call tab to activate.
Provide compact and expanded context presets based on the actual Omni markup. Authors can select, reorder, rename and populate fields before the work is offered. Preserve the existing custom wrapping treatment; do not silently truncate a configured summary.
The current Takeda integration is a useful example, not a restriction to two
Scene fields. Its DCC_Connect_Handoff compact layout displays
DCC_Caller_Name__c and DCC_Summary__c. Initial CALL_STARTED.callAttributes
provides the corresponding sfdc- fields before the native incoming card is
created. See Incoming Omni-Channel preview.
Scene events offer the work, render its already-resolved context, and update Inbox counts. Acceptance opens the configured record/subtabs and enters the call; decline applies its authored outcome. A later moment can update context explicitly. The incoming preview never depends on a fresh model or record lookup.
Phone uses the native number entry and 12-key dialpad references, including numeric/letter labels, spacing, typography, focus and pressed states. Outbound human calls transition through dialing, ringing, connected and ended states. Simulate in-call keypad input, mute, hold/resume, transfer and wrap-up through the same call model that drives participant audio and screen state.
Console components¶
Add a Console components collection or filter to the existing catalog infrastructure. Entries advertise supported regions, input schema, default fixture, exposed actions and stable visual targets. A new catalog engine is unnecessary.
| Component family | Starting point |
|---|---|
| Identity and profile | Existing dccContextSidebar and multi-patient profile |
| Labelled details | CardConnect configurations and account/contact cards |
| Summary and timeline | Clear Connect summaries and Business Plus histories |
| Related records | Multi-patient Case snapshot/tree |
| Forms | Takeda/clear-connect appeal form and current dynamic components |
| Custom static content | Versioned HTML/CSS plus pinned image/font assets |
| Agent Assist | Shared surface-app/A2UI presentation and component catalog |
The existing context sidebar
already supports auto, b2b and b2c, plus visibility choices for profile,
account, contact, milestones and history. Adapt its presentation to Scene data.
Initial sidebar presets should cover business account/contact, consumer profile,
and multi-person account context. Images and labelled detail rows remain editable.
Preserve genuine interaction for dynamic components. For example, the Takeda workspace switches from summary/timeline into an appeal form, preserves manual edits, and emits progress/completion events. A Scene adapter feeds saved data and records those actions; it does not replace that interaction with a screenshot. Some existing Business Plus sections are image-only references and need explicit interactive equivalents if the Scene allows the author to operate them.
Static HTML/CSS is stored as a versioned visual block in an isolated document. Declare buttons and fields through Scene actions and targets. Arbitrary inline scripts and inherited Salesforce bootstrap/session code are not part of a static block. Use the existing catalog component path for richer programmed behaviour. Inject branding tokens inside each isolated document so components render the same way in preview and export.
Assist, voices and timeline¶
Bind the chosen Assist agent to the standard right rail and, when configured, workspace or context-only outputs. Preserve the shared A2UI/surface-app renderer. Use the existing host-context and form-event contracts as adapter references.
Support authored results, captured Assist takes and live rehearsal. Capture real Assist output against scripted participant turns and mock record/tool context. Save output events, triggering turns, observed latency, configuration references and catalog versions. Export consumes that frozen take. Relevant input changes mark captured output stale; edited presentation timing remains separate from the original measured latency.
Assign customer, human representative, optional specialist, voice agent and narrator separate identities. ElevenLabs voices the authored participants. Only call participants feed Assist; narration is audience-only. Assist recommendations do not automatically become spoken representative dialogue.
Use one presentation timeline to reconstruct call, records, tabs, components and annotations at any time. Narrated explanation pauses can hold the simulated conversation while the presentation clock continues. No provider requests or record mutations occur while seeking or exporting a captured Scene.
Highlights, tooltips, cursor actions and camera cues target stable IDs such as
omni.work.handoff.summary, console.caseTab, sidebar.account.logo,
workspace.appeal and assist.card.recommendation. Embedded regions report
their bounds through a bridge. Missing targets produce an actionable authoring
notice rather than drifting to an approximate coordinate.
Implementation and acceptance¶
- Add stage/shell configuration and shared record bindings, preserving old Director documents as Voice Agent Call stages.
- Build Salesforce chrome, navigation, Omni Phone/Inbox and incoming context against the captured markup, native modules and custom DCC stylesheet.
- Adapt B2B/B2C sidebar and main-console presets into Console components.
- Add shared narration/annotation targets and the Assist capture/playback adapter.
- Adapt the original Headless presentation to the same state and component contracts. Retain the current runtime and shared renderers.
Validate at a saved desktop viewport, initially 1920 × 1080, with preview scaled to fit and a 1:1 inspection option. Freeze fonts, CSS, logos, data and component versions in the render snapshot. Compare lossless reference frames, then inspect the encoded MP4 for text readability and motion.
The first complete sequence covers incoming context, acceptance, human dialogue, Assist arrival, a highlighted recommendation, a form/record update and wrap-up. Also validate an outbound human call through Phone and an alternate B2C sidebar. Exercise backward seeking, pause/resume, field edits, save/reload and export.
Update Director's current fixed 1440 × 1000 composition and phone-specific frame-reuse signature. Every shell/annotation animation must participate in the render schedule; otherwise newly introduced motion can freeze during export. Share an audio mix plan between browser playback and export.
Implementation updates must include the Director handbook and user guide, schema validation, round-trip coverage and appropriate visual/browser checks. This proposal and the reference capture do not claim those runtime changes are shipped.