Overview
The Google CES integration connects a Google Customer Engagement Suite app to Roark for chat simulations. Roark sends each persona turn to the CESrunSession endpoint and records the agent’s reply as part of the chat transcript.
Authentication uses Workload Identity Federation (WIF) so no long-lived service account keys ever leave your GCP tenant. Roark mints a short-lived access token at simulation time using credentials your team controls and can revoke at any time.
Prerequisites
Before getting started, you’ll need:- A Google Cloud project with a published Customer Engagement Suite app
- Permissions in that project to create a Workload Identity Pool and configure a service account with access to your CES app
- The CES app coordinates: Location, App ID, Version ID, Deployment ID
Setting Up Workload Identity Federation
WIF setup requires a few values from Roark to authorize in your Workload Identity Pool. Reach out to us and we’ll walk you through it end-to-end — typically a single back-and-forth to share the values you need, after which you generate the WIF credential JSON on your side and paste it into Roark.Get help setting up WIF
Email support@roark.ai and we’ll get you set up. Include your GCP project ID and CES app coordinates if you have them handy.
type: "external_account") ready to paste into Roark.
Creating the Integration in Roark
Open the integration form
Navigate to Settings → Integrations, click Add Integration, and select Google CES.
Fill in the configuration
| Field | Description |
|---|---|
| Integration Name | Friendly name for this integration |
| WIF Config JSON | The full external-account credential JSON from your Workload Identity Pool. Stored encrypted at rest. |
| CES Location | GCP region for your CES app (e.g. us, global) |
| CES App ID | UUID of the CES app, from the CES console |
| CES Version ID | UUID of the app version to run |
| CES Deployment ID | UUID of the deployment to target |
How Authentication Works at Runtime
When a chat simulation runs against a Google CES endpoint, Roark mints a fresh access token for the request rather than storing one:- Roark uses your WIF configuration to obtain a federated token from Google STS.
- The federated token is exchanged for a short-lived OAuth access token that impersonates your configured service account.
- Roark sends
Authorization: Bearer <token>on each call to…/sessions/{sessionId}:runSession.
How Conversations Are Driven
Each simulation generates a unique session ID per run. For every persona turn, Roark POSTs to:app_version and deployment plus the user input text. The agent’s reply is read from outputs[0].text and added to the chat transcript.
CES creates the session on the first call with a new session ID and resumes it on subsequent calls with the same ID, so no separate bootstrap call is needed.
What’s Not Supported
- Voice simulations — Google CES integrations are chat-only.
- Live monitoring / call import — Roark does not pull historical or live conversations from CES. Use chat simulations to evaluate the agent.
Next Steps
Run Chat Simulations
Test your CES app with persona-driven chats
Build Scenarios
Define the conversations to test
Metric Policies
Automate evaluation on every chat
Integration Overview
Explore other integrations

