Back to Investor Brief

Investor brief · Agentforce intake

Patient intake on Salesforce Agentforce + Service Cloud

Pause-Health.ai's patient intake is built to run on Agentforce Service Agent inside Salesforce — the substrate that most US health systems and payers already operate. The public prototype defaults to a scripted Pause-branded fallback; the live Agentforce agent activates when the four NEXT_PUBLIC_AGENTFORCE_* env vars are set in Vercel. See the environment table below for what each deployment actually serves.

Why Agentforce

Four reasons the front door is Salesforce

Pills: Shipped wired in the prototype today · Designed design decision, activates with the first design partner.

Designed

Where our customers already live

Salesforce Health Cloud is deployed across a large share of US health systems and large payers. Building Pause intake on Agentforce means our intake artifacts land where the rest of the patient record already lives — no new console, no new identity, no new audit trail to defend. Pause is pre-design-partner, so this is the GTM thesis, not a customer deployment in production yet.

Shipped

GA today, on Enhanced Chat v2

Salesforce Embedded Messaging for Web (inline mode) is general-availability and is the substrate prospective design partners already license. We use the documented Embedded Service Deployment snippet — same pattern Salesforce ships in their public dev guide. Wired in the prototype: components/agentforce-embed.tsx mounts it when the four env vars are present.

Designed

Topics + Actions instead of prompt soup

Agentforce Service Agent organizes intake as topics (e.g. Symptom Capture, Red-Flag Screening, Consent) with structured actions. Each action writes typed fields to the FHIR record. This is what makes our intake auditable in a way a raw LLM chat is not. The dev-org agent (Pause_Health_Intake_Agent) has the topic skeleton; production-grade action wiring lands with the first design partner.

Designed

Compliance posture inherited

HIPAA-eligible Salesforce orgs come with audit logging, field-level encryption, region-pinned data residency, and SAML SSO. We inherit those controls instead of re-implementing them. Inherited posture only counts once we deploy into a customer org; today we run against a Trailhead Playground for development.

Where the live agent is wired

What each deployment actually serves

The live Agentforce Service Agent path is activated by four NEXT_PUBLIC_AGENTFORCE_* env vars (ORG_ID, DEPLOYMENT_NAME, SITE_URL, SCRT2_URL). When all four are present, /demo/intake mounts the real Salesforce Embedded Messaging for Web bootstrap and runs the Pause_Health_Intake_Agent in our dev org. When any one is missing, the page falls back to a Pause-branded scripted intake (components/agentforce-fallback.tsx) so the experience renders end-to-end without credentials.

EnvironmentAGENTFORCE env varsActive intake path
Local dev (founder's machine)Set in frontend/.env.localLIVE Agentforce Service Agent (real Salesforce dev org)
Vercel preview / production (pause-health.ai)Deliberately unsetPause-branded scripted fallback (shape-identical to live path)
Investor demo sessionTemporarily set in Vercel, then unset afterLIVE for the duration of the demo

Why the public site is fallback-by-default: the connected dev org is a Trailhead Playground (not production-grade), and routing public intake traffic at it would (a) exhaust its API limits, (b) create unbounded demo conversation records, and (c) tie investor demo quality to whoever last did a write against the agent. The scripted fallback is clinically realistic and conveys the same experience without any of those risks. The first paying customer brings their own Salesforce org and their own env vars (Path: the six-step setup checklist below).

Touch the architecture

Three live surfaces you can hit right now

Even when the live agent is gated off, the surrounding Pause architecture is fully wired in the prototype and inspectable in one click.

Open the prototype intake →Care Router A2A descriptor →Sample prechat context →

Prototype vs production

What changes when the env vars are set

The surrounding layout, the structured-record handoff scaffolding, and the clinical triage rules are identical across both modes — only the chat surface and the data destination differ.

AspectPublic prototypeProvider deployment
Public prototype experiencePause-branded scripted intake (a local TypeScript state machine).Real Agentforce Service Agent backed by Service Cloud topics + actions.
Data destinationComponent state only. No PHI captured.FHIR R5 Observations + Salesforce Health Cloud Person Account, both in the customer-controlled tenant.
Conversational logicHand-written script (lib/intake-script).Agentforce topics + actions, with deterministic guardrails for red flags and consent.
Identity + auditNone — anonymous browser session.SSO-backed patient session; full Salesforce audit trail.
Switch triggerDefault when NEXT_PUBLIC_AGENTFORCE_* env vars are unset.All four NEXT_PUBLIC_AGENTFORCE_* env vars (orgId, deploymentName, siteUrl, scrt2Url) set in Vercel.

Setup checklist · provider deployment

The six steps to a live customer deployment

Planned The entire checklist runs end-to-end with the first design partner.

1. Provision the Salesforce org

Service Cloud edition that includes Messaging for In-App and Web. Confirm with the Salesforce account team that Agentforce Service Agent is licensed.

2. Build the Agentforce Service Agent

Create the agent in Salesforce Setup. Define topics for Symptom Capture, Cycle Status, Red-Flag Screening, Consent. Wire actions that write structured fields to a custom Pause object (or Person Account).

3. Create the Embedded Service Deployment

Setup → Embedded Service Deployments → New. Channel: Messaging for Web. Bind to the agent from step 2. Save and click Code Snippet.

4. Capture the four config values

From the Code Snippet panel, copy: Org ID (first init arg), Deployment API Name (second), Site URL (third), scrt2URL (in the options object).

5. Set Vercel env vars

Set NEXT_PUBLIC_AGENTFORCE_ORG_ID, _DEPLOYMENT_NAME, _SITE_URL, _SCRT2_URL on the Pause Vercel project. Redeploy. The prototype intake page now renders the live agent automatically.

6. Validate the round trip

Run a test intake. Confirm the structured record appears in Salesforce. Confirm consent + red-flag actions fire correctly. Wire the FHIR write-back to JupyterHealth Exchange via our existing pause_ingest worker.

Guardrails

What we are deliberately not doing

Strategic fit

Why this front-door choice compounds with the rest of the stack

Read deeper

Where Agentforce sits in the bigger picture