Skip to content

GCP.Dialogflow reference

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.

const color = yield* GCP.Dialogflow.AgentsEntityType("Color", {
agent: agent.name,
displayName: "color",
kind: "KIND_MAP",
entities: [{ value: "red", synonyms: ["red", "scarlet"] }],
});

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"] },
],
});

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 }],
});

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 },
],
},
},
},
);

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"] }],
},
);

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.

const flow = yield* GCP.Dialogflow.AgentsFlow("Ordering", {
agent: agent.name,
displayName: "ordering",
description: "order intake",
});

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",
});

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.

const page = yield* GCP.Dialogflow.AgentsFlowsPage("Greeting", {
flow: flow.name,
displayName: "greeting",
description: "welcome the user",
});

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",
});

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."] } }],
},
},
],
},
);

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.

const version = yield* GCP.Dialogflow.AgentsFlowsVersion("V1", {
flow: flow.name,
displayName: "v1",
description: "initial snapshot",
});

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",
});

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.

const generator = yield* GCP.Dialogflow.AgentsGenerator("Greeting", {
agent: agentName,
displayName: "greeting",
promptText: "Greet the user by name.",
});

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.",
});

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.

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" },
});

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" },
});

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.

const playbook = yield* GCP.Dialogflow.AgentsPlaybook("Support", {
agent: agentName,
displayName: "support",
goal: "Answer the user's support question.",
});

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.",
});

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?" } },
],
});

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",
});

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"] }],
});

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.

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" } },
},
},
});

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",
});

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."] } }],
},
},
],
});

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.

const webhook = yield* GCP.Dialogflow.AgentsWebhook("Fulfillment", {
agent: agent.name,
displayName: "orders",
genericWebService: { uri: "https://example.com/dialogflow" },
});

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" },
});

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,
});