gcp.diagflow.CxPage
Explore with Pulumi AI
A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages.
To get more information about Page, see:
- API documentation
- How-to Guides
Example Usage
Dialogflowcx Page Full
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var agent = new Gcp.Diagflow.CxAgent("agent", new()
{
DisplayName = "dialogflowcx-agent",
Location = "global",
DefaultLanguageCode = "en",
SupportedLanguageCodes = new[]
{
"fr",
"de",
"es",
},
TimeZone = "America/New_York",
Description = "Example description.",
AvatarUri = "https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png",
EnableStackdriverLogging = true,
EnableSpellCorrection = true,
SpeechToTextSettings = new Gcp.Diagflow.Inputs.CxAgentSpeechToTextSettingsArgs
{
EnableSpeechAdaptation = true,
},
});
var myPage2 = new Gcp.Diagflow.CxPage("myPage2", new()
{
Parent = agent.StartFlow,
DisplayName = "MyPage2",
});
var myWebhook = new Gcp.Diagflow.CxWebhook("myWebhook", new()
{
Parent = agent.Id,
DisplayName = "MyWebhook",
GenericWebService = new Gcp.Diagflow.Inputs.CxWebhookGenericWebServiceArgs
{
Uri = "https://example.com",
},
});
var basicPage = new Gcp.Diagflow.CxPage("basicPage", new()
{
Parent = agent.StartFlow,
DisplayName = "MyPage",
EntryFulfillment = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentArgs
{
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageTextArgs
{
Texts = new[]
{
"Welcome to page",
},
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
EventHandlers = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerArgs
{
Event = "some-event",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentArgs
{
ReturnPartialResponses = true,
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageTextArgs
{
Texts = new[]
{
"Some text",
},
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
},
},
Form = new Gcp.Diagflow.Inputs.CxPageFormArgs
{
Parameters = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterArgs
{
DisplayName = "param1",
EntityType = "projects/-/locations/-/agents/-/entityTypes/sys.date",
DefaultValue = JsonSerializer.Serialize("2000-01-01"),
FillBehavior = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorArgs
{
InitialPromptFulfillment = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs
{
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs
{
Texts = new[]
{
"Please provide param1",
},
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
RepromptEventHandlers = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs
{
Event = "sys.no-match-1",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs
{
ReturnPartialResponses = true,
Webhook = myWebhook.Id,
Tag = "some-tag",
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs
{
Texts = new[]
{
"Please provide param1",
},
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs
{
Event = "sys.no-match-2",
TargetFlow = agent.StartFlow,
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs
{
Event = "sys.no-match-3",
TargetPage = myPage2.Id,
},
},
},
Required = true,
Redact = true,
AdvancedSettings = new Gcp.Diagflow.Inputs.CxPageFormParameterAdvancedSettingsArgs
{
DtmfSettings = new Gcp.Diagflow.Inputs.CxPageFormParameterAdvancedSettingsDtmfSettingsArgs
{
Enabled = true,
MaxDigits = 1,
FinishDigit = "#",
},
},
},
},
},
TransitionRoutes = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteArgs
{
Condition = "$page.params.status = 'FINAL'",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentArgs
{
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageTextArgs
{
Texts = new[]
{
"information completed, navigating to page 2",
},
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
TargetPage = myPage2.Id,
},
},
AdvancedSettings = new Gcp.Diagflow.Inputs.CxPageAdvancedSettingsArgs
{
DtmfSettings = new Gcp.Diagflow.Inputs.CxPageAdvancedSettingsDtmfSettingsArgs
{
Enabled = true,
MaxDigits = 1,
FinishDigit = "#",
},
},
});
});
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/diagflow"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
agent, err := diagflow.NewCxAgent(ctx, "agent", &diagflow.CxAgentArgs{
DisplayName: pulumi.String("dialogflowcx-agent"),
Location: pulumi.String("global"),
DefaultLanguageCode: pulumi.String("en"),
SupportedLanguageCodes: pulumi.StringArray{
pulumi.String("fr"),
pulumi.String("de"),
pulumi.String("es"),
},
TimeZone: pulumi.String("America/New_York"),
Description: pulumi.String("Example description."),
AvatarUri: pulumi.String("https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png"),
EnableStackdriverLogging: pulumi.Bool(true),
EnableSpellCorrection: pulumi.Bool(true),
SpeechToTextSettings: &diagflow.CxAgentSpeechToTextSettingsArgs{
EnableSpeechAdaptation: pulumi.Bool(true),
},
})
if err != nil {
return err
}
myPage2, err := diagflow.NewCxPage(ctx, "myPage2", &diagflow.CxPageArgs{
Parent: agent.StartFlow,
DisplayName: pulumi.String("MyPage2"),
})
if err != nil {
return err
}
myWebhook, err := diagflow.NewCxWebhook(ctx, "myWebhook", &diagflow.CxWebhookArgs{
Parent: agent.ID(),
DisplayName: pulumi.String("MyWebhook"),
GenericWebService: &diagflow.CxWebhookGenericWebServiceArgs{
Uri: pulumi.String("https://example.com"),
},
})
if err != nil {
return err
}
tmpJSON0, err := json.Marshal("abc")
if err != nil {
return err
}
json0 := string(tmpJSON0)
tmpJSON1, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json1 := string(tmpJSON1)
tmpJSON2, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json2 := string(tmpJSON2)
tmpJSON3, err := json.Marshal("abc")
if err != nil {
return err
}
json3 := string(tmpJSON3)
tmpJSON4, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json4 := string(tmpJSON4)
tmpJSON5, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json5 := string(tmpJSON5)
tmpJSON6, err := json.Marshal("2000-01-01")
if err != nil {
return err
}
json6 := string(tmpJSON6)
tmpJSON7, err := json.Marshal("abc")
if err != nil {
return err
}
json7 := string(tmpJSON7)
tmpJSON8, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json8 := string(tmpJSON8)
tmpJSON9, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json9 := string(tmpJSON9)
tmpJSON10, err := json.Marshal("abc")
if err != nil {
return err
}
json10 := string(tmpJSON10)
tmpJSON11, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json11 := string(tmpJSON11)
tmpJSON12, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json12 := string(tmpJSON12)
tmpJSON13, err := json.Marshal("abc")
if err != nil {
return err
}
json13 := string(tmpJSON13)
tmpJSON14, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json14 := string(tmpJSON14)
tmpJSON15, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json15 := string(tmpJSON15)
_, err = diagflow.NewCxPage(ctx, "basicPage", &diagflow.CxPageArgs{
Parent: agent.StartFlow,
DisplayName: pulumi.String("MyPage"),
EntryFulfillment: &diagflow.CxPageEntryFulfillmentArgs{
Messages: diagflow.CxPageEntryFulfillmentMessageArray{
&diagflow.CxPageEntryFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageEntryFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("Welcome to page"),
},
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageEntryFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageEntryFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageEntryFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageEntryFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageEntryFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageEntryFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageEntryFulfillmentSetParameterActionArray{
&diagflow.CxPageEntryFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageEntryFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json0),
},
&diagflow.CxPageEntryFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json1),
},
},
ConditionalCases: diagflow.CxPageEntryFulfillmentConditionalCaseArray{
&diagflow.CxPageEntryFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json2),
},
},
},
EventHandlers: diagflow.CxPageEventHandlerArray{
&diagflow.CxPageEventHandlerArgs{
Event: pulumi.String("some-event"),
TriggerFulfillment: &diagflow.CxPageEventHandlerTriggerFulfillmentArgs{
ReturnPartialResponses: pulumi.Bool(true),
Messages: diagflow.CxPageEventHandlerTriggerFulfillmentMessageArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("Some text"),
},
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json3),
},
&diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json4),
},
},
ConditionalCases: diagflow.CxPageEventHandlerTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json5),
},
},
},
},
},
Form: &diagflow.CxPageFormArgs{
Parameters: diagflow.CxPageFormParameterArray{
&diagflow.CxPageFormParameterArgs{
DisplayName: pulumi.String("param1"),
EntityType: pulumi.String("projects/-/locations/-/agents/-/entityTypes/sys.date"),
DefaultValue: pulumi.String(json6),
FillBehavior: &diagflow.CxPageFormParameterFillBehaviorArgs{
InitialPromptFulfillment: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs{
Messages: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("Please provide param1"),
},
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json7),
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json8),
},
},
ConditionalCases: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json9),
},
},
},
RepromptEventHandlers: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs{
Event: pulumi.String("sys.no-match-1"),
TriggerFulfillment: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs{
ReturnPartialResponses: pulumi.Bool(true),
Webhook: myWebhook.ID(),
Tag: pulumi.String("some-tag"),
Messages: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("Please provide param1"),
},
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json10),
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json11),
},
},
ConditionalCases: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json12),
},
},
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs{
Event: pulumi.String("sys.no-match-2"),
TargetFlow: agent.StartFlow,
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs{
Event: pulumi.String("sys.no-match-3"),
TargetPage: myPage2.ID(),
},
},
},
Required: pulumi.Bool(true),
Redact: pulumi.Bool(true),
AdvancedSettings: &diagflow.CxPageFormParameterAdvancedSettingsArgs{
DtmfSettings: &diagflow.CxPageFormParameterAdvancedSettingsDtmfSettingsArgs{
Enabled: pulumi.Bool(true),
MaxDigits: pulumi.Int(1),
FinishDigit: pulumi.String("#"),
},
},
},
},
},
TransitionRoutes: diagflow.CxPageTransitionRouteArray{
&diagflow.CxPageTransitionRouteArgs{
Condition: pulumi.String("$page.params.status = 'FINAL'"),
TriggerFulfillment: &diagflow.CxPageTransitionRouteTriggerFulfillmentArgs{
Messages: diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("information completed, navigating to page 2"),
},
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json13),
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json14),
},
},
ConditionalCases: diagflow.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json15),
},
},
},
TargetPage: myPage2.ID(),
},
},
AdvancedSettings: &diagflow.CxPageAdvancedSettingsArgs{
DtmfSettings: &diagflow.CxPageAdvancedSettingsDtmfSettingsArgs{
Enabled: pulumi.Bool(true),
MaxDigits: pulumi.Int(1),
FinishDigit: pulumi.String("#"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.diagflow.CxAgent;
import com.pulumi.gcp.diagflow.CxAgentArgs;
import com.pulumi.gcp.diagflow.inputs.CxAgentSpeechToTextSettingsArgs;
import com.pulumi.gcp.diagflow.CxPage;
import com.pulumi.gcp.diagflow.CxPageArgs;
import com.pulumi.gcp.diagflow.CxWebhook;
import com.pulumi.gcp.diagflow.CxWebhookArgs;
import com.pulumi.gcp.diagflow.inputs.CxWebhookGenericWebServiceArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageEntryFulfillmentArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageEventHandlerArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageEventHandlerTriggerFulfillmentArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageFormArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageTransitionRouteArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageTransitionRouteTriggerFulfillmentArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageAdvancedSettingsArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageAdvancedSettingsDtmfSettingsArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var agent = new CxAgent("agent", CxAgentArgs.builder()
.displayName("dialogflowcx-agent")
.location("global")
.defaultLanguageCode("en")
.supportedLanguageCodes(
"fr",
"de",
"es")
.timeZone("America/New_York")
.description("Example description.")
.avatarUri("https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png")
.enableStackdriverLogging(true)
.enableSpellCorrection(true)
.speechToTextSettings(CxAgentSpeechToTextSettingsArgs.builder()
.enableSpeechAdaptation(true)
.build())
.build());
var myPage2 = new CxPage("myPage2", CxPageArgs.builder()
.parent(agent.startFlow())
.displayName("MyPage2")
.build());
var myWebhook = new CxWebhook("myWebhook", CxWebhookArgs.builder()
.parent(agent.id())
.displayName("MyWebhook")
.genericWebService(CxWebhookGenericWebServiceArgs.builder()
.uri("https://example.com")
.build())
.build());
var basicPage = new CxPage("basicPage", CxPageArgs.builder()
.parent(agent.startFlow())
.displayName("MyPage")
.entryFulfillment(CxPageEntryFulfillmentArgs.builder()
.messages(
CxPageEntryFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageEntryFulfillmentMessageTextArgs.builder()
.texts("Welcome to page")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageEntryFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.outputAudioText(CxPageEntryFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.outputAudioText(CxPageEntryFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageEntryFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.playAudio(CxPageEntryFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageEntryFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageEntryFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageEntryFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageEntryFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageEntryFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.eventHandlers(CxPageEventHandlerArgs.builder()
.event("some-event")
.triggerFulfillment(CxPageEventHandlerTriggerFulfillmentArgs.builder()
.returnPartialResponses(true)
.messages(
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageEventHandlerTriggerFulfillmentMessageTextArgs.builder()
.texts("Some text")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.playAudio(CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.build())
.form(CxPageFormArgs.builder()
.parameters(CxPageFormParameterArgs.builder()
.displayName("param1")
.entityType("projects/-/locations/-/agents/-/entityTypes/sys.date")
.defaultValue(serializeJson(
"2000-01-01"))
.fillBehavior(CxPageFormParameterFillBehaviorArgs.builder()
.initialPromptFulfillment(CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs.builder()
.messages(
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs.builder()
.texts("Please provide param1")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.outputAudioText(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.outputAudioText(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.playAudio(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.repromptEventHandlers(
CxPageFormParameterFillBehaviorRepromptEventHandlerArgs.builder()
.event("sys.no-match-1")
.triggerFulfillment(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs.builder()
.returnPartialResponses(true)
.webhook(myWebhook.id())
.tag("some-tag")
.messages(
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs.builder()
.texts("Please provide param1")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.playAudio(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerArgs.builder()
.event("sys.no-match-2")
.targetFlow(agent.startFlow())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerArgs.builder()
.event("sys.no-match-3")
.targetPage(myPage2.id())
.build())
.build())
.required("true")
.redact("true")
.advancedSettings(CxPageFormParameterAdvancedSettingsArgs.builder()
.dtmfSettings(CxPageFormParameterAdvancedSettingsDtmfSettingsArgs.builder()
.enabled(true)
.maxDigits(1)
.finishDigit("#")
.build())
.build())
.build())
.build())
.transitionRoutes(CxPageTransitionRouteArgs.builder()
.condition("$page.params.status = 'FINAL'")
.triggerFulfillment(CxPageTransitionRouteTriggerFulfillmentArgs.builder()
.messages(
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageTransitionRouteTriggerFulfillmentMessageTextArgs.builder()
.texts("information completed, navigating to page 2")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.playAudio(CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.targetPage(myPage2.id())
.build())
.advancedSettings(CxPageAdvancedSettingsArgs.builder()
.dtmfSettings(CxPageAdvancedSettingsDtmfSettingsArgs.builder()
.enabled(true)
.maxDigits(1)
.finishDigit("#")
.build())
.build())
.build());
}
}
import pulumi
import json
import pulumi_gcp as gcp
agent = gcp.diagflow.CxAgent("agent",
display_name="dialogflowcx-agent",
location="global",
default_language_code="en",
supported_language_codes=[
"fr",
"de",
"es",
],
time_zone="America/New_York",
description="Example description.",
avatar_uri="https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png",
enable_stackdriver_logging=True,
enable_spell_correction=True,
speech_to_text_settings=gcp.diagflow.CxAgentSpeechToTextSettingsArgs(
enable_speech_adaptation=True,
))
my_page2 = gcp.diagflow.CxPage("myPage2",
parent=agent.start_flow,
display_name="MyPage2")
my_webhook = gcp.diagflow.CxWebhook("myWebhook",
parent=agent.id,
display_name="MyWebhook",
generic_web_service=gcp.diagflow.CxWebhookGenericWebServiceArgs(
uri="https://example.com",
))
basic_page = gcp.diagflow.CxPage("basicPage",
parent=agent.start_flow,
display_name="MyPage",
entry_fulfillment=gcp.diagflow.CxPageEntryFulfillmentArgs(
messages=[
gcp.diagflow.CxPageEntryFulfillmentMessageArgs(
channel="some-channel",
text=gcp.diagflow.CxPageEntryFulfillmentMessageTextArgs(
texts=["Welcome to page"],
),
),
gcp.diagflow.CxPageEntryFulfillmentMessageArgs(
payload=" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
),
gcp.diagflow.CxPageEntryFulfillmentMessageArgs(
conversation_success=gcp.diagflow.CxPageEntryFulfillmentMessageConversationSuccessArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageEntryFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageEntryFulfillmentMessageOutputAudioTextArgs(
text="some output text",
),
),
gcp.diagflow.CxPageEntryFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageEntryFulfillmentMessageOutputAudioTextArgs(
ssml=" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
),
),
gcp.diagflow.CxPageEntryFulfillmentMessageArgs(
live_agent_handoff=gcp.diagflow.CxPageEntryFulfillmentMessageLiveAgentHandoffArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageEntryFulfillmentMessageArgs(
play_audio=gcp.diagflow.CxPageEntryFulfillmentMessagePlayAudioArgs(
audio_uri="http://example.com/some-audio-file.mp3",
),
),
gcp.diagflow.CxPageEntryFulfillmentMessageArgs(
telephony_transfer_call=gcp.diagflow.CxPageEntryFulfillmentMessageTelephonyTransferCallArgs(
phone_number="1-234-567-8901",
),
),
],
set_parameter_actions=[
gcp.diagflow.CxPageEntryFulfillmentSetParameterActionArgs(
parameter="some-param",
value="123.45",
),
gcp.diagflow.CxPageEntryFulfillmentSetParameterActionArgs(
parameter="another-param",
value=json.dumps("abc"),
),
gcp.diagflow.CxPageEntryFulfillmentSetParameterActionArgs(
parameter="other-param",
value=json.dumps(["foo"]),
),
],
conditional_cases=[gcp.diagflow.CxPageEntryFulfillmentConditionalCaseArgs(
cases=json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
)],
),
event_handlers=[gcp.diagflow.CxPageEventHandlerArgs(
event="some-event",
trigger_fulfillment=gcp.diagflow.CxPageEventHandlerTriggerFulfillmentArgs(
return_partial_responses=True,
messages=[
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs(
channel="some-channel",
text=gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageTextArgs(
texts=["Some text"],
),
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs(
payload=" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs(
conversation_success=gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs(
text="some output text",
),
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs(
ssml=" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
),
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs(
live_agent_handoff=gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs(
play_audio=gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs(
audio_uri="http://example.com/some-audio-file.mp3",
),
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs(
telephony_transfer_call=gcp.diagflow.CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs(
phone_number="1-234-567-8901",
),
),
],
set_parameter_actions=[
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs(
parameter="some-param",
value="123.45",
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs(
parameter="another-param",
value=json.dumps("abc"),
),
gcp.diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs(
parameter="other-param",
value=json.dumps(["foo"]),
),
],
conditional_cases=[gcp.diagflow.CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs(
cases=json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
)],
),
)],
form=gcp.diagflow.CxPageFormArgs(
parameters=[gcp.diagflow.CxPageFormParameterArgs(
display_name="param1",
entity_type="projects/-/locations/-/agents/-/entityTypes/sys.date",
default_value=json.dumps("2000-01-01"),
fill_behavior=gcp.diagflow.CxPageFormParameterFillBehaviorArgs(
initial_prompt_fulfillment=gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs(
messages=[
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs(
channel="some-channel",
text=gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs(
texts=["Please provide param1"],
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs(
payload=" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs(
conversation_success=gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs(
text="some output text",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs(
ssml=" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs(
live_agent_handoff=gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs(
play_audio=gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs(
audio_uri="http://example.com/some-audio-file.mp3",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs(
telephony_transfer_call=gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs(
phone_number="1-234-567-8901",
),
),
],
set_parameter_actions=[
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs(
parameter="some-param",
value="123.45",
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs(
parameter="another-param",
value=json.dumps("abc"),
),
gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs(
parameter="other-param",
value=json.dumps(["foo"]),
),
],
conditional_cases=[gcp.diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs(
cases=json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
)],
),
reprompt_event_handlers=[
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs(
event="sys.no-match-1",
trigger_fulfillment=gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs(
return_partial_responses=True,
webhook=my_webhook.id,
tag="some-tag",
messages=[
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs(
channel="some-channel",
text=gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs(
texts=["Please provide param1"],
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs(
payload=" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs(
conversation_success=gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs(
text="some output text",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs(
ssml=" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs(
live_agent_handoff=gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs(
play_audio=gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs(
audio_uri="http://example.com/some-audio-file.mp3",
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs(
telephony_transfer_call=gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs(
phone_number="1-234-567-8901",
),
),
],
set_parameter_actions=[
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs(
parameter="some-param",
value="123.45",
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs(
parameter="another-param",
value=json.dumps("abc"),
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs(
parameter="other-param",
value=json.dumps(["foo"]),
),
],
conditional_cases=[gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs(
cases=json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
)],
),
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs(
event="sys.no-match-2",
target_flow=agent.start_flow,
),
gcp.diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs(
event="sys.no-match-3",
target_page=my_page2.id,
),
],
),
required=True,
redact=True,
advanced_settings=gcp.diagflow.CxPageFormParameterAdvancedSettingsArgs(
dtmf_settings=gcp.diagflow.CxPageFormParameterAdvancedSettingsDtmfSettingsArgs(
enabled=True,
max_digits=1,
finish_digit="#",
),
),
)],
),
transition_routes=[gcp.diagflow.CxPageTransitionRouteArgs(
condition="$page.params.status = 'FINAL'",
trigger_fulfillment=gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentArgs(
messages=[
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs(
channel="some-channel",
text=gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageTextArgs(
texts=["information completed, navigating to page 2"],
),
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs(
payload=" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs(
conversation_success=gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs(
text="some output text",
),
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs(
output_audio_text=gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs(
ssml=" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
),
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs(
live_agent_handoff=gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs(
metadata=" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
),
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs(
play_audio=gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs(
audio_uri="http://example.com/some-audio-file.mp3",
),
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs(
telephony_transfer_call=gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs(
phone_number="1-234-567-8901",
),
),
],
set_parameter_actions=[
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs(
parameter="some-param",
value="123.45",
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs(
parameter="another-param",
value=json.dumps("abc"),
),
gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs(
parameter="other-param",
value=json.dumps(["foo"]),
),
],
conditional_cases=[gcp.diagflow.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs(
cases=json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
)],
),
target_page=my_page2.id,
)],
advanced_settings=gcp.diagflow.CxPageAdvancedSettingsArgs(
dtmf_settings=gcp.diagflow.CxPageAdvancedSettingsDtmfSettingsArgs(
enabled=True,
max_digits=1,
finish_digit="#",
),
))
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const agent = new gcp.diagflow.CxAgent("agent", {
displayName: "dialogflowcx-agent",
location: "global",
defaultLanguageCode: "en",
supportedLanguageCodes: [
"fr",
"de",
"es",
],
timeZone: "America/New_York",
description: "Example description.",
avatarUri: "https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png",
enableStackdriverLogging: true,
enableSpellCorrection: true,
speechToTextSettings: {
enableSpeechAdaptation: true,
},
});
const myPage2 = new gcp.diagflow.CxPage("myPage2", {
parent: agent.startFlow,
displayName: "MyPage2",
});
const myWebhook = new gcp.diagflow.CxWebhook("myWebhook", {
parent: agent.id,
displayName: "MyWebhook",
genericWebService: {
uri: "https://example.com",
},
});
const basicPage = new gcp.diagflow.CxPage("basicPage", {
parent: agent.startFlow,
displayName: "MyPage",
entryFulfillment: {
messages: [
{
channel: "some-channel",
text: {
texts: ["Welcome to page"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
eventHandlers: [{
event: "some-event",
triggerFulfillment: {
returnPartialResponses: true,
messages: [
{
channel: "some-channel",
text: {
texts: ["Some text"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
}],
form: {
parameters: [{
displayName: "param1",
entityType: "projects/-/locations/-/agents/-/entityTypes/sys.date",
defaultValue: JSON.stringify("2000-01-01"),
fillBehavior: {
initialPromptFulfillment: {
messages: [
{
channel: "some-channel",
text: {
texts: ["Please provide param1"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
repromptEventHandlers: [
{
event: "sys.no-match-1",
triggerFulfillment: {
returnPartialResponses: true,
webhook: myWebhook.id,
tag: "some-tag",
messages: [
{
channel: "some-channel",
text: {
texts: ["Please provide param1"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
},
{
event: "sys.no-match-2",
targetFlow: agent.startFlow,
},
{
event: "sys.no-match-3",
targetPage: myPage2.id,
},
],
},
required: true,
redact: true,
advancedSettings: {
dtmfSettings: {
enabled: true,
maxDigits: 1,
finishDigit: "#",
},
},
}],
},
transitionRoutes: [{
condition: "$page.params.status = 'FINAL'",
triggerFulfillment: {
messages: [
{
channel: "some-channel",
text: {
texts: ["information completed, navigating to page 2"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
targetPage: myPage2.id,
}],
advancedSettings: {
dtmfSettings: {
enabled: true,
maxDigits: 1,
finishDigit: "#",
},
},
});
resources:
agent:
type: gcp:diagflow:CxAgent
properties:
displayName: dialogflowcx-agent
location: global
defaultLanguageCode: en
supportedLanguageCodes:
- fr
- de
- es
timeZone: America/New_York
description: Example description.
avatarUri: https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png
enableStackdriverLogging: true
enableSpellCorrection: true
speechToTextSettings:
enableSpeechAdaptation: true
basicPage:
type: gcp:diagflow:CxPage
properties:
parent: ${agent.startFlow}
displayName: MyPage
entryFulfillment:
messages:
- channel: some-channel
text:
texts:
- Welcome to page
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
eventHandlers:
- event: some-event
triggerFulfillment:
returnPartialResponses: true
messages:
- channel: some-channel
text:
texts:
- Some text
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
form:
parameters:
- displayName: param1
entityType: projects/-/locations/-/agents/-/entityTypes/sys.date
defaultValue:
fn::toJSON: 2000-01-01
fillBehavior:
initialPromptFulfillment:
messages:
- channel: some-channel
text:
texts:
- Please provide param1
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
repromptEventHandlers:
- event: sys.no-match-1
triggerFulfillment:
returnPartialResponses: true
webhook: ${myWebhook.id}
tag: some-tag
messages:
- channel: some-channel
text:
texts:
- Please provide param1
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
- event: sys.no-match-2
targetFlow: ${agent.startFlow}
- event: sys.no-match-3
targetPage: ${myPage2.id}
required: 'true'
redact: 'true'
advancedSettings:
dtmfSettings:
enabled: true
maxDigits: 1
finishDigit: '#'
transitionRoutes:
- condition: $page.params.status = 'FINAL'
triggerFulfillment:
messages:
- channel: some-channel
text:
texts:
- information completed, navigating to page 2
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
targetPage: ${myPage2.id}
advancedSettings:
dtmfSettings:
enabled: true
maxDigits: 1
finishDigit: '#'
myPage2:
type: gcp:diagflow:CxPage
properties:
parent: ${agent.startFlow}
displayName: MyPage2
myWebhook:
type: gcp:diagflow:CxWebhook
properties:
parent: ${agent.id}
displayName: MyWebhook
genericWebService:
uri: https://example.com
Create CxPage Resource
new CxPage(name: string, args: CxPageArgs, opts?: CustomResourceOptions);
@overload
def CxPage(resource_name: str,
opts: Optional[ResourceOptions] = None,
advanced_settings: Optional[CxPageAdvancedSettingsArgs] = None,
display_name: Optional[str] = None,
entry_fulfillment: Optional[CxPageEntryFulfillmentArgs] = None,
event_handlers: Optional[Sequence[CxPageEventHandlerArgs]] = None,
form: Optional[CxPageFormArgs] = None,
language_code: Optional[str] = None,
parent: Optional[str] = None,
transition_route_groups: Optional[Sequence[str]] = None,
transition_routes: Optional[Sequence[CxPageTransitionRouteArgs]] = None)
@overload
def CxPage(resource_name: str,
args: CxPageArgs,
opts: Optional[ResourceOptions] = None)
func NewCxPage(ctx *Context, name string, args CxPageArgs, opts ...ResourceOption) (*CxPage, error)
public CxPage(string name, CxPageArgs args, CustomResourceOptions? opts = null)
public CxPage(String name, CxPageArgs args)
public CxPage(String name, CxPageArgs args, CustomResourceOptions options)
type: gcp:diagflow:CxPage
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args CxPageArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args CxPageArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args CxPageArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args CxPageArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args CxPageArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
CxPage Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The CxPage resource accepts the following input properties:
- Display
Name string The human-readable name of the page, unique within the agent.
- Advanced
Settings CxPage Advanced Settings Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- Entry
Fulfillment CxPage Entry Fulfillment The fulfillment to call when the session is entering the page. Structure is documented below.
- Event
Handlers List<CxPage Event Handler> Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- Form
Cx
Page Form The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- Language
Code string The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- Parent string
The flow to create a page for. Format: projects//locations//agents//flows/.
- Transition
Route List<string>Groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- Transition
Routes List<CxPage Transition Route> A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- Display
Name string The human-readable name of the page, unique within the agent.
- Advanced
Settings CxPage Advanced Settings Args Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- Entry
Fulfillment CxPage Entry Fulfillment Args The fulfillment to call when the session is entering the page. Structure is documented below.
- Event
Handlers []CxPage Event Handler Args Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- Form
Cx
Page Form Args The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- Language
Code string The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- Parent string
The flow to create a page for. Format: projects//locations//agents//flows/.
- Transition
Route []stringGroups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- Transition
Routes []CxPage Transition Route Args A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- display
Name String The human-readable name of the page, unique within the agent.
- advanced
Settings CxPage Advanced Settings Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- entry
Fulfillment CxPage Entry Fulfillment The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers List<CxPage Event Handler> Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code String The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- parent String
The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route List<String>Groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition
Routes List<CxPage Transition Route> A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- display
Name string The human-readable name of the page, unique within the agent.
- advanced
Settings CxPage Advanced Settings Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- entry
Fulfillment CxPage Entry Fulfillment The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers CxPage Event Handler[] Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code string The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- parent string
The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route string[]Groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition
Routes CxPage Transition Route[] A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- display_
name str The human-readable name of the page, unique within the agent.
- advanced_
settings CxPage Advanced Settings Args Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- entry_
fulfillment CxPage Entry Fulfillment Args The fulfillment to call when the session is entering the page. Structure is documented below.
- event_
handlers Sequence[CxPage Event Handler Args] Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form Args The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language_
code str The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- parent str
The flow to create a page for. Format: projects//locations//agents//flows/.
- transition_
route_ Sequence[str]groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition_
routes Sequence[CxPage Transition Route Args] A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- display
Name String The human-readable name of the page, unique within the agent.
- advanced
Settings Property Map Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- entry
Fulfillment Property Map The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers List<Property Map> Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form Property Map
The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code String The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- parent String
The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route List<String>Groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition
Routes List<Property Map> A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
Outputs
All input properties are implicitly available as output properties. Additionally, the CxPage resource produces the following output properties:
Look up Existing CxPage Resource
Get an existing CxPage resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: CxPageState, opts?: CustomResourceOptions): CxPage
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
advanced_settings: Optional[CxPageAdvancedSettingsArgs] = None,
display_name: Optional[str] = None,
entry_fulfillment: Optional[CxPageEntryFulfillmentArgs] = None,
event_handlers: Optional[Sequence[CxPageEventHandlerArgs]] = None,
form: Optional[CxPageFormArgs] = None,
language_code: Optional[str] = None,
name: Optional[str] = None,
parent: Optional[str] = None,
transition_route_groups: Optional[Sequence[str]] = None,
transition_routes: Optional[Sequence[CxPageTransitionRouteArgs]] = None) -> CxPage
func GetCxPage(ctx *Context, name string, id IDInput, state *CxPageState, opts ...ResourceOption) (*CxPage, error)
public static CxPage Get(string name, Input<string> id, CxPageState? state, CustomResourceOptions? opts = null)
public static CxPage get(String name, Output<String> id, CxPageState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Advanced
Settings CxPage Advanced Settings Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- Display
Name string The human-readable name of the page, unique within the agent.
- Entry
Fulfillment CxPage Entry Fulfillment The fulfillment to call when the session is entering the page. Structure is documented below.
- Event
Handlers List<CxPage Event Handler> Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- Form
Cx
Page Form The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- Language
Code string The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- Name string
(Output) The unique identifier of this event handler.
- Parent string
The flow to create a page for. Format: projects//locations//agents//flows/.
- Transition
Route List<string>Groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- Transition
Routes List<CxPage Transition Route> A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- Advanced
Settings CxPage Advanced Settings Args Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- Display
Name string The human-readable name of the page, unique within the agent.
- Entry
Fulfillment CxPage Entry Fulfillment Args The fulfillment to call when the session is entering the page. Structure is documented below.
- Event
Handlers []CxPage Event Handler Args Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- Form
Cx
Page Form Args The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- Language
Code string The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- Name string
(Output) The unique identifier of this event handler.
- Parent string
The flow to create a page for. Format: projects//locations//agents//flows/.
- Transition
Route []stringGroups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- Transition
Routes []CxPage Transition Route Args A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- advanced
Settings CxPage Advanced Settings Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- display
Name String The human-readable name of the page, unique within the agent.
- entry
Fulfillment CxPage Entry Fulfillment The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers List<CxPage Event Handler> Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code String The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- name String
(Output) The unique identifier of this event handler.
- parent String
The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route List<String>Groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition
Routes List<CxPage Transition Route> A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- advanced
Settings CxPage Advanced Settings Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- display
Name string The human-readable name of the page, unique within the agent.
- entry
Fulfillment CxPage Entry Fulfillment The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers CxPage Event Handler[] Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code string The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- name string
(Output) The unique identifier of this event handler.
- parent string
The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route string[]Groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition
Routes CxPage Transition Route[] A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- advanced_
settings CxPage Advanced Settings Args Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- display_
name str The human-readable name of the page, unique within the agent.
- entry_
fulfillment CxPage Entry Fulfillment Args The fulfillment to call when the session is entering the page. Structure is documented below.
- event_
handlers Sequence[CxPage Event Handler Args] Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form Args The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language_
code str The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- name str
(Output) The unique identifier of this event handler.
- parent str
The flow to create a page for. Format: projects//locations//agents//flows/.
- transition_
route_ Sequence[str]groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition_
routes Sequence[CxPage Transition Route Args] A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- advanced
Settings Property Map Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- display
Name String The human-readable name of the page, unique within the agent.
- entry
Fulfillment Property Map The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers List<Property Map> Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form Property Map
The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code String The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- name String
(Output) The unique identifier of this event handler.
- parent String
The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route List<String>Groups Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition
Routes List<Property Map> A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
Supporting Types
CxPageAdvancedSettings, CxPageAdvancedSettingsArgs
- Dtmf
Settings CxPage Advanced Settings Dtmf Settings Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:
- Agent level
- Flow level
- Page level
- Parameter level Structure is documented below.
- Dtmf
Settings CxPage Advanced Settings Dtmf Settings Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:
- Agent level
- Flow level
- Page level
- Parameter level Structure is documented below.
- dtmf
Settings CxPage Advanced Settings Dtmf Settings Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:
- Agent level
- Flow level
- Page level
- Parameter level Structure is documented below.
- dtmf
Settings CxPage Advanced Settings Dtmf Settings Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:
- Agent level
- Flow level
- Page level
- Parameter level Structure is documented below.
- dtmf_
settings CxPage Advanced Settings Dtmf Settings Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:
- Agent level
- Flow level
- Page level
- Parameter level Structure is documented below.
- dtmf
Settings Property Map Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:
- Agent level
- Flow level
- Page level
- Parameter level Structure is documented below.
CxPageAdvancedSettingsDtmfSettings, CxPageAdvancedSettingsDtmfSettingsArgs
- Enabled bool
If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).
- Finish
Digit string The digit that terminates a DTMF digit sequence.
- Max
Digits int Max length of DTMF digits.
- Enabled bool
If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).
- Finish
Digit string The digit that terminates a DTMF digit sequence.
- Max
Digits int Max length of DTMF digits.
- enabled Boolean
If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).
- finish
Digit String The digit that terminates a DTMF digit sequence.
- max
Digits Integer Max length of DTMF digits.
- enabled boolean
If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).
- finish
Digit string The digit that terminates a DTMF digit sequence.
- max
Digits number Max length of DTMF digits.
- enabled bool
If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).
- finish_
digit str The digit that terminates a DTMF digit sequence.
- max_
digits int Max length of DTMF digits.
- enabled Boolean
If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).
- finish
Digit String The digit that terminates a DTMF digit sequence.
- max
Digits Number Max length of DTMF digits.
CxPageEntryFulfillment, CxPageEntryFulfillmentArgs
- Conditional
Cases List<CxPage Entry Fulfillment Conditional Case> Conditional cases for this fulfillment. Structure is documented below.
- Messages
List<Cx
Page Entry Fulfillment Message> The list of rich message responses to present to the user. Structure is documented below.
- Return
Partial boolResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- Set
Parameter List<CxActions Page Entry Fulfillment Set Parameter Action> Set parameter values before executing the webhook. Structure is documented below.
- Tag string
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- Webhook string
The webhook to call. Format: projects//locations//agents//webhooks/.
- Conditional
Cases []CxPage Entry Fulfillment Conditional Case Conditional cases for this fulfillment. Structure is documented below.
- Messages
[]Cx
Page Entry Fulfillment Message The list of rich message responses to present to the user. Structure is documented below.
- Return
Partial boolResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- Set
Parameter []CxActions Page Entry Fulfillment Set Parameter Action Set parameter values before executing the webhook. Structure is documented below.
- Tag string
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- Webhook string
The webhook to call. Format: projects//locations//agents//webhooks/.
- conditional
Cases List<CxPage Entry Fulfillment Conditional Case> Conditional cases for this fulfillment. Structure is documented below.
- messages
List<Cx
Page Entry Fulfillment Message> The list of rich message responses to present to the user. Structure is documented below.
- return
Partial BooleanResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- set
Parameter List<CxActions Page Entry Fulfillment Set Parameter Action> Set parameter values before executing the webhook. Structure is documented below.
- tag String
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- webhook String
The webhook to call. Format: projects//locations//agents//webhooks/.
- conditional
Cases CxPage Entry Fulfillment Conditional Case[] Conditional cases for this fulfillment. Structure is documented below.
- messages
Cx
Page Entry Fulfillment Message[] The list of rich message responses to present to the user. Structure is documented below.
- return
Partial booleanResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- set
Parameter CxActions Page Entry Fulfillment Set Parameter Action[] Set parameter values before executing the webhook. Structure is documented below.
- tag string
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- webhook string
The webhook to call. Format: projects//locations//agents//webhooks/.
- conditional_
cases Sequence[CxPage Entry Fulfillment Conditional Case] Conditional cases for this fulfillment. Structure is documented below.
- messages
Sequence[Cx
Page Entry Fulfillment Message] The list of rich message responses to present to the user. Structure is documented below.
- return_
partial_ boolresponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- set_
parameter_ Sequence[Cxactions Page Entry Fulfillment Set Parameter Action] Set parameter values before executing the webhook. Structure is documented below.
- tag str
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- webhook str
The webhook to call. Format: projects//locations//agents//webhooks/.
- conditional
Cases List<Property Map> Conditional cases for this fulfillment. Structure is documented below.
- messages List<Property Map>
The list of rich message responses to present to the user. Structure is documented below.
- return
Partial BooleanResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- set
Parameter List<Property Map>Actions Set parameter values before executing the webhook. Structure is documented below.
- tag String
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- webhook String
The webhook to call. Format: projects//locations//agents//webhooks/.
CxPageEntryFulfillmentConditionalCase, CxPageEntryFulfillmentConditionalCaseArgs
CxPageEntryFulfillmentMessage, CxPageEntryFulfillmentMessageArgs
- Channel string
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- Conversation
Success CxPage Entry Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- Live
Agent CxHandoff Page Entry Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- Output
Audio CxText Page Entry Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- Payload string
A custom, platform-specific payload.
- Play
Audio CxPage Entry Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- Telephony
Transfer CxCall Page Entry Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- Text
Cx
Page Entry Fulfillment Message Text The text response message. Structure is documented below.
- Channel string
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- Conversation
Success CxPage Entry Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- Live
Agent CxHandoff Page Entry Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- Output
Audio CxText Page Entry Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- Payload string
A custom, platform-specific payload.
- Play
Audio CxPage Entry Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- Telephony
Transfer CxCall Page Entry Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- Text
Cx
Page Entry Fulfillment Message Text The text response message. Structure is documented below.
- channel String
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- conversation
Success CxPage Entry Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- live
Agent CxHandoff Page Entry Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- output
Audio CxText Page Entry Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- payload String
A custom, platform-specific payload.
- play
Audio CxPage Entry Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- telephony
Transfer CxCall Page Entry Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- text
Cx
Page Entry Fulfillment Message Text The text response message. Structure is documented below.
- channel string
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- conversation
Success CxPage Entry Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- live
Agent CxHandoff Page Entry Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- output
Audio CxText Page Entry Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- payload string
A custom, platform-specific payload.
- play
Audio CxPage Entry Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- telephony
Transfer CxCall Page Entry Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- text
Cx
Page Entry Fulfillment Message Text The text response message. Structure is documented below.
- channel str
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- conversation_
success CxPage Entry Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- live_
agent_ Cxhandoff Page Entry Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- output_
audio_ Cxtext Page Entry Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- payload str
A custom, platform-specific payload.
- play_
audio CxPage Entry Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- telephony_
transfer_ Cxcall Page Entry Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- text
Cx
Page Entry Fulfillment Message Text The text response message. Structure is documented below.
- channel String
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- conversation
Success Property Map Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- live
Agent Property MapHandoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- output
Audio Property MapText A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- payload String
A custom, platform-specific payload.
- play
Audio Property Map Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- telephony
Transfer Property MapCall Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- text Property Map
The text response message. Structure is documented below.
CxPageEntryFulfillmentMessageConversationSuccess, CxPageEntryFulfillmentMessageConversationSuccessArgs
- Metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- Metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata String
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata str
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata String
Custom metadata. Dialogflow doesn't impose any structure on this.
CxPageEntryFulfillmentMessageLiveAgentHandoff, CxPageEntryFulfillmentMessageLiveAgentHandoffArgs
- Metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- Metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata String
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata str
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata String
Custom metadata. Dialogflow doesn't impose any structure on this.
CxPageEntryFulfillmentMessageOutputAudioText, CxPageEntryFulfillmentMessageOutputAudioTextArgs
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Ssml string
The SSML text to be synthesized. For more information, see SSML.
- Text string
The raw text to be synthesized.
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Ssml string
The SSML text to be synthesized. For more information, see SSML.
- Text string
The raw text to be synthesized.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- ssml String
The SSML text to be synthesized. For more information, see SSML.
- text String
The raw text to be synthesized.
- allow
Playback booleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- ssml string
The SSML text to be synthesized. For more information, see SSML.
- text string
The raw text to be synthesized.
- allow_
playback_ boolinterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- ssml str
The SSML text to be synthesized. For more information, see SSML.
- text str
The raw text to be synthesized.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- ssml String
The SSML text to be synthesized. For more information, see SSML.
- text String
The raw text to be synthesized.
CxPageEntryFulfillmentMessagePlayAudio, CxPageEntryFulfillmentMessagePlayAudioArgs
- Audio
Uri string URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Audio
Uri string URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- audio
Uri String URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- audio
Uri string URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- allow
Playback booleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- audio_
uri str URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- allow_
playback_ boolinterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- audio
Uri String URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
CxPageEntryFulfillmentMessageTelephonyTransferCall, CxPageEntryFulfillmentMessageTelephonyTransferCallArgs
- Phone
Number string Transfer the call to a phone number in E.164 format.
- Phone
Number string Transfer the call to a phone number in E.164 format.
- phone
Number String Transfer the call to a phone number in E.164 format.
- phone
Number string Transfer the call to a phone number in E.164 format.
- phone_
number str Transfer the call to a phone number in E.164 format.
- phone
Number String Transfer the call to a phone number in E.164 format.
CxPageEntryFulfillmentMessageText, CxPageEntryFulfillmentMessageTextArgs
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Texts List<string>
A collection of text responses.
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Texts []string
A collection of text responses.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- texts List<String>
A collection of text responses.
- allow
Playback booleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- texts string[]
A collection of text responses.
- allow_
playback_ boolinterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- texts Sequence[str]
A collection of text responses.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- texts List<String>
A collection of text responses.
CxPageEntryFulfillmentSetParameterAction, CxPageEntryFulfillmentSetParameterActionArgs
CxPageEventHandler, CxPageEventHandlerArgs
- Event string
The name of the event to handle.
- Name string
(Output) The unique identifier of this event handler.
- Target
Flow string The target flow to transition to. Format: projects//locations//agents//flows/.
- Target
Page string The target page to transition to. Format: projects//locations//agents//flows//pages/.
- Trigger
Fulfillment CxPage Event Handler Trigger Fulfillment The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks. Structure is documented below.
- Event string
The name of the event to handle.
- Name string
(Output) The unique identifier of this event handler.
- Target
Flow string The target flow to transition to. Format: projects//locations//agents//flows/.
- Target
Page string The target page to transition to. Format: projects//locations//agents//flows//pages/.
- Trigger
Fulfillment CxPage Event Handler Trigger Fulfillment The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks. Structure is documented below.
- event String
The name of the event to handle.
- name String
(Output) The unique identifier of this event handler.
- target
Flow String The target flow to transition to. Format: projects//locations//agents//flows/.
- target
Page String The target page to transition to. Format: projects//locations//agents//flows//pages/.
- trigger
Fulfillment CxPage Event Handler Trigger Fulfillment The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks. Structure is documented below.
- event string
The name of the event to handle.
- name string
(Output) The unique identifier of this event handler.
- target
Flow string The target flow to transition to. Format: projects//locations//agents//flows/.
- target
Page string The target page to transition to. Format: projects//locations//agents//flows//pages/.
- trigger
Fulfillment CxPage Event Handler Trigger Fulfillment The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks. Structure is documented below.
- event str
The name of the event to handle.
- name str
(Output) The unique identifier of this event handler.
- target_
flow str The target flow to transition to. Format: projects//locations//agents//flows/.
- target_
page str The target page to transition to. Format: projects//locations//agents//flows//pages/.
- trigger_
fulfillment CxPage Event Handler Trigger Fulfillment The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks. Structure is documented below.
- event String
The name of the event to handle.
- name String
(Output) The unique identifier of this event handler.
- target
Flow String The target flow to transition to. Format: projects//locations//agents//flows/.
- target
Page String The target page to transition to. Format: projects//locations//agents//flows//pages/.
- trigger
Fulfillment Property Map The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks. Structure is documented below.
CxPageEventHandlerTriggerFulfillment, CxPageEventHandlerTriggerFulfillmentArgs
- Conditional
Cases List<CxPage Event Handler Trigger Fulfillment Conditional Case> Conditional cases for this fulfillment. Structure is documented below.
- Messages
List<Cx
Page Event Handler Trigger Fulfillment Message> The list of rich message responses to present to the user. Structure is documented below.
- Return
Partial boolResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- Set
Parameter List<CxActions Page Event Handler Trigger Fulfillment Set Parameter Action> Set parameter values before executing the webhook. Structure is documented below.
- Tag string
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- Webhook string
The webhook to call. Format: projects//locations//agents//webhooks/.
- Conditional
Cases []CxPage Event Handler Trigger Fulfillment Conditional Case Conditional cases for this fulfillment. Structure is documented below.
- Messages
[]Cx
Page Event Handler Trigger Fulfillment Message The list of rich message responses to present to the user. Structure is documented below.
- Return
Partial boolResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- Set
Parameter []CxActions Page Event Handler Trigger Fulfillment Set Parameter Action Set parameter values before executing the webhook. Structure is documented below.
- Tag string
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- Webhook string
The webhook to call. Format: projects//locations//agents//webhooks/.
- conditional
Cases List<CxPage Event Handler Trigger Fulfillment Conditional Case> Conditional cases for this fulfillment. Structure is documented below.
- messages
List<Cx
Page Event Handler Trigger Fulfillment Message> The list of rich message responses to present to the user. Structure is documented below.
- return
Partial BooleanResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- set
Parameter List<CxActions Page Event Handler Trigger Fulfillment Set Parameter Action> Set parameter values before executing the webhook. Structure is documented below.
- tag String
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- webhook String
The webhook to call. Format: projects//locations//agents//webhooks/.
- conditional
Cases CxPage Event Handler Trigger Fulfillment Conditional Case[] Conditional cases for this fulfillment. Structure is documented below.
- messages
Cx
Page Event Handler Trigger Fulfillment Message[] The list of rich message responses to present to the user. Structure is documented below.
- return
Partial booleanResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- set
Parameter CxActions Page Event Handler Trigger Fulfillment Set Parameter Action[] Set parameter values before executing the webhook. Structure is documented below.
- tag string
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- webhook string
The webhook to call. Format: projects//locations//agents//webhooks/.
- conditional_
cases Sequence[CxPage Event Handler Trigger Fulfillment Conditional Case] Conditional cases for this fulfillment. Structure is documented below.
- messages
Sequence[Cx
Page Event Handler Trigger Fulfillment Message] The list of rich message responses to present to the user. Structure is documented below.
- return_
partial_ boolresponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- set_
parameter_ Sequence[Cxactions Page Event Handler Trigger Fulfillment Set Parameter Action] Set parameter values before executing the webhook. Structure is documented below.
- tag str
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- webhook str
The webhook to call. Format: projects//locations//agents//webhooks/.
- conditional
Cases List<Property Map> Conditional cases for this fulfillment. Structure is documented below.
- messages List<Property Map>
The list of rich message responses to present to the user. Structure is documented below.
- return
Partial BooleanResponses Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.
- set
Parameter List<Property Map>Actions Set parameter values before executing the webhook. Structure is documented below.
- tag String
The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.
- webhook String
The webhook to call. Format: projects//locations//agents//webhooks/.
CxPageEventHandlerTriggerFulfillmentConditionalCase, CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs
CxPageEventHandlerTriggerFulfillmentMessage, CxPageEventHandlerTriggerFulfillmentMessageArgs
- Channel string
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- Conversation
Success CxPage Event Handler Trigger Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- Live
Agent CxHandoff Page Event Handler Trigger Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- Output
Audio CxText Page Event Handler Trigger Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- Payload string
A custom, platform-specific payload.
- Play
Audio CxPage Event Handler Trigger Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- Telephony
Transfer CxCall Page Event Handler Trigger Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- Text
Cx
Page Event Handler Trigger Fulfillment Message Text The text response message. Structure is documented below.
- Channel string
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- Conversation
Success CxPage Event Handler Trigger Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- Live
Agent CxHandoff Page Event Handler Trigger Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- Output
Audio CxText Page Event Handler Trigger Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- Payload string
A custom, platform-specific payload.
- Play
Audio CxPage Event Handler Trigger Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- Telephony
Transfer CxCall Page Event Handler Trigger Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- Text
Cx
Page Event Handler Trigger Fulfillment Message Text The text response message. Structure is documented below.
- channel String
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- conversation
Success CxPage Event Handler Trigger Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- live
Agent CxHandoff Page Event Handler Trigger Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- output
Audio CxText Page Event Handler Trigger Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- payload String
A custom, platform-specific payload.
- play
Audio CxPage Event Handler Trigger Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- telephony
Transfer CxCall Page Event Handler Trigger Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- text
Cx
Page Event Handler Trigger Fulfillment Message Text The text response message. Structure is documented below.
- channel string
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- conversation
Success CxPage Event Handler Trigger Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- live
Agent CxHandoff Page Event Handler Trigger Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- output
Audio CxText Page Event Handler Trigger Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- payload string
A custom, platform-specific payload.
- play
Audio CxPage Event Handler Trigger Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- telephony
Transfer CxCall Page Event Handler Trigger Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- text
Cx
Page Event Handler Trigger Fulfillment Message Text The text response message. Structure is documented below.
- channel str
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- conversation_
success CxPage Event Handler Trigger Fulfillment Message Conversation Success Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- live_
agent_ Cxhandoff Page Event Handler Trigger Fulfillment Message Live Agent Handoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- output_
audio_ Cxtext Page Event Handler Trigger Fulfillment Message Output Audio Text A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- payload str
A custom, platform-specific payload.
- play_
audio CxPage Event Handler Trigger Fulfillment Message Play Audio Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- telephony_
transfer_ Cxcall Page Event Handler Trigger Fulfillment Message Telephony Transfer Call Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- text
Cx
Page Event Handler Trigger Fulfillment Message Text The text response message. Structure is documented below.
- channel String
The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.
- conversation
Success Property Map Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.
- In a webhook response when you determine that you handled the customer issue. Structure is documented below.
- live
Agent Property MapHandoff Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example:
- In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.
- In a webhook response when you determine that the customer issue can only be handled by a human. Structure is documented below.
- output
Audio Property MapText A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. Structure is documented below.
- payload String
A custom, platform-specific payload.
- play
Audio Property Map Specifies an audio clip to be played by the client as part of the response. Structure is documented below.
- telephony
Transfer Property MapCall Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. Structure is documented below.
- text Property Map
The text response message. Structure is documented below.
CxPageEventHandlerTriggerFulfillmentMessageConversationSuccess, CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs
- Metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- Metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata String
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata str
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata String
Custom metadata. Dialogflow doesn't impose any structure on this.
CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoff, CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs
- Metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- Metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata String
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata string
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata str
Custom metadata. Dialogflow doesn't impose any structure on this.
- metadata String
Custom metadata. Dialogflow doesn't impose any structure on this.
CxPageEventHandlerTriggerFulfillmentMessageOutputAudioText, CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Ssml string
The SSML text to be synthesized. For more information, see SSML.
- Text string
The raw text to be synthesized.
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Ssml string
The SSML text to be synthesized. For more information, see SSML.
- Text string
The raw text to be synthesized.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- ssml String
The SSML text to be synthesized. For more information, see SSML.
- text String
The raw text to be synthesized.
- allow
Playback booleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- ssml string
The SSML text to be synthesized. For more information, see SSML.
- text string
The raw text to be synthesized.
- allow_
playback_ boolinterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- ssml str
The SSML text to be synthesized. For more information, see SSML.
- text str
The raw text to be synthesized.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- ssml String
The SSML text to be synthesized. For more information, see SSML.
- text String
The raw text to be synthesized.
CxPageEventHandlerTriggerFulfillmentMessagePlayAudio, CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs
- Audio
Uri string URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Audio
Uri string URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- audio
Uri String URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- audio
Uri string URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- allow
Playback booleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- audio_
uri str URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- allow_
playback_ boolinterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- audio
Uri String URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCall, CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs
- Phone
Number string Transfer the call to a phone number in E.164 format.
- Phone
Number string Transfer the call to a phone number in E.164 format.
- phone
Number String Transfer the call to a phone number in E.164 format.
- phone
Number string Transfer the call to a phone number in E.164 format.
- phone_
number str Transfer the call to a phone number in E.164 format.
- phone
Number String Transfer the call to a phone number in E.164 format.
CxPageEventHandlerTriggerFulfillmentMessageText, CxPageEventHandlerTriggerFulfillmentMessageTextArgs
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Texts List<string>
A collection of text responses.
- Allow
Playback boolInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- Texts []string
A collection of text responses.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- texts List<String>
A collection of text responses.
- allow
Playback booleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- texts string[]
A collection of text responses.
- allow_
playback_ boolinterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- texts Sequence[str]
A collection of text responses.
- allow
Playback BooleanInterruption (Output) Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.
- texts List<String>
A collection of text responses.
CxPageEventHandlerTriggerFulfillmentSetParameterAction, CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs
CxPageForm, CxPageFormArgs
- Parameters
List<Cx
Page Form Parameter> Parameters to collect from the user. Structure is documented below.
- Parameters
[]Cx
Page Form Parameter Parameters to collect from the user. Structure is documented below.
- parameters
List<Cx
Page Form Parameter> Parameters to collect from the user. Structure is documented below.
- parameters
Cx
Page Form Parameter[] Parameters to collect from the user. Structure is documented below.
- parameters
Sequence[Cx
Page Form Parameter] Parameters to collect from the user. Structure is documented below.
- parameters List<Property Map>
Parameters to collect from the user. Structure is documented below.
CxPageFormParameter, CxPageFormParameterArgs
- Advanced
Settings CxPage Form Parameter Advanced Settings Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- Default
Value string The default value of an optional parameter. If the parameter is required, the default value will be ignored.
- Display
Name string The human-readable name of the parameter, unique within the form.
- Entity
Type string The entity type of the parameter. Format: projects/-/locations/-/agents/-/entityTypes/ for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects//locations//agents//entityTypes/ for developer entity types.
- Fill
Behavior CxPage Form Parameter Fill Behavior Defines fill behavior for the parameter. Structure is documented below.
- Is
List bool Indicates whether the parameter represents a list of values.
- Redact bool
Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.
- Required bool
Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.
- Advanced
Settings CxPage Form Parameter Advanced Settings Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- Default
Value string The default value of an optional parameter. If the parameter is required, the default value will be ignored.
- Display
Name string The human-readable name of the parameter, unique within the form.
- Entity
Type string The entity type of the parameter. Format: projects/-/locations/-/agents/-/entityTypes/ for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects//locations//agents//entityTypes/ for developer entity types.
- Fill
Behavior CxPage Form Parameter Fill Behavior Defines fill behavior for the parameter. Structure is documented below.
- Is
List bool Indicates whether the parameter represents a list of values.
- Redact bool
Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.
- Required bool
Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.
- advanced
Settings CxPage Form Parameter Advanced Settings Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- default
Value String The default value of an optional parameter. If the parameter is required, the default value will be ignored.
- display
Name String The human-readable name of the parameter, unique within the form.
- entity
Type String The entity type of the parameter. Format: projects/-/locations/-/agents/-/entityTypes/ for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects//locations//agents//entityTypes/ for developer entity types.
- fill
Behavior CxPage Form Parameter Fill Behavior Defines fill behavior for the parameter. Structure is documented below.
- is
List Boolean Indicates whether the parameter represents a list of values.
- redact Boolean
Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.
- required Boolean
Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.
- advanced
Settings CxPage Form Parameter Advanced Settings Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- default
Value string The default value of an optional parameter. If the parameter is required, the default value will be ignored.
- display
Name string The human-readable name of the parameter, unique within the form.
- entity
Type string The entity type of the parameter. Format: projects/-/locations/-/agents/-/entityTypes/ for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects//locations//agents//entityTypes/ for developer entity types.
- fill
Behavior CxPage Form Parameter Fill Behavior Defines fill behavior for the parameter. Structure is documented below.
- is
List boolean Indicates whether the parameter represents a list of values.
- redact boolean
Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.
- required boolean
Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.
- advanced_
settings CxPage Form Parameter Advanced Settings Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- default_
value str The default value of an optional parameter. If the parameter is required, the default value will be ignored.
- display_
name str The human-readable name of the parameter, unique within the form.
- entity_
type str The entity type of the parameter. Format: projects/-/locations/-/agents/-/entityTypes/ for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects//locations//agents//entityTypes/ for developer entity types.
- fill_
behavior CxPage Form Parameter Fill Behavior Defines fill behavior for the parameter. Structure is documented below.
- is_
list bool Indicates whether the parameter represents a list of values.
- redact bool
Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.
- required bool
Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.
- advanced
Settings Property Map Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- default
Value String The default value of an optional parameter. If the parameter is required, the default value will be ignored.
- display
Name String The human-readable name of the parameter, unique within the form.
- entity
Type String The entity type of the parameter. Format: projects/-/locations/-/agents/-/entityTypes/ for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects//locations//agents//entityTypes/ for developer entity types.
- fill
Behavior Property Map Defines fill behavior for the parameter. Structure is documented below.