Skip to main content
Bluejay connects directly to your Google Dialogflow CX (DFCX) agents so you can test them with Digital Humans, visualize and edit their workflow, and — using the same APIs as the DFCX console — snapshot versions and promote them to your environments. The integration is org-level: you grant Bluejay access to your Google Cloud project once, sync your agents, and every DFCX agent in the project becomes available to test.

Prerequisites

  • A Google Cloud project with the Dialogflow API enabled.
  • At least one Dialogflow CX agent in that project.
  • Permission to grant a service identity access to the project (to complete the steps below).
Enable the Dialogflow API from APIs & Services → Library → Dialogflow API — it should read API Enabled: Dialogflow API enabled in the Google Cloud console
The same credential also discovers Google Conversational Engine (CES) agents in the project, so both Google agent types are picked up by a single connection.

1. Grant Bluejay access (service account)

Bluejay authenticates to your Google Cloud project with a service-account key that you create and paste into Bluejay. The key is encrypted at rest and scoped to Dialogflow only — it lets Bluejay talk to your agents, nothing else.

Step 1 — Create a service account with the right permissions

In the Google Cloud Console → IAM & Admin → Service Accounts:
  1. Create Service Account → give it a name (e.g. bluejay-dfcx).
Create the service account
  1. Decide which capability tier you need, then create a custom IAM role (IAM & Admin → Roles → Create Role) containing exactly those permissions and grant it to the service account. GCP grants roles, not bare permissions — the custom role is how you apply a minimal set. Each tier also lists a predefined-role equivalent if you prefer a quicker (but broader) grant.

Tier 1 — Test only (read + run simulations)

Use this tier if Bluejay only needs to sync agent definitions and run live simulations. Read / sync permissions Runtime permissions
serviceusage.services.use is the single most-missed permission. Without it, live simulations fail immediately with USER_PROJECT_DENIED. This happens because the Dialogflow runtime checks a Service Usage quota when Bluejay sends an x-goog-user-project header on each request — the permission must be present even if billing is not your concern.
Predefined-role equivalent (quicker, broader): roles/dialogflow.reader + roles/dialogflow.client — grants everything in Tier 1 and a bit more.

Tier 2 — Edit + push (also version & promote workflows)

Use this tier if Bluejay also needs to push workflow edits, snapshot versions, and deploy to environments. Tier 2 includes all Tier 1 permissions plus the following writes: Predefined-role equivalent (quicker, broader): roles/dialogflow.admin — grants the full Dialogflow feature set. Grant the custom role to the service account

Step 2 — Create a JSON key

On that service account, open the Keys tab → Add Key → Create new key → JSONCreate. A .json key file downloads to your machine.
Treat the key file like a password — it grants the role above on your project until you rotate or delete it. You can revoke it anytime from the same Keys tab.

Step 3 — Add it to Bluejay

  1. Log into your Bluejay Dashboard.
  2. Click your Organization menu (bottom-left) → IntegrationsGoogle Agents.
  3. Paste the contents of the JSON key file into Service Account Key (JSON).
  4. Click Save.
Paste the service-account key in the Google Agents integration The key is encrypted at rest and only ever used to call the Dialogflow APIs for your agents.

2. Sync your Google agents

Once the credential is saved, discover your agents:
  1. In Settings → Integrations → Google Agents, click Sync.
  2. Bluejay scans your project across all Dialogflow locations and creates an agent in Bluejay for every DFCX (and CES) agent it finds.
The sync result reports how many agents were created, updated, or removed (an agent deleted in Google is flagged in Bluejay rather than dropped). Re-run Sync any time you add agents in Google.

3. Connect an agent

Most agents are wired up automatically by Sync. To connect or adjust one manually:
  1. Open the agent’s Connection settings.
  2. Choose the Google Dialogflow CX connection type — Voice or Chat.
  3. Paste the agent’s resource path. You can paste either the full DFCX console URL or the path directly — Bluejay normalizes it to:
That’s all that’s needed — the org-level credential from Step 1 handles authentication.

4. Test your agent

With an agent connected you can run simulations against it like any other Bluejay agent. In Simulations → Create Simulation, pick a simulation type — Generate From Workflow is the one that reads your DFCX agent directly: Create Simulation — pick a type
  • Voice simulations bridge audio between a Bluejay Digital Human (the caller) and your DFCX agent in real time.
  • Chat simulations drive a turn-by-turn text conversation.
Generate From Workflow reads your synced agent and proposes test cases drawn from all of its authored logic — flow intents and event handlers, and each playbook’s goal, instruction steps, tool calls, and handoffs. Multi-step handoffs are composed into end-to-end journeys (for example, Default Start Flow → Billing Disputes Flow → Billing Specialist Playbook), so you can test realistic paths, not just isolated steps. Pick how many Digital Humans to generate per scenario and hit Generate. Test cases generated from your workflow

5. Edit the workflow

Open the agent’s Workflow tab to see its flows, pages, routes, event handlers, and playbooks on an interactive canvas.
  • Pull refreshes Bluejay’s copy from the live DFCX agent.
  • Edit nodes, routes, and handlers directly on the canvas.
  • Push to DFCX sends your local edits back to the agent’s draft. A diff preview shows exactly what will change, and conflicts are surfaced if the agent drifted on Google’s side since your last sync.
The DFCX workflow canvas in Bluejay

6. Versioning & promotion

Bluejay is a thin, governed front door to DFCX’s own versioning and environments — a version or deployment you make here is a real DFCX version/deployment and shows up in the DFCX console.

Version on push

When pushing, enable Version on push to snapshot the flows and playbooks your push changed into new immutable DFCX versions — automatically, and only for what actually changed. The result tells you which versions were created.
Snapshotting is safe: versions are immutable copies in your draft project. DFCX caps the number of versions per flow, so versioning is opt-in per push rather than automatic on every save.

Promote to an environment

Use Promote to deploy flow versions into one of your DFCX environments (e.g. Staging, Production):
  1. Click Promote on the workflow.
  2. Choose the target environment.
  3. For each flow, pick the version to deploy (or leave it unchanged).
  4. Confirm.
This calls the same deployFlow operation as the DFCX console — the environment immediately serves the deployed versions, and the deployment appears in your DFCX deployment history.

Summary