Say¶
Description¶
The Say Node is used to send a message to the user. This message can be in different formats, ranging from a simple text to rich media such as galleries, adaptive cards, videos, and audio outputs.
Additionally, you can enhance the existing output via Generative AI and control who can receive messages when the conversation is handed over to a contact center.
Settings¶
Channels¶
Depending on the current channel, additional rich media formats are available. Add a new channel output by clicking the + icon and selecting the channel that corresponds to the Endpoint that will be deployed.
See the list of available Channels.
Output Type (Default AI Channel)¶
The default AI Channel allows for the configuration of different output types. Not all Endpoints can correctly convert your content to the desired output type. Before configuration, check the compatibility of the output type with the Endpoint.
Text¶
The Text output type renders text and emojis (if supported by the channel). The text field also supports CognigyScript and Tokens that can be added by clicking at the end of each field.
Parameters | Type | Description |
---|---|---|
Text | CognigyScript | Enter the text. If you want to customize the text by adding italic or bold styles or including links, note that Markdown is not supported; only HTML is allowed. You can add multiple text messages — one message per field. Enter the first message and press Enter to add additional messages. When multiple text messages are added, the delivery order is controlled by the Linear and Loop parameters available in the Options section. Only one message will be delivered with each Node execution. If you want the AI Agent to send two or more messages at once, add a new Say Node. |
Options¶
When you send text responses, you can control how the text is delivered and attach additional data to the message.
Parameter | Type | Description |
---|---|---|
Linear | Toggle | Controls whether the text responses are shown in a specific order (linearly) or randomly. If enabled, the text options are presented one after the other in the defined sequence. |
Loop | Toggle | Works in conjunction with the Linear option. If Linear and Loop are enabled, the sequence starts over from the beginning after reaching the end. If Loop is disabled, the last text option will keep repeating after reaching the end. |
Data | JSON | Allows you to include additional data that you want to send along with the message to the client. For example, { "type": "motivational" } . |
When configuring the Linear and Loop parameters, the message delivery behavior differs:
Behavior | Configuration | Example Conversation |
---|---|---|
Random Behavior | Linear: Off Loop: Off |
User: Give me some motivation. AI Agent: You are doing great! User: Another one, please. AI Agent: Believe in yourself! User: More motivation. AI Agent: Keep pushing forward! Responses are in random order each time. |
Linear + Non-looping | Linear: On Loop: Off |
User: Give me some motivation. AI Agent: Keep pushing forward! User: Another one, please. AI Agent: Believe in yourself! User: More motivation. AI Agent: You are doing great! User: One more, please. AI Agent: You are doing great! (repeats last message)Responses follow a fixed sequence and repeat the last message after reaching the end. |
Linear + Looping | Linear: On Loop: On |
User: Give me some motivation. AI Agent: Keep pushing forward! User: Another one, please. AI Agent: Believe in yourself! User: More motivation. AI Agent: You are doing great! User: Next! AI Agent: Keep pushing forward! (starts sequence over)Responses cycle through in a fixed order and restart from the beginning after reaching the end. |
Text with Quick Replies¶
The Text with Quick Replies output type can be used to show the user a number of configurable quick replies. Quick replies are pre-defined answers that are rendered as input chips.
Parameters | Type | Description |
---|---|---|
Text | CognigyScript | Enter the text. If you want to customize the text by adding italic or bold styles or including links, note that Markdown is not supported; only HTML is allowed. |
Add Quick Reply | Button | Adds a new Empty Quick Reply button. You can add multiple buttons. |
Empty Quick Reply | Button | Adds a new Quick Reply button. |
Button Title | CognigyScript | Appears only when the Empty Quick Reply parameter is selected. The title of the button. |
Select Button Type | Dropdown | You can select the following options: - Postback Value — sends a specified value to the start of the Flow, simulating user input as if the user had manually typed it. This behavior is typical for Quick Replies and is used to trigger specific responses or actions based on predefined values. - Phone Number — opens the phone application on the device when the button is clicked, allowing users to initiate a call directly from the chat interface. - Trigger Intent — allows you to manually trigger an Intent by using the cIntent: prefix, followed by the name of the desired Intent. When this option is used, the regular Intent mapping is bypassed, and the specified Intent is activated directly. For more information, read Trigger Intent. - Open xApp — opens an xApp page. Note that, for the xApp session link to be available, you need to add the xApp: Init Session and either the xApp: Show HTML or xApp: Show Adaptive Card Nodes before the Say Node. |
Postback Value | CognigyScript | Appears if the Post back value in Select Button Type is selected. The value that is sent to the start of the Flow, simulating user input as if the user had manually typed it. |
URL | CognigyScript | Appears if the URL value in Select Button Type is selected. The URL must start with http:// or https:// , be a valid, publicly accessible address, and contain no spaces or unsafe characters. |
URL Target | CognigyScript | Appears if the URL value is selected in the Select Button Type. You can select one of the following options: - Open URL in a new tab — the selected URL will open in a new browser tab. - Open URL in the same tab — the selected URL will replace the current page in the same browser tab. |
Phone number | CognigyScript | Appears if the Phone number value in Select Button Type is selected. The number must be formatted as a valid phone number and should not contain spaces or special characters. |
Intent name | CognigyScript | Appears if the Trigger Intent value in Select Button Type is selected. The Intent name that should be triggered. |
Condition: Cognigy Script | CognigyScript | Allows control over when buttons are shown or hidden based on conditions written in CognigyScript. If you're displaying buttons in a card and only want to show one when there's data, use this condition {{context.array.length > 0}} . It checks if the array has items (length is greater than 0). If true, the button will appear; if false, it stays hidden. |
Textual Description | CognigyScript | The text that will appear if the text with quick replies is not be rendered in the chat. |
Gallery¶
The Gallery output type consists of powerful visual widgets that are ideal for displaying a list of options with images. They are typically used to showcase a variety of products or other items that can be browsed.
A gallery can be configured with multiple cards. Each card contains an image, a title, and a subtitle, and can be configured with optional buttons.
Card¶
Parameters | Type | Description |
---|---|---|
Add Card | Button | Adds a new card for the Gallery type. You can add multiple cards. |
Add Image | Button | Adds an image for the selected card. |
Image URL | Button | Appears when the Add Image parameter is selected. The URL for the image. Note that if you upload a URL to a storage service, such as Google Cloud Storage or AWS, the URL should be publicly accessible. |
Image Alternate Text | CognigyScript | Appears when the Add Image parameter is selected. The alternative text for accessibility, which describes the image for users who cannot see it. |
Title | CognigyScript | Appears when the Add Card parameter is selected. The title of the card. |
Subtitle | CognigyScript | Appears when the Add Card parameter is selected. The subtitle of the card. |
Condition: Cognigy Script | CognigyScript | Allows to control when cards are shown or hidden based on conditions written in CognigyScript. If you're displaying cards in a Gallery and only want to show a card when there's data, use this condition: {{context.array.length > 0}} . It checks if the array has items (length is greater than 0). If true, the card will appear; if false, it stays hidden. |
Textual Description | CognigyScript | The text that will appear if the gallery is not be rendered in the chat. |
Button¶
Parameters | Type | Description |
---|---|---|
Add Button | Button | Adds a new Empty Title button. You can add multiple buttons. |
Empty Title | Button | Adds a new button to the selected card. |
Button Title | Button | Appears only when the Empty Title parameter is selected. The title of the button. |
Select Button Type | Dropdown | You can select the following options: - Postback Value — sends a specified value to the start of the Flow, simulating user input as if the user had manually typed it. This behavior is typical for Quick Replies and is used to trigger specific responses or actions based on predefined values. - URL — opens the web page corresponding to the URL provided in the field. - Phone Number — opens the phone application on the device when the button is clicked, allowing users to initiate a call directly from the chat interface. - Trigger Intent — allows you to manually trigger an Intent by using the cIntent: prefix, followed by the name of the desired Intent. When this option is used, the regular Intent mapping is bypassed, and the specified Intent is activated directly. For more information, read Trigger Intent.- Open xApp — opens an xApp page. Note that, for the xApp session link to be available, you need to add the xApp: Init Session and either the xApp: Show HTML or xApp: Show Adaptive Card Nodes before the Say Node. |
Postback Value | CognigyScript | Appears if the Post back value in Select Button Type is selected. The value that is sent to the start of the Flow, simulating user input as if the user had manually typed it. |
URL | CognigyScript | Appears if the URL value in Select Button Type is selected. The URL must start with http:// or https:// , be a valid, publicly accessible address, and contain no spaces or unsafe characters. |
URL Target | CognigyScript | Appears if the URL value is selected in the Select Button Type. You can select one of the following options: - Open URL in a new tab — the selected URL will open in a new browser tab. - Open URL in the same tab — the selected URL will replace the current page in the same browser tab. |
Phone number | CognigyScript | Appears if the Phone number value in Select Button Type is selected. The number must be formatted as a valid phone number and should not contain spaces or special characters. |
Intent name | CognigyScript | Appears if the Trigger Intent value in Select Button Type is selected. The Intent name that should be triggered. |
Condition: Cognigy Script | CognigyScript | Allows control over when buttons are shown or hidden based on conditions written in CognigyScript. If you're displaying buttons in a card and only want to show one when there's data, use this condition {{context.array.length > 0}} . It checks if the array has items (length is greater than 0). If true, the button will appear; if false, it stays hidden. |
Text with Buttons¶
The Text with Buttons output type is similar to Text with Quick Replies, but it differs in its presentation. Instead of quick replies, this widget is displayed as a vertical list of button options. Configuration for this output type is also similar to that of the quick replies.
Text¶
Parameters | Type | Description |
---|---|---|
Text | CognigyScript | Enter the text. If you want to customize the text by adding italic or bold styles or including links, note that Markdown is not supported; only HTML is allowed. |
Textual Description | CognigyScript | The text that will appear if the text with buttons is not rendered in the chat. |
Button¶
Parameters | Type | Description |
---|---|---|
Add Button | Button | Adds a new Empty Title button. You can add up to 6 buttons. |
Empty Title | Button | Adds a new button to the selected card. |
Button Title | Button | Appears only when the Empty Title parameter is selected. The title of the button. |
Select Button Type | Dropdown | You can select the following options: - Postback Value — sends a specified value to the start of the Flow, simulating user input as if the user had manually typed it. This behavior is typical for Quick Replies and is used to trigger specific responses or actions based on predefined values. - Phone Number — opens the phone application on the device when the button is clicked, allowing users to initiate a call directly from the chat interface. - Trigger Intent — allows you to manually trigger an Intent by using the cIntent: prefix, followed by the name of the desired Intent. When this option is used, the regular Intent mapping is bypassed, and the specified Intent is activated directly. For more information, read Trigger Intent.- Open xApp — opens an xApp page. Note that, for the xApp session link to be available, you need to add the xApp: Init Session and either the xApp: Show HTML or xApp: Show Adaptive Card Nodes before the Say Node. |
Postback Value | CognigyScript | Appears if the Post back value in Select Button Type is selected. The value that is sent to the start of the Flow, simulating user input as if the user had manually typed it. |
URL | CognigyScript | Appears if the URL value in Select Button Type is selected. The URL must start with http:// or https:// , be a valid, publicly accessible address, and contain no spaces or unsafe characters. |
URL Target | CognigyScript | Appears if the URL value is selected in the Select Button Type. You can select one of the following options: - Open URL in a new tab — the selected URL will open in a new browser tab. - Open URL in the same tab — the selected URL will replace the current page in the same browser tab. |
Phone number | CognigyScript | Appears if the Phone number value in Select Button Type is selected. The number must be formatted as a valid phone number and should not contain spaces or special characters. |
Intent name | CognigyScript | Appears if the Trigger Intent value in Select Button Type is selected. The Intent name that should be triggered. |
Condition: Cognigy Script | CognigyScript | Allows control over when buttons are shown or hidden based on conditions written in CognigyScript. If you're displaying buttons in a card and only want to show one when there's data, use this condition {{context.array.length > 0}} . It checks if the array has items (length is greater than 0). If true, the button will appear; if false, it stays hidden. |
List¶
The List output type allows a customized list of items to be displayed, with many configuration options such as a header image, buttons, images, and more.
The first list item can optionally be converted into a header that includes the list title, subtitle, and button. Each additional list item can have a title, subtitle, image, and button. A button can also be added at the bottom of the list.
Item¶
Parameters | Type | Description |
---|---|---|
Add item | Button | Adds a new Empty Title button to the selected card. You can add up to 10 items. |
Empty Title | Button | Adds a new entry to the list. |
Title | CognigyScript | Appears when you select Empty Title. |
Subtitle | CognigyScript | Appears when the Add Card parameter is selected. The subtitle of the card. |
Image URL | Button | Appears when the Add Image parameter is selected. The URL for the image. Note that if you upload a URL to a storage service, such as Google Cloud Storage or AWS, the URL should be publicly accessible. |
Image Alternate Text | CognigyScript | Appears when the Add Image parameter is selected. The alternative text for accessibility, which describes the image for users who cannot see it. |
Default Action URL | CognigyScript | Appears when the Empty Title parameter is selected. It is a link that opens when the user clicks anywhere on the item. It's used when you want the entire item to be clickable, directing the user to a specific website or resource. |
Condition | CognigyScript | Allows to control when items are shown or hidden based on conditions written in CognigyScript. If you're displaying items in a list and only want to show a list when there's data, use this condition: {{context.array.length > 0}} . It checks if the array has items (length is greater than 0). If true, the item will appear; if false, it stays hidden. |
Textual Description | CognigyScript | The text that will appear if the list is not rendered in the chat. |
Item Button¶
Each item can have a separate button. To configure it, hover the mouse over the Empty Title and click + icon. You can add only one button per item.
Parameters | Type | Description |
---|---|---|
Button Title | Button | Appears only when the Empty Title parameter is selected. The title of the button. |
Select Button Type | Dropdown | You can select the following options: - Postback Value — sends a specified value to the start of the Flow, simulating user input as if the user had manually typed it. This behavior is typical for Quick Replies and is used to trigger specific responses or actions based on predefined values. - Phone Number — opens the phone application on the device when the button is clicked, allowing users to initiate a call directly from the chat interface. - Trigger Intent — allows you to manually trigger an Intent by using the cIntent: prefix, followed by the name of the desired Intent. When this option is used, the regular Intent mapping is bypassed, and the specified Intent is activated directly. For more information, read Trigger Intent.- Open xApp — opens an xApp page. Note that, for the xApp session link to be available, you need to add the xApp: Init Session and either the xApp: Show HTML or xApp: Show Adaptive Card Nodes before the Say Node. |
Postback Value | CognigyScript | Appears if the Post back value in Select Button Type is selected. The value that is sent to the start of the Flow, simulating user input as if the user had manually typed it. |
URL | CognigyScript | Appears if the URL value in Select Button Type is selected. The URL must start with http:// or https:// , be a valid, publicly accessible address, and contain no spaces or unsafe characters. |
URL Target | CognigyScript | Appears if the URL value is selected in the Select Button Type. You can select one of the following options: - Open URL in a new tab — the selected URL will open in a new browser tab. - Open URL in the same tab — the selected URL will replace the current page in the same browser tab. |
Phone number | CognigyScript | Appears if the Phone number value in Select Button Type is selected. The number must be formatted as a valid phone number and should not contain spaces or special characters. |
Intent name | CognigyScript | Appears if the Trigger Intent value in Select Button Type is selected. The Intent name that should be triggered. |
Condition: Cognigy Script | CognigyScript | Allows control over when buttons are shown or hidden based on conditions written in CognigyScript. If you're displaying buttons in a card and only want to show one when there's data, use this condition {{context.array.length > 0}} . It checks if the array has items (length is greater than 0). If true, the button will appear; if false, it stays hidden. |
Button¶
You can add only one item for the list.
Parameters | Type | Description |
---|---|---|
Add Button | Button | Adds a new Empty Title button. You can add up to 6 buttons. |
Empty Title | Button | Adds a new button to the selected card. |
Button Title | Button | Appears only when the Empty Title parameter is selected. The title of the button. |
Select Button Type | Dropdown | You can select the following options: - Postback Value — sends a specified value to the start of the Flow, simulating user input as if the user had manually typed it. This behavior is typical for Quick Replies and is used to trigger specific responses or actions based on predefined values. - URL — opens the web page corresponding to the URL provided in the field. - Phone Number — opens the phone application on the device when the button is clicked, allowing users to initiate a call directly from the chat interface. - Trigger Intent — allows you to manually trigger an Intent by using the cIntent: prefix, followed by the name of the desired Intent. When this option is used, the regular Intent mapping is bypassed, and the specified Intent is activated directly. For more information, read Trigger Intent.- Open xApp — opens an xApp page. Note that, for the xApp session link to be available, you need to add the xApp: Init Session and either the xApp: Show HTML or xApp: Show Adaptive Card Nodes before the Say Node. |
Postback Value | CognigyScript | Appears if the Post back value in Select Button Type is selected. The value that is sent to the start of the Flow, simulating user input as if the user had manually typed it. |
URL | CognigyScript | Appears if the URL value in Select Button Type is selected. The URL must start with http:// or https:// , be a valid, publicly accessible address, and contain no spaces or unsafe characters. |
URL Target | CognigyScript | Appears if the URL value is selected in the Select Button Type. You can select one of the following options: - Open URL in a new tab — the selected URL will open in a new browser tab. - Open URL in the same tab — the selected URL will replace the current page in the same browser tab. |
Phone number | CognigyScript | Appears if the Phone number value in Select Button Type is selected. The number must be formatted as a valid phone number and should not contain spaces or special characters. |
Intent name | CognigyScript | Appears if the Trigger Intent value in Select Button Type is selected. The Intent name that should be triggered. |
Condition: Cognigy Script | CognigyScript | Allows control over when buttons are shown or hidden based on conditions written in CognigyScript. If you're displaying buttons in a card and only want to show one when there's data, use this condition {{context.array.length > 0}} . It checks if the array has items (length is greater than 0). If true, the button will appear; if false, it stays hidden. |
Audio¶
The Audio output type plays audio when supported by the channel. It is configured by providing a URL to the audio file and includes controls to play, pause, and stop the audio.
Parameters | Type | Description |
---|---|---|
Audio URL | CognigyScript | The URL of the track you want to play. Note that the URL should be publicly accessible. |
Audio Alternate Text | CognigyScript | The audio transcript you can add alongside the audio, allowing users to download it. Only applicable to Webchat v3. |
Textual Description | CognigyScript | The text that will appear if the audio is not rendered in the chat. |
Image¶
The Image output type displays a single image.
Parameters | Type | Description |
---|---|---|
Image URL | Button | Appears when the Add Image parameter is selected. The URL for the image. Note that if you upload a URL to a storage service, such as Google Cloud Storage or AWS, the URL should be publicly accessible. |
Image Alternate Text | CognigyScript | Appears when the Add Image parameter is selected. The alternative text for accessibility, which describes the image for users who cannot see it. |
Textual Description | CognigyScript | The text that will appear if the image is not rendered in the chat. |
Video¶
The Video output type allows you to add a video clip. It takes a URL as an input parameter and will automatically start playing the video if supported by the Endpoint.
Parameters | Type | Description |
---|---|---|
Video URL | Button | The URL of the track you want to play. Note that the URL should be publicly accessible. |
Video Alternate Text | CognigyScript | The video transcript you can add alongside the audio to allow users to download it. This field is applicable only to Webchat v3. |
Video Captions URL | CognigyScript | A link to a file containing captions for the video. This URL provides text-based descriptions of the audio content, which helps with accessibility and understanding the video. The captions should be in .vtt format. |
Textual Description | CognigyScript | The text that will appear if the video is not rendered in the chat. |
Adaptive Card¶
The Adaptive Card output type allows you to add Microsoft Adaptive Cards. They offer customization options, support for rich media (images, video, and audio), ease of use with a simple JSON schema, and the ability to create dynamic content for users to match their specific needs and branding.
To create an adaptive card, use the Adaptive Card Designer. Customize the existing JSON, then copy and paste it into the code editor. If JSON is correct, you will see the adaptive card rendered under the code editor.
Warning
Cognigy supports the limited number of versions for Adaptive Card, so using the latest versions may cause issues. We recommend using supported versions for better compatibility.
Adaptive Card JSON example
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"text": "Publish Adaptive Card Schema"
},
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"items": [
{
"type": "Image",
"style": "Person",
"url": "https://pbs.twimg.com/profile_images/3647943215/d7f12830b3c17a5a9e4afcc370e3a37e_400x400.jpeg",
"size": "Small"
}
],
"width": "auto"
},
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"weight": "Bolder",
"text": "Matt Hidinger",
"wrap": true
},
{
"type": "TextBlock",
"spacing": "None",
"text": "Created Tue, Feb 14, 2017",
"isSubtle": true,
"wrap": true
}
],
"width": "stretch"
}
]
},
{
"type": "TextBlock",
"text": "Publish Adaptive Card Schema easily.",
"wrap": true
},
{
"type": "Action.OpenUrl",
"title": "View",
"url": "https://adaptivecards.io"
}
]
}
Create an Adaptive Card with Generative AI¶
You can also use Generative AI to create a new adaptive card or improve an existing one. Before using it, ensure that you are connected to one of the Generative AI providers.
To use this feature, follow these steps:
- Select the Adaptive Card output type.
-
In the Generate Node Output section, instruct the Generative AI model how to improve the current Adaptive Card. For example,
Create a form with a customer name field and a date input field
. - Click Generate. The adaptive card will be generated.
- Iteratively improve the resulting Adaptive Card by giving further instructions in the Generate Node Output section. For example,
Add a flight number field
. - Click Generate. The existing adaptive card will be updated.
To navigate between your inputs, use .
To replace the current Adaptive Card with a new one, click .
Generative AI Adaptive Card JSON example
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "Customer Form"
},
{
"type": "Input.Text",
"id": "customerName",
"placeholder": "Enter customer name"
},
{
"type": "Input.Date",
"id": "dateInput",
"placeholder": "Enter date"
},
{
"type": "Input.Text",
"id": "flightNumber",
"placeholder": "Enter flight number"
}
]
}
AI-Enhanced Output¶
To use AI-enhanced output rephrasing, read the Generative AI article.
Handover Settings¶
When using a handover to a contact center, you can choose who receives the message from the AI Agent:
- User and Agent — by default, both the end user and the human agent will receive the message.
- User only — the end user will receive the message.
- Agent only — the responsible human agent will receive the message.