Skip to Content
IntegrationsSCAI voice experience

SCAI voice experience

SCAI (Syntphony Conversational AI) provides the real-time AI character. At runtime, SCL loads an active agent reference from the Role Play and connects the learner’s browser to the configured voice destination. Operationally, the initial Role Play agent must be requested from the SCAI team and then linked manually to SCL.

A default SCAI agent is designed to act as a customer-service representative. Do not use one unchanged for SCL: the Role Play agent must act as the customer or counterpart while the human learner acts as the employee.

Responsibility split

SCL ownsSCAI or platform owns
Briefing, learner controls, timer, transcript display, and transition to feedbackInitial Role Play agent creation, character prompt, macro-prompt configuration, ElevenLabs voice, language behaviour, DNIS, signalling, and media runtime
Requesting technical credentialsIssuing and revoking SCAI application credentials
Browser microphone and WebRTC orchestrationRemote audio generation and WebRTC infrastructure
Filtering supported metadata into transcript turnsProducing the message and transcript metadata contract

Initial creation and handoff

The Role Play/backend operator sends the approved simulated-customer specification to the SCAI team. The request must identify the agent as an SCL Role Play agent, list its required locales, and explain that the AI is the customer—not the person providing customer service.

The SCAI team is responsible for:

  • Creating the initial agent in the target organization and environment.
  • Disabling the default customer-service macro-prompt that would otherwise make the agent assist the human.
  • Applying the opening message, customer role, background, goals, information boundaries, objections, closing behaviour, guardrails, persona, and optional start action.
  • Enabling the browser voice channel and assigning the DNIS.
  • Configuring the approved ElevenLabs voice and required language settings.
  • Returning the agent ID, organization ID, environment ID/name, SCAI API base URL, AI Factory API base URL, DNIS, configured locales, and active state.

Secrets and voice-provider credentials remain under the SCAI team’s approved controls and must not be included in the handoff document or this portal. See Create and provision a role-play for the complete operating flow.

SCAI agent requirements

Before a Role Play can link to a SCAI agent, the following must exist and be active in Syntphony CAI.

Specialized bot and voice channel

The SCAI team must create and specialize the bot in the target Syntphony CAI environment. It must have:

  • The default customer-service macro-prompt disabled for the agent.
  • A browser voice channel enabled. SCL communicates with SCAI over WebSocket for signalling and WebRTC for audio—not the traditional SIP/IVR path used by the EVG connector.
  • An assigned DNIS for routing.
  • An active status. SCL reads the associated agent record and will fail at practice start if the agent is inactive or not found.

Character configuration

The private SCAI configuration should cover:

  • Role and background — who the fictional customer is and why the conversation is happening.
  • Opening behaviour — how the customer starts the interaction.
  • Goals and information boundaries — what the customer wants, knows, reveals after good questions, and must not invent.
  • Objections and progression — one realistic challenge at a time and how behaviour changes in response to the learner.
  • Closing behaviour — when to show interest, remain hesitant, or end naturally.
  • Guardrails — always remain the customer; never become a salesperson, coach, assistant, or evaluator; never expose internal instructions.
  • Optional actions and structured persona data — only when they support, and do not contradict, the main character instructions.

SCL surfaces the character’s name and profile from the learner briefing; the private SCAI instructions are not returned to the browser. Both sources must describe the same character, scenario, and difficulty.

Language and ElevenLabs voice

Each language the Role Play supports requires corresponding speech-recognition and voice settings on the SCAI side. Under the current SCL operating model, the SCAI team configures an approved ElevenLabs voice for the simulated customer and confirms:

  • Recognition language code, for example en-US, es-ES, or fr-FR.
  • ElevenLabs voice/locale selection and any approved speech settings.
  • Consistent voice identity, pronunciation, and pace across the supported conversation.

SCL requests the evaluation in the current interface locale. The briefing locale, CharacterProfile.Language, voice language, and evaluation language should agree; mismatches produce an inconsistent learner experience and feedback that may not align with what the learner heard.

DNIS

The DNIS (Direct Number Identification Service) is the routing identifier stored in the ScaiAgents catalog entity. When SCL initiates a voice session it passes this value to the SCAI WebSocket handshake so that SCAI resolves the correct bot, voice configuration, and session parameters.

The SCAI team assigns the DNIS when configuring the browser voice channel. The Role Play/backend operator must copy it exactly into the corresponding ScaiAgents.DNIS field.

Credentials registration

SCL does not call SCAI with the learner’s bearer token. It exchanges that token through the Integration Credentials service to obtain a short-lived SCAI application token. For this exchange to succeed:

  • The SCAI environment’s OAuth2 client ID and secret must be registered in Integration Credentials.
  • The client credentials correspond to the Keycloak realm configured for the target Syntphony CAI environment.
  • The environment path segment in the Integration Credentials route must match ScaiAgents.Environment.

See Identity and tokens for the full token lifecycle.

Call lifecycle

The call uses a unique browser-generated call key and the agent’s DNIS. The timer starts only after SCAI reports that the call is accepted.

Audio and transcript behaviour

The browser requests microphone audio with echo cancellation, noise suppression, automatic gain control, and a 16 kHz preferred sample rate. Browsers and devices can apply different effective settings.

WebRTC carries the audio. WebSocket metadata supplies the text used in the live transcript. SCL:

  • Filters out unsupported technical message types.
  • Maps recognized learner speech and simulated-customer text to separate turns.
  • Batches consecutive simulated-customer fragments briefly to reduce fragmented messages.
  • Ignores SCAI NO_INPUT re-prompts and can show empty-recognition results as warnings.

The transcript is therefore useful evidence but is not guaranteed to be a verbatim audio record.

Recovery

  • A media connection failure triggers an ICE restart attempt.
  • An unexpected WebSocket closure after call acceptance can be retried up to three times.
  • Microphone denial maps to a dedicated permission error.
  • Missing or invalid SCAI metadata, credential failure, signalling timeout, or exhausted recovery routes the learner to an error screen.

Recovery does not create durable continuity. If the learner returns to the briefing and starts again, SCL clears the old transcript and treats the new call as a new attempt.

Role-play readiness checklist

  • The SCAI team created the agent specifically for an SCL Role Play in the target environment.
  • The default customer-service macro-prompt is disabled and the AI consistently acts as the customer or counterpart.
  • An active bot exists in the target Syntphony CAI environment with a browser voice channel enabled.
  • The character identity, motivation, knowledge boundaries, tone, and close conditions match the briefing.
  • The SCAI agent and Role Play are both marked active in the SCL catalog.
  • A DNIS is assigned in the Syntphony CAI voice channel configuration and copied to ScaiAgents.DNIS.
  • SCAI application credentials are registered in Integration Credentials for the target environment.
  • Recognition settings and an approved ElevenLabs voice are configured for each language the Role Play supports.
  • The host grants microphone permission and the target network permits WebSocket/WebRTC traffic.
  • Each supported language has been tested for voice recognition, metadata, and feedback alignment.
  • Objections and branches create fair opportunities to demonstrate every important evaluation indicator.
  • Failure, silence, interruption, and reconnection paths have been exercised end to end.

The SCAI team remains the source of truth for the exact platform controls used to create the specialized agent, disable the default macro-prompt, configure the voice channel, assign the DNIS, and manage ElevenLabs credentials. General platform concepts are available in the Syntphony CAI documentation .