GCP.Dialogflow reference
AgentsEntityType
Section titled “AgentsEntityType”Source:
src/GCP/Dialogflow/AgentsEntityType.ts
A Dialogflow CX entity type under an agent.
Entity types have no labels field, so Alchemy tracks an entity type by
its resource name; without state it is found by displayName (unique
within the agent) and reported as unowned unless that name is the
generated one. Parent agent and entity type id are
immutable. Display name, kind, entities, and extraction flags update
in place.
AgentsEntityType: Creating an Entity Type
Section titled “AgentsEntityType: Creating an Entity Type”const color = yield* GCP.Dialogflow.AgentsEntityType("Color", { agent: agent.name, displayName: "color", kind: "KIND_MAP", entities: [{ value: "red", synonyms: ["red", "scarlet"] }],});AgentsEntityType: Updating an Entity Type
Section titled “AgentsEntityType: Updating an Entity Type”Change props on the same logical id; the engine keeps the physical id.
const color = yield* GCP.Dialogflow.AgentsEntityType("Color", { agent: agent.name, displayName: "color", kind: "KIND_MAP", entities: [ { value: "red", synonyms: ["red", "scarlet", "crimson"] }, ],});AgentsEnvironment
Section titled “AgentsEnvironment”Source:
src/GCP/Dialogflow/AgentsEnvironment.ts
A Dialogflow CX environment under an agent.
Environments have no labels field, so Alchemy stamps ownership into
description for list / nuke. Parent agent and environment id are
immutable. Display name, description, and version configs update in
place. Create and update are long-running operations.
AgentsEnvironment: Creating an Environment
Section titled “AgentsEnvironment: Creating an Environment”const version = yield* GCP.Dialogflow.AgentsFlowsVersion("V1", { flow: agent.startFlow, displayName: "v1",});const environment = yield* GCP.Dialogflow.AgentsEnvironment("Prod", { agent: agent.name, displayName: "prod", versionConfigs: [{ version: version.name }],});AgentsEnvironmentsExperiment
Section titled “AgentsEnvironmentsExperiment”Source:
src/GCP/Dialogflow/AgentsEnvironmentsExperiment.ts
A Dialogflow CX experiment under an environment.
Experiments have no labels field, so Alchemy stamps ownership into
description for list / nuke. Parent environment and experiment id
are immutable. Display name, description, definition, and length
update in place.
AgentsEnvironmentsExperiment: Creating an Experiment
Section titled “AgentsEnvironmentsExperiment: Creating an Experiment”const experiment = yield* GCP.Dialogflow.AgentsEnvironmentsExperiment( "Ab", { environment: environment.name, displayName: "checkout-ab", definition: { versionVariants: { variants: [ { version: control.name, trafficAllocation: 0.5, isControlGroup: true, }, { version: treatment.name, trafficAllocation: 0.5 }, ], }, }, },);AgentsEnvironmentsSessionsEntityType
Section titled “AgentsEnvironmentsSessionsEntityType”Source:
src/GCP/Dialogflow/AgentsEnvironmentsSessionsEntityType.ts
A Dialogflow CX session entity type under an environment session.
Session entity types have no labels or description field; Alchemy
identifies one by environment, session id, and entity type. Without
state, one found under an explicit sessionId is reported as unowned.
Parent environment, session id, and entity type are immutable.
Override mode and entities update in place.
AgentsEnvironmentsSessionsEntityType: Creating a Session Entity Type
Section titled “AgentsEnvironmentsSessionsEntityType: Creating a Session Entity Type”const session = yield* GCP.Dialogflow.AgentsEnvironmentsSessionsEntityType( "SessionColor", { environment: environment.name, entityType: color.name, entityOverrideMode: "ENTITY_OVERRIDE_MODE_OVERRIDE", entities: [{ value: "blue", synonyms: ["blue", "navy"] }], },);AgentsFlow
Section titled “AgentsFlow”Source:
src/GCP/Dialogflow/AgentsFlow.ts
A Dialogflow CX flow under an agent.
Flows have no labels field, so Alchemy stamps ownership into
description for list / nuke. Parent agent and flow id are
immutable. Display name, description, NLU settings, and lock flag
update in place.
AgentsFlow: Creating a Flow
Section titled “AgentsFlow: Creating a Flow”const flow = yield* GCP.Dialogflow.AgentsFlow("Ordering", { agent: agent.name, displayName: "ordering", description: "order intake",});AgentsFlow: Updating a Flow
Section titled “AgentsFlow: Updating a Flow”Change props on the same logical id; the engine keeps the physical id.
const flow = yield* GCP.Dialogflow.AgentsFlow("Ordering", { agent: agent.name, displayName: "checkout", description: "checkout flow",});AgentsFlowsPage
Section titled “AgentsFlowsPage”Source:
src/GCP/Dialogflow/AgentsFlowsPage.ts
A Dialogflow CX page under a flow.
Pages have no labels field, so Alchemy stamps ownership into
description for list / nuke. Parent flow and page id are
immutable. Display name, description, and entry fulfillment update
in place.
AgentsFlowsPage: Creating a Page
Section titled “AgentsFlowsPage: Creating a Page”const page = yield* GCP.Dialogflow.AgentsFlowsPage("Greeting", { flow: flow.name, displayName: "greeting", description: "welcome the user",});AgentsFlowsPage: Updating a Page
Section titled “AgentsFlowsPage: Updating a Page”Change props on the same logical id; the engine keeps the physical id.
const page = yield* GCP.Dialogflow.AgentsFlowsPage("Greeting", { flow: flow.name, displayName: "welcome", description: "welcome the user",});AgentsFlowsTransitionRouteGroup
Section titled “AgentsFlowsTransitionRouteGroup”Source:
src/GCP/Dialogflow/AgentsFlowsTransitionRouteGroup.ts
A Dialogflow CX transition route group under a flow.
Route groups have no labels field, so Alchemy stamps ownership into
displayName for list / nuke. Parent flow and id are immutable.
Display name and routes update in place.
AgentsFlowsTransitionRouteGroup: Creating a Route Group
Section titled “AgentsFlowsTransitionRouteGroup: Creating a Route Group”const group = yield* GCP.Dialogflow.AgentsFlowsTransitionRouteGroup( "Fallback", { flow: flow.name, displayName: "fallback", transitionRoutes: [ { condition: "true", triggerFulfillment: { messages: [{ text: { text: ["I did not get that."] } }], }, }, ], },);AgentsFlowsVersion
Section titled “AgentsFlowsVersion”Source:
src/GCP/Dialogflow/AgentsFlowsVersion.ts
A Dialogflow CX flow version (snapshot of a flow).
Versions have no labels field, so Alchemy stamps ownership into
description for list / nuke. Parent flow and version id are
immutable. Display name and description update in place. Creating a
version is a long-running operation.
AgentsFlowsVersion: Creating a Version
Section titled “AgentsFlowsVersion: Creating a Version”const version = yield* GCP.Dialogflow.AgentsFlowsVersion("V1", { flow: flow.name, displayName: "v1", description: "initial snapshot",});AgentsFlowsVersion: Updating a Version
Section titled “AgentsFlowsVersion: Updating a Version”Change props on the same logical id; the engine keeps the physical id.
const version = yield* GCP.Dialogflow.AgentsFlowsVersion("V1", { flow: flow.name, displayName: "v1-ga", description: "ga snapshot",});AgentsGenerator
Section titled “AgentsGenerator”Source:
src/GCP/Dialogflow/AgentsGenerator.ts
A Dialogflow CX generator that produces LLM-backed response text.
Generators have no labels field — Alchemy stamps ownership into
displayName so list / nuke can find them. Parent agent and id are
immutable. Display name, prompt, model parameters, placeholders, and
LLM settings update in place.
AgentsGenerator: Creating a Generator
Section titled “AgentsGenerator: Creating a Generator”const generator = yield* GCP.Dialogflow.AgentsGenerator("Greeting", { agent: agentName, displayName: "greeting", promptText: "Greet the user by name.",});AgentsGenerator: Updating a Generator
Section titled “AgentsGenerator: Updating a Generator”Change props on the same logical id; the engine keeps the physical id.
const generator = yield* GCP.Dialogflow.AgentsGenerator("Greeting", { agent: agentName, displayName: "greeting", promptText: "Greet the user warmly.",});AgentsIntent
Section titled “AgentsIntent”Source:
src/GCP/Dialogflow/AgentsIntent.ts
A Dialogflow CX intent (training phrases plus parameters).
Alchemy ownership is stored in labels, displayName, and
description so list / nuke can find the intent. Parent agent and
id are immutable. Display name, labels, training phrases, parameters,
priority, fallback flag, description, and DTMF pattern update in
place.
AgentsIntent: Creating an Intent
Section titled “AgentsIntent: Creating an Intent”const intent = yield* GCP.Dialogflow.AgentsIntent("Hello", { agent: agentName, displayName: "hello", trainingPhrases: [ { parts: [{ text: "hello" }], repeatCount: 1 }, { parts: [{ text: "hi there" }], repeatCount: 1 }, ], labels: { env: "test" },});AgentsIntent: Updating an Intent
Section titled “AgentsIntent: Updating an Intent”Change props on the same logical id; the engine keeps the physical id.
const intent = yield* GCP.Dialogflow.AgentsIntent("Hello", { agent: agentName, displayName: "hello", trainingPhrases: [ { parts: [{ text: "hello" }], repeatCount: 1 }, { parts: [{ text: "good morning" }], repeatCount: 1 }, ], labels: { env: "prod" },});AgentsPlaybook
Section titled “AgentsPlaybook”Source:
src/GCP/Dialogflow/AgentsPlaybook.ts
A Dialogflow CX playbook (goal-driven LLM workflow).
Playbooks have no labels field — Alchemy stamps ownership into
displayName so list / nuke can find them. Parent agent and id are
immutable. Display name, goal, instruction, type, references, and LLM
settings update in place.
AgentsPlaybook: Creating a Playbook
Section titled “AgentsPlaybook: Creating a Playbook”const playbook = yield* GCP.Dialogflow.AgentsPlaybook("Support", { agent: agentName, displayName: "support", goal: "Answer the user's support question.",});AgentsPlaybook: Updating a Playbook
Section titled “AgentsPlaybook: Updating a Playbook”Change props on the same logical id; the engine keeps the physical id.
const playbook = yield* GCP.Dialogflow.AgentsPlaybook("Support", { agent: agentName, displayName: "support", goal: "Reset the user's password.",});AgentsPlaybooksExample
Section titled “AgentsPlaybooksExample”Source:
src/GCP/Dialogflow/AgentsPlaybooksExample.ts
A Dialogflow CX playbook example (few-shot conversation).
Examples have no labels field — Alchemy stamps ownership into
displayName and description so list / nuke can find them. Parent
playbook and id are immutable. Display name, conversation state,
actions, and description update in place.
AgentsPlaybooksExample: Creating an Example
Section titled “AgentsPlaybooksExample: Creating an Example”const example = yield* GCP.Dialogflow.AgentsPlaybooksExample("Hello", { playbook: playbook.name, displayName: "hello", conversationState: "OUTPUT_STATE_OK", actions: [ { userUtterance: { text: "hello" } }, { agentUtterance: { text: "Hi, how can I help?" } }, ],});AgentsPlaybooksVersion
Section titled “AgentsPlaybooksVersion”Source:
src/GCP/Dialogflow/AgentsPlaybooksVersion.ts
A Dialogflow CX playbook version (immutable snapshot of a playbook).
Versions have no labels field and no update RPC — Alchemy stamps
ownership into description so list / nuke can find them. Reconcile
is observe-ensure: if the snapshot is missing it is created; later
description edits are ignored.
AgentsPlaybooksVersion: Creating a Playbook Version
Section titled “AgentsPlaybooksVersion: Creating a Playbook Version”const version = yield* GCP.Dialogflow.AgentsPlaybooksVersion("v1", { playbook: playbook.name, description: "initial",});AgentsSessionsEntityType
Section titled “AgentsSessionsEntityType”Source:
src/GCP/Dialogflow/AgentsSessionsEntityType.ts
A Dialogflow CX session entity type (per-session entity overlay).
Session entity types have no labels or display name — Alchemy stamps
ownership into a reserved entity value so list / nuke can find
them. list enumerates the default alchemy session on every agent.
Parent agent, session id, and entity type id are immutable. Override
mode and entities update in place.
AgentsSessionsEntityType: Creating a Session Entity Type
Section titled “AgentsSessionsEntityType: Creating a Session Entity Type”const overlay = yield* GCP.Dialogflow.AgentsSessionsEntityType("Colors", { agent: agentName, entityTypeId: "sys.color", entities: [{ value: "cerulean", synonyms: ["cerulean", "blue-green"] }],});AgentsTool
Section titled “AgentsTool”Source:
src/GCP/Dialogflow/AgentsTool.ts
A Dialogflow CX tool (function, OpenAPI, or data-store).
Tools have no labels field — Alchemy stamps ownership into
displayName and description so list / nuke can find them. Parent
agent, id, and spec kind are immutable. Display name, description, and
spec payload update in place.
AgentsTool: Creating a Tool
Section titled “AgentsTool: Creating a Tool”const tool = yield* GCP.Dialogflow.AgentsTool("Lookup", { agent: agentName, displayName: "lookup", description: "Look up an order.", functionSpec: { inputSchema: { type: "object", properties: { orderId: { type: "string" } }, }, outputSchema: { type: "object", properties: { status: { type: "string" } }, }, },});AgentsToolsVersion
Section titled “AgentsToolsVersion”Source:
src/GCP/Dialogflow/AgentsToolsVersion.ts
A Dialogflow CX tool version (immutable snapshot of a tool).
Versions have no labels field and no update RPC — Alchemy stamps
ownership into displayName so list / nuke can find them. Reconcile
is observe-ensure: if the snapshot is missing it is created; later
display-name edits are ignored.
AgentsToolsVersion: Creating a Tool Version
Section titled “AgentsToolsVersion: Creating a Tool Version”const version = yield* GCP.Dialogflow.AgentsToolsVersion("v1", { tool: tool.name, displayName: "initial",});AgentsTransitionRouteGroup
Section titled “AgentsTransitionRouteGroup”Source:
src/GCP/Dialogflow/AgentsTransitionRouteGroup.ts
A Dialogflow CX agent-level transition route group.
Agent-level groups are shared across flows. Route groups have no labels
field, so Alchemy stamps ownership into displayName (30-character
limit; compact [alc …] marker) for list / nuke. Parent agent and id
are immutable. Display name and routes update in place.
AgentsTransitionRouteGroup: Creating a Route Group
Section titled “AgentsTransitionRouteGroup: Creating a Route Group”const group = yield* GCP.Dialogflow.AgentsTransitionRouteGroup("Fallback", { agent: agent.name, displayName: "fb", transitionRoutes: [ { condition: "true", triggerFulfillment: { messages: [{ text: { text: ["I did not get that."] } }], }, }, ],});AgentsTransitionRouteGroup: Updating a Route Group
Section titled “AgentsTransitionRouteGroup: Updating a Route Group”Change props on the same logical id; the engine keeps the physical id.
const group = yield* GCP.Dialogflow.AgentsTransitionRouteGroup("Fallback", { agent: agent.name, displayName: "g2", transitionRoutes: [ { condition: "true", triggerFulfillment: { messages: [{ text: { text: ["Sorry."] } }], }, }, ],});AgentsWebhook
Section titled “AgentsWebhook”Source:
src/GCP/Dialogflow/AgentsWebhook.ts
A Dialogflow CX webhook that hosts fulfillment business logic.
Webhooks have no labels field, so Alchemy stamps ownership into
displayName for list / nuke. Parent agent and id are immutable.
Display name, timeout, disabled flag, and webhook config update in
place.
AgentsWebhook: Creating a Webhook
Section titled “AgentsWebhook: Creating a Webhook”const webhook = yield* GCP.Dialogflow.AgentsWebhook("Fulfillment", { agent: agent.name, displayName: "orders", genericWebService: { uri: "https://example.com/dialogflow" },});AgentsWebhook: Updating a Webhook
Section titled “AgentsWebhook: Updating a Webhook”Change props on the same logical id; the engine keeps the physical id.
const webhook = yield* GCP.Dialogflow.AgentsWebhook("Fulfillment", { agent: agent.name, displayName: "orders-v2", disabled: true, genericWebService: { uri: "https://example.com/dialogflow-v2" },});SecuritySetting
Section titled “SecuritySetting”Source:
src/GCP/Dialogflow/SecuritySetting.ts
Dialogflow CX security settings for data redaction and retention.
Security settings live at a location (not under an agent) and have no
labels field — Alchemy stamps ownership into displayName so list /
nuke can find them. Location and id are immutable. Display name,
redaction, DLP templates, purge types, export settings, and retention
update in place.
SecuritySetting: Creating Security Settings
Section titled “SecuritySetting: Creating Security Settings”const settings = yield* GCP.Dialogflow.SecuritySetting("Retention", { location: "us-central1", displayName: "session-only", retentionStrategy: "REMOVE_AFTER_CONVERSATION",});SecuritySetting: Updating Security Settings
Section titled “SecuritySetting: Updating Security Settings”Change props on the same logical id; the engine keeps the physical id.
const settings = yield* GCP.Dialogflow.SecuritySetting("Retention", { location: "us-central1", displayName: "thirty-days", retentionWindowDays: 30,});