Voice for the Pause intake agent — wired, gated on procurement.
Salesforce Agentforce Voice went GA in October 2025 and now ships as part of the Agentforce Contact Center add-on (March 2026). The Pause prototype has the partner-web seam in place today; full activation gates on the licensing + CCaaS instance every customer org already has when they buy Agentforce Voice.
Touch the surface
The launch button, live on this page
This is the same <AgentforceVoiceButton/> the intake demo will mount. Its state reflects whatever /api/agentforce/voice/config reports for the current deployment — so on the public Pause site the pill says designed, on a deployment with the env vars set it says prototype, and after operator verification it says shipped. The button never claims more than the runtime can prove.
Why voice, and why now
Three reasons it's worth the activation cost
Menopause patients prefer voice for the hard parts
Designed
Hot flashes, night sweats, mood changes, and bleeding-pattern shifts are easier to describe out loud than to type. Voice surfaces these symptoms at the rate they actually happen in clinic — a triage advantage that compounds when paired with the structured intake the chat agent already runs.
The agent's reasoning stays the same
Shipped
Agentforce Voice runs the SAME Agentforce subagents and Actions as the text channel. The Find-a-Provider subagent, the Data 360 grounding query, the Care Router handoff — all of it is shared. The voice surface is the channel, not a different agent.
Phone-leg parity is the real unlock
Planned
The same Agentforce Voice surface can be reached over PSTN via Amazon Connect / Five9 / NiCE / Vonage. That means an after-hours patient can call a number and reach the same intake assistant — a deployment shape that matters more for provider organizations than for the prototype itself.
Wiring · What ships today vs. on activation
The seam is in main; the audio round-trip is gated on procurement
Salesforce's public docs on the partner-web Agentforce Voice surface are, as of June 2026, sales-gated — no public LWC, no published Agent API voice endpoint, no SDK index page that survives a curl. The prototype takes the honest path: ship the seam every deployment can show, gate the audio round-trip on the licensing the customer org already needs.
Surface
State
Pill
lib/agentforce-voice.ts (env-driven config)
Shipped today. Defines AgentforceVoiceConfig, the four-env-var contract, and the {designed, prototype, shipped} status state machine.
Shipped
GET /api/agentforce/voice/config
Shipped today. Returns the public-safe config (status + provider + agentDeployment + language). Omits baseUrl and deploymentRef on purpose — those are partner-side opaque identifiers a third party could use to initiate a session against the CCaaS instance.
Shipped
<AgentforceVoiceButton/> component
Shipped today. Probes the config route, renders one of three affordances. Click handler currently surfaces a 'verification pending' toast — the real CCaaS handshake lands on the activation commit once a live instance exists to verify against.
Shipped
Agentforce Contact Center add-on + CCaaS partner contract
Procurement step. Salesforce sales-gated. See AGENTFORCE_VOICE_RUNBOOK.md for the checklist.
Planned
Real audio round-trip from pause-health.ai → CCaaS → Agentforce → back
Reserved for activation day. Triggered when an operator sets AGENTFORCE_VOICE_VERIFIED=true after recording a verified session.
Future
Configuration · The five env vars
Activation checklist (deploy side)
The procurement side (Agentforce Contact Center add-on + CCaaS partner contract) is in docs/AGENTFORCE_VOICE_RUNBOOK.md. Once those are in place, the deploy-side activation is the following Vercel env vars.
Env var
Required
Example
Purpose
AGENTFORCE_VOICE_PROVIDER
yes
amazon-connect
CCaaS partner. One of: amazon-connect, five9, nice, vonage. Determines which client SDK the voice button loads.
AGENTFORCE_VOICE_BASE_URL
yes
https://<alias>.my.connect.aws
Partner base URL. Must start with https://.
AGENTFORCE_VOICE_DEPLOYMENT_REF
yes
12345abc-de67-89fa-bcde-f0123456789a
CCaaS-side identifier (Amazon Connect Instance ID; Five9 campaign reference) that resolves to the Agentforce-bound contact flow. Opaque to the prototype.
AGENTFORCE_VOICE_AGENT_DEPLOYMENT
yes
Pause_Health_Intake_Agent
Agentforce Service Agent deployment the contact flow routes voice turns to. Matches NEXT_PUBLIC_AGENTFORCE_DEPLOYMENT_NAME when voice and chat target the same agent.
AGENTFORCE_VOICE_LANGUAGE
optional
en-US
ASR + TTS locale. Defaults to en-US when unset.
AGENTFORCE_VOICE_VERIFIED
optional
true
Flip to 1/true/on after recording a verified end-to-end round-trip. Promotes the page + button from 'prototype' to 'shipped'.
# After the CCaaS partner instance is live:
vercel env add AGENTFORCE_VOICE_PROVIDER production # amazon-connect
vercel env add AGENTFORCE_VOICE_BASE_URL production # https://<alias>.my.connect.aws
vercel env add AGENTFORCE_VOICE_DEPLOYMENT_REF production # Connect Instance ID
vercel env add AGENTFORCE_VOICE_AGENT_DEPLOYMENT production # Pause_Health_Intake_Agent
vercel --prod --yes
# Verify (browser): /api/agentforce/voice/config → { status: "prototype", ... }
# Verify (browser): hit /proposal/agentforce-voice → button now enabled.
# After end-to-end audio round-trip:
vercel env add AGENTFORCE_VOICE_VERIFIED production # true
vercel --prod --yes
Honest framing
What this page does NOT claim
The button you can click on this page does not currently call Salesforce. It loads its state from the same /api/agentforce/voice/config route a Salesforce partner integration would consume — so the wiring contract is real — but the audio leg lands on the activation commit, not today.
The other thing this page does not claim: that a Web Speech API wrapper around the existing Agentforce text chat is “Agentforce Voice.” That would be voice input for chat — a different product, and one that, if Pause ships it, will be documented separately so the distinction stays clear for any partner reading the comparison.
Voice is the next channel in the REST leg of Salesforce's Headless 360 architecture (TDX 2026). The conformance audit page maps every Pause surface — including this one — onto the three Headless 360 patterns.
How the same Agentforce surface composes with the MCP tool plane. Voice + chat both go through the same find_menopause_providers tool when the host-mode flip lands.