Once you create a flow agent, you can add or change jobs and tools in the flow agent configuration.
Open the created flow agent and go to the Jobs tab.
Fill in the following fields:
Job Name — enter a title for the job you want to assign to the flow agent. For example, Customer Support Specialist.
Job Description — enter a description of the job that outlines the responsibilities and tasks associated with the role. For example, Handle customer inquiries, provide product information, and resolve issues efficiently.
Instructions and Context — provide specific instructions or guidelines that the flow agent should follow while performing its job. For example, Always respond politely, escalate complex issues to a human agent, and ensure customer satisfaction.
In the Tools section, click Add Tool to add tools that the flow agent can use to perform its job. Select one of the following options:
Tool
MCP
A2A agent
Knowledge
Send email
Handover to flow agent
Handover to human agent
Execute workflow tool
A tool is a specific task that a flow agent can perform. The flow agent can call tools to perform different tasks, such as retrieving information from a database or interacting with an external API. Fill in the following fields:
Tool
Parameter
Type
Description
Tool ID
CognigyScript
Defines the tool ID. This ID can contain only letters, numbers, underscores (_), or dashes (-). If you use more than one tool, the tool ID provides context to trigger the correct tool. In this case, enter a clear tool ID for each tool, for example, update_user-1.
Description
CognigyScript
Defines instructions to guide the flow agent to call the tool. The description field provides context to trigger the tool. Enter a detailed description of what the tool does, when it should be used, and what parameters it requires.
Parameters
Configure the parameters that will be collected by the flow agent before the tool is called. You can switch between the Graphical and JSON editors. When editing the JSON, follow the JSON Schema specification.
Parameter
Type
Description
Use Parameters
Toggle
Displays the Parameters section in the Node editor. In this section, you can define additional parameters for the tool. The flow agent collects all data it needs and calls a tool with these parameters filled as arguments. This parameter values can be accessed directly in the input.aiAgent.toolArgs object.
Name
Text
Sets the name of the parameter. The name must be clear and concise, and describe the purpose of the parameter.
Type
List
Sets the parameter type:
String — a sequence of characters. For example, "hello", "123".
Number — a numerical value, which can be either an integer, for example, 5, or a float, for example, 3.14.
Boolean — a logical value representing true or false.
Array — a collection of elements, which can contain multiple values of any type. For example, ["apple", "banana", "cherry"].
Object — a collection of key-value pairs, where each key is a string and the value can be of any type. For example, {"name": "John", "age": 30}.
Description
Text
Describes the parameter’s purpose.
Enum (optional)
Enum
Defines a set of values that the parameter can accept. The enum restricts the input to one of the specified values, ensuring only valid options are chosen. The enum is only available for string-type parameters in the graphical editor. For other types, use the JSON editor. Might not be supported by all LLM providers.
Add Parameter
Button
Adds another parameter.
Debug settings
Parameter
Type
Description
Debug Message when called
Toggle
Activates the output of a debug message when the tool is called to provide detailed information about the tool call.
Advanced
Parameter
Type
Description
Condition
CognigyScript
Sets a condition that must be evaluated as true to activate the tool. If false, the flow agent can’t access the tool during execution. For example, when using the unlock_account tool, you can enter a condition like context.accountStatus === "locked". With this condition, the flow agent checks the value of the context.accountStatus key in the Context object, and if the key is missing or the value is different from "locked", the flow agent can’t use the tool.
An MCP tool connects to a remote MCP server to load tools that the flow agent can execute. Fill in the following fields:
MCP tool
Parameter
Type
Description
Name
CognigyScript
Defines a name for the MCP connection. This name helps you identify the source of the loaded tool.
MCP Server URL
CognigyScript
Defines the URL of a remote MCP server, for example, https://my-mcp-server.com/mcp. The legacy /sse endpoint is also supported. Ensure that you connect only to trusted MCP servers.
Timeout (seconds)
Slider
Sets the timeout for the MCP connection in seconds. The default is 12 seconds. The range is 1–30 seconds.
Authentication
Parameter
Type
Description
Authentication Type
List
Sets the authentication type to use for the MCP server connection. Select one of the following options:
None — no authentication. This option is used by default.
OAuth2 — authenticate using OAuth 2.0, which provides improved security and control compared to API keys. OAuth 2.0 supports scoped permissions, expiring tokens, and reduced exposure through short-lived tokens.
If you want to use a different authentication method, such as an API key, you can add it as a custom header in Custom Headers of the Advanced section.
OAuth2 Parameters
List
Opens the dialog to configure OAuth 2.0 authentication. The dialog includes fields that allow the flow agent to securely request and use access tokens when communicating with the MCP server. Configure the following fields:
Connection Name — enter a descriptive name for the connection, for example, MCP Tool OAuth.
OAuth URL — enter the token endpoint URL exposed by the MCP server, for example: https://mcp.example.com/oauth2/token.
Client ID — enter the application (client) ID issued by the MCP server.
Client Secret — enter the application secret issued by the MCP server. Keep this secret secure.
Scope — add a list of scopes that define the permissions required by your application, for example: read write admin. Separate multiple scopes with spaces.
Debug settings
Parameter
Type
Description
Debug loaded Tools
Toggle
Displays a debug message listing all tools loaded from the MCP server. The debug message also includes tools filtered out in the Advanced section. This parameter shows whether tools were loaded from the cache or directly from the MCP server.
Debug with Parameters
Toggle
Appears when Debug loaded Tools is active. Includes the tool parameters in the Debug loaded Tools message. This parameter is inactive by default.
Debug calling Tool
Toggle
Outputs a debug message with detailed information about the tool call each time it is triggered. This parameter is active by default.
Advanced
Parameter
Type
Description
Cache Tools
Toggle
Caches loaded tools. Deactivate this parameter while developing. Ensure that caching is enabled in production for performance reasons. The caching time is 10 minutes. In debug mode, you can verify whether the cache was used. To do this, make sure Debug Loaded Tools is enabled. For more information, see the Debug Settings section.
Condition
CognigyScript
Sets a condition that must be evaluated as true to activate the MCP tool. If false, the flow agent can’t access the tool during execution. For example, when using the unlock_account tool, you can enter a condition like context.accountStatus === "locked". With this condition, the flow agent checks the value of the context.accountStatus key in the Context object, and if the key is missing or the value is different from "locked", the flow agent can’t use the tool.
Tool Filter
Select
Excludes tools from execution. You can select one of the following options:
None — no tool filtering is applied, and all tools are available for execution. This option is selected by default.
Whitelist — only tools on the list are available for execution, while all other tools are excluded.
Blacklist — excludes the tools on the list from execution, while all other tools remain available.
Blacklist
CognigyScript
This parameter appears if you select Blacklist in Tool Filter. Defines which tools to block from execution. Enter only one tool per field.
Whitelist
CognigyScript
This parameter appears if you select Whitelist in Tool Filter. Sets the tools you want to allow for execution. Enter only one tool per field.
Custom Headers
Input fields
Sets the headers to send with the request to the MCP server. You can switch between the graphical and JSON editors to enter the header key and value either in the Key and Value fields or in the code field in JSON format.
Key
Text
Sets the header name. After entering the header key, new empty Key and Value fields are automatically added, in case you need to add more headers.
Value
CognigyScript
Sets the header value.
You can add multiple tools to the flow agent. The recommended maximum number of tools is 20. The following video shows an MCP Tool example:
An A2A Agent tool connects to a remote A2A agent through the open Agent2Agent (A2A) protocol and uses it as a single tool. Cognigy automatically creates a Call A2A Flow Agent Node, labeled Call an A2A Agent, below the A2A Agent Node to execute the call. Fill in the following fields:
A2A agent
Parameter
Type
Description
Name
CognigyScript
Defines the name of the A2A Agent connection.
A2A Agent Base URL
CognigyScript
Defines the base URL of the A2A agent. Connect only to trusted A2A agents.
Test Connection
Button
Tests the connection and verifies that the remote Agent Card can be retrieved.
Timeout (seconds)
Slider
Sets the timeout in seconds for each request to the remote agent: Agent Card discovery, sending the message, and, in Non-blocking mode, each poll. Ranges from 1 to 30 seconds. The default value is 12.
Execution mode
List
Determines how the Node waits for the remote A2A agent:
Blocking — waits for the final result.
Non-blocking (poll until complete) — sends the message and polls the task until it completes or the Task timeout is reached.
Task timeout
Slider
Sets the maximum time in seconds to poll a task when Execution mode is Non-blocking. Ranges from 10 to 300 seconds. The default value is 60.
Max autonomous calls per turn
Slider
Limits the number of times the Flow Agent node can call this tool autonomously during one turn. Ranges from 1 to 10. The default value is 4.
Authentication
Parameter
Type
Description
Authentication Type
List
Authentication method for requests to the remote A2A agent: None, OAuth2, Bearer Token, Basic Auth, or API Key.
OAuth2 Parameters
Connection
Appears when OAuth2 is selected. Configures the connection used to obtain and cache an access token.
Basic Auth Parameters
Connection
Appears when Basic Auth is selected. Configures the username and password.
Bearer Token
Connection
Appears when Bearer Token is selected. Configures the token sent in the Authorization header.
API Key
Connection
Appears when API Key is selected. Configures the API key value.
API Key Header Name
CognigyScript
Appears when API Key is selected. Specifies the header used for the API key. Default: X-API-Key.
Use Authentication for Agent Discovery
Toggle
Applies the configured authentication to Agent Card discovery. Inactive by default.
Debug settings
Parameter
Type
Description
Debug loaded A2A Skills
Toggle
Displays the skills loaded from the remote Agent Card and indicates whether the Agent Card came from the cache. This parameter is active by default.
Debug calling A2A Skill
Toggle
Displays a debug message when the tool is called. This parameter is active by default.
Advanced
Parameter
Type
Description
Condition
CognigyScript
Enables the tool only when the condition evaluates to true.
A2A Skill Filter
Select
Controls which remote skills are summarized in the tool description. The A2A Agent Node remains a single tool regardless of the filter. Options:
None — includes all skills.
Whitelist — includes only the specified skills.
Blacklist — excludes the specified skills.
Whitelist
CognigyScript
Appears when Whitelist is selected. Specifies the skill IDs to include.
Blacklist
CognigyScript
Appears when Blacklist is selected. Specifies the skill IDs to exclude.
Custom Headers
-
Adds custom headers to requests sent to the remote A2A agent. Supports CognigyScript values.
Custom Agent Card Path
CognigyScript
Overrides the default Agent Card discovery path. When you set a path, Cognigy uses only this path. When the field is empty, Cognigy tries .well-known/agent-card.json first, and then the legacy .well-known/agent.json.
Cache Agent Card
Toggle
Caches the remote Agent Card for 10 minutes. This parameter is active by default. When developing, set the parameter to inactive to fetch the Agent Card on every turn.
Use the Call A2A Flow Agent Node, created automatically below the A2A Agent Node, to modify or inspect the message before it’s sent, add a Say Node, and configure how the result is returned to the Flow Agent node. The node also sends the status message Delegating to <tool name>... automatically, but only to clients connected through the A2A Server channel.
Call A2A flow agent
Parameter
Type
Description
Resolve Immediately
Toggle
Immediately returns the full result to the Flow Agent node as the tool answer. This parameter is active by default.
Storage options
Parameter
Type
Description
How to handle the result
Select
Determines where to store the result: Input or Context. Store in Input is selected by default.
Input Key to store Result
CognigyScript
Appears when Store in Input is selected. Stores the result in input.aiAgent.toolResult by default.
Context Key to store Result
CognigyScript
Appears when Store in Context is selected. Stores the result in context.aiAgent.toolResult by default.
Debug settings
Parameter
Type
Description
Debug A2A Skill Result
Toggle
Displays a debug message with the result after a successful call. This parameter is inactive by default.
Debug Raw Request
Toggle
Displays the raw JSON-RPC request sent to the A2A agent. This parameter is inactive by default.
A Knowledge tool is a tool that allows the flow agent to directly access Knowledge Stores to provide context-aware responses. Fill in the following fields:
Tool
Parameter
Type
Description
Knowledge Store
List
Sets the Knowledge Store to read information from.
Tool ID
CognigyScript
Defines the tool ID. This ID can contain only letters, numbers, underscores (_), or dashes (-). If you use more than one Knowledge tool, the tool ID provides context to trigger the correct Knowledge tool. In this case, enter a clear tool ID for each Knowledge tool, for example, search_appliances
Description
CognigyScript
Defines instructions to guide the flow agent to call the Knowledge tool. The description field provides context to trigger the Knowledge tool. If you want to use more than one Knowledge tool, enter clear instructions for the cases when each Knowledge tool should be used. For example, Find the answer to prompts or questions about appliances by searching the attached data sources. Use this tool when a customer asks about appliance items such as washing machines, dryers, and other household appliances. Focus exclusively on a knowledge search and don't execute tasks like small talk, calculations, or script running.
Debug settings
Parameter
Type
Description
Debug Message when called
Toggle
Activates the output of a debug message when the tool is called to provide detailed information about the tool call.
Advanced
Parameter
Type
Description
Top K
Slider
Sets how many Knowledge Chunks to return. The default value is 5, and the maximum value is 10. Providing more results gives the flow agent additional context, but it also increases noise and token usage.
Store Location
List
Sets whether and where to store the knowledge search results. Select one of the following options:
Don’t store — the content isn’t stored. This option is set by default.
Input — the content is stored in the Input object.
Context — the content is stored in the Context object.
Input Key to store result
CognigyScript
This parameter appears when Store Location is set to Input. The property in the Input object where the result is stored. For example, if you enter knowledgeSearch, you can retrieve the knowledge search result from input.knowledgeSearch.
Context Key to store result
CognigyScript
This parameter appears when Store Location is set to Context. The property in the Context object where the result is stored. For example, if you enter knowledgeSearch, you can retrieve the knowledge search result from context.knowledgeSearch.
Source Tags
CognigyScript
Defines Knowledge Source Tags to refine the scope of your knowledge search, including only the most relevant Knowledge Chunks in the Knowledge Store. Before entering the tags, ensure they are included in the Knowledge Sources. Add a tag by entering it in the field and pressing Enter. You can add up to 5 Source Tags. When multiple Source Tags are added, the Search Extract Output Node defaults to the AND operator, meaning it only considers Sources that have all specified tags. To change this behavior, adjust the Match type for Source Tags parameter.
Match type for Source Tags
List
The operator to filter Knowledge Sources by Source Tags. Select one of the following options:
AND — requires all Source Tags to match across multiple Knowledge Sources. This option is selected by default. Consider the following example: there are Knowledge Sources with Source Tags S-a, S-b, and S-c. When you use the AND operator to filter by S-a and S-b, only Sources with both Tags S-a and S-b are included in the search results.
OR — requires at least one Source Tag to match across multiple Knowledge Sources. Consider the following example: there are Knowledge Sources with Source Tags S-a, S-b, and S-c. When you use the OR operator to filter by S-a or S-b, any Source with either Tag S-a or S-b is included in the search results.
Condition
CognigyScript
Sets a condition that must be evaluated as true to activate the Knowledge tool. If false, the flow agent can’t access the tool during execution. For example, when using the Knowledge tool, you can enter a condition like context.productCategory === "appliances". With this condition, the flow agent checks the value of the context.productCategory key in the Context object, and if the key is missing or the value is different from "appliances", the flow agent can’t use the tool.
The Send Email tool lets your flow agent send emails directly to users. The Send Email tool has the capabilities and restrictions as the Email Notification Node but is more flexible. While the Email Notification Node sends emails at a fixed step in a Flow, the Send Email tool allows the flow agent to send emails dynamically, based on user input, conversation context, or instructions. This tool makes automation more flexible and minimizes extra Flow steps.
Tool
Parameter
Type
Description
Tool ID
CognigyScript
Defines the tool ID. This ID can contain only letters, numbers, underscores (_), or dashes (-). The default ID is send_email. If you use more than one Send Email tool, the tool ID provides context to trigger the correct Send Email tool. In this case, enter a clear tool ID for each Send Email tool, for example, send_order_confirmation.
Description
CognigyScript
Defines instructions to guide the flow agent to call the Send Email tool. The description field provides context to trigger the Send Email tool. The default description is Create and send a new email message.
Recipient
CognigyScript
A comma-separated list of email addresses to which the email will be sent.
Debug settings
Parameter
Type
Description
Debug Message when called
Toggle
Activates the output of a debug message when the tool is called to provide detailed information about the tool call.
Advanced
Parameter
Type
Description
Condition
CognigyScript
Sets a condition that must be evaluated as true to activate the Send Email tool. If false, the flow agent can’t access the tool during execution. For example, when using the Send Email tool, you can enter a condition like context.orderFinished === true. With this condition, the flow agent checks the value of the context.orderFinished key in the Context object, and if the key is missing or the value is different from true, the flow agent can’t use the tool.
CC Email Addresses
CognigyScript
A comma-separated list of email addresses that receive a copy of the email.
BCC Email Addresses
CognigyScript
A comma-separated list of email addresses that receive a blind copy of the email.
Email Priority
List
Sets the priority of the email: high, normal, or low. The default is normal.
The Handover to Flow Agent tool lets you transfer a conversation to another flow agent in the same or a different Flow. This approach ensures that different flow agents share the same conversation context and can handle specific tasks, and that multi-step conversations run smoothly across Flows.
Tool
Parameter
Type
Description
Tool ID
CognigyScript
Defines the tool ID. This ID can contain only letters, numbers, underscores (_), or dashes (-). The default ID is handover_to_ai_agent. If you use more than one Handover to Flow Agent tool, the tool ID provides context to trigger the correct Handover to Flow Agent tool. In this case, enter a clear tool ID for each Handover to Flow Agent tool, for example, handover_to_billing_agent.
Description
CognigyScript
Defines instructions to guide the flow agent to call the Handover to Flow Agent tool. The description field provides context to trigger the correct receiving flow agent. If you use more than one Handover to Flow Agent tool, enter clear instructions for the cases when each receiving flow agent should take over. For example, Handle product recommendations, Perform technical troubleshooting, or Assist with billing questions.
Target flow agent
List
Sets the target Flow to hand over to. By default, all Flows in the Project are displayed in the list. The selected Flow must contain a Flow Agent node.
Select Node
List
Sets the Flow Agent node to hand over to. The list includes only Flow Agent nodes.
Debug settings
Parameter
Type
Description
Debug Message when called
Toggle
Activates the output of a debug message when the tool is called to provide detailed information about the tool call.
Advanced
Parameter
Type
Description
Condition
CognigyScript
Sets a condition that must be evaluated as true to activate the Handover to Flow Agent tool. If false, the flow agent can’t access the tool during execution. For example, when using the Handover to Flow Agent tool, you can enter a condition like context.accountStatus === "locked". With this condition, the flow agent checks the value of the context.accountStatus key in the Context object, and if the key is missing or the value is different from "locked", the flow agent can’t use the tool.
The Handover to Human Agent tool lets you transfer a conversation to a human agent through handover providers. This tool allows your flow agents to refer complex tasks to a human agent if they can’t address the user’s request.
Tool
Parameter
Type
Description
Tool ID
CognigyScript
Defines the tool ID. This ID can contain only letters, numbers, underscores (_), or dashes (-). The default ID is handover_to_human_agent. If you use more than one Handover to Human Agent tool, the tool ID provides context to trigger the correct Handover to Human Agent tool. In this case, enter a clear tool ID for each Handover to Human Agent tool, for example, handover_to_billing_support.
Description
CognigyScript
Defines instructions to guide the flow agent to call the Handover to Human Agent tool. The description field provides context to trigger the handover. Enter clear instructions for the situations when the flow agent should refer to a human agent. For example, Use this tool if the user explicitly asks for a human. or Use this tool if you fail to answer the user's question three times.
Handover Provider
List
Sets a handover provider that you previously created in Deploy > Handover Providers. A section with handover provider-specific settings appears. Configure the handover accordingly:
Defines the message sent to the user when the handover is requested.
Repeat handover acceptance message
Toggle
Repeatedly outputs the text in Handover acceptance message if the user sends a message while waiting in the queue for an agent.
Cancel options
Parameter
Type
Description
Cancel intent
CognigyScript
Defines the intent the user must trigger to cancel the handover request.
Cancel button label
CognigyScript
Defines the text for a quick reply button that cancels the handover request when clicked.
On resolve options
Parameter
Type
Description
Flow continuation
List
Controls where the Flow continues after the human agent leaves the conversation. When the user needs assistance completing the Flow with the flow agent, the conversation is handed over to a human agent. The human agent can trigger the Flow by sending a /bot command as a reply in the conversation interface. For example, the user enters their date of birth in an incorrect format, and the flow agent can’t process the response. The conversation is handed over to a human agent, who identifies the incorrect format and sends the corrected date using /bot MM/DD/YYYY. The flow agent takes over and continues the Flow. You can select one of the following options to determine where the Flow continues:
Next node — the Flow continues from the first Node below the Human Agent Node, regardless of where the human agent stopped assisting the user. This option is selected by default.
Current agent inject entrypoint — the Flow continues from the Node where the human agent stopped assisting the user.
Send resolve event to agent
Toggle
Controls whether the Flow receives the conversation_status_changed event with the status set to resolved. This parameter is activated by default.
When the parameter is activated, the event is sent when the human agent leaves the conversation. As a result, the Flow continues immediately, without waiting for the user to send another message. If the Lookup Case Node is configured with Handover Status set to Completed, the Node can detect the completed handover and continue the Flow.
When the parameter is deactivated, the event isn’t sent when the human agent leaves the conversation. The Flow continues after the user sends their next message.
Event settings
Parameter
Type
Description
Send queue event
Toggle
Sends an event to the Flow once the handover is queued.
Send active event
Toggle
Sends an event to the Flow once the handover is active.
Debug settings
Parameter
Type
Description
Debug Message when called
Toggle
Activates the output of a debug message when the tool is called to provide detailed information about the tool call.
Advanced
Parameter
Type
Description
Condition
CognigyScript
Sets a condition that must be evaluated as true to activate the Handover to Human Agent tool. If false, the flow agent can’t access the tool during execution. For example, when using the Handover to Human Agent tool, you can enter a condition like context.issueType === "complaint". With this condition, the flow agent checks the value of the context.issueType key in the Context object, and if the key is missing or the value is different from "complaint", the flow agent can’t use the tool.
The Execute Workflow tool lets the flow agent execute another Flow. After the target Flow executes, the conversation returns to the flow agent.The target Flow inherits the Context object from the flow agent. If the Context object is changed during the target Flow execution, these changes are also available to the flow agent.How the Execute Workflow tool behaves at runtime
Result returned to the LLM. The tool always answers the LLM with the fixed text Workflow executed. The outputs and results of the target Flow aren’t returned to the LLM as the tool result. To let the flow agent use a result, write it to the Context in the target Flow. Messages from Say Nodes in the target Flow go directly to the user.
execution_reason parameter. The default tool parameters ask the LLM for an execution_reason. It isn’t passed to the target Flow as input. It appears only in the Debug Message when called output, together with the target Flow and Node. Use it as a debugging aid.
Calls through an MCP Server Endpoint. When an MCP client calls the tool, the target Flow runs and the client receives Workflow executed. No flow agent job is involved.
Loop protection. If the LLM keeps calling the same Execute Workflow tool, the tool can run up to four times for one user input. The fifth run stops with an Infinite Loop Detected error.
When the flow agent calls an Execute Workflow tool, the target Flow runs right away, in the same turn, and any messages it sends go straight to the user. When the Flow finishes, the flow agent continues in the same turn and generates its next reply. At that point it sees the tool result Workflow executed and the messages the Flow sent, but no other output from the Flow. If the Flow asks a question or waits for input, the flow agent continues only after the user responds. If the Flow ends with a Stop Node or jumps away with a Go To Node, the flow agent doesn’t continue.To test the tool independently:
Test the target Flow on its own. Open it in the Interaction Panel and start from the selected Entrypoint Node.
Test the tool call through the flow agent with Debug Message when called activated. You can then see execution_reason and the target.
Check that the Context values written by the target Flow are available to the flow agent when it continues in the same turn.
Parameter
Type
Description
Tool ID
CognigyScript
Defines the tool ID. This ID can contain only letters, numbers, underscores (_), or dashes (-). The default ID is execute_workflow. If you use more than one Execute Workflow tool, the tool ID provides context to trigger the correct Execute Workflow tool. In this case, enter a clear tool ID for each Execute Workflow tool, for example, execute_returns_workflow.
Description
CognigyScript
Defines instructions to guide the flow agent to call the Execute Workflow tool. The description field provides context to trigger the Execute Workflow tool. Describe when the flow agent should execute the target Flow. For example, Use this tool if the user explicitly asks to return a package.
Target Flow
List
Sets the target Flow that the flow agent executes when this tool is called. Click to open the target Flow.
Select Node
List
Sets the target Node that the flow agent executes when the target Flow is called. You must set the Node you want to select as an Entrypoint with the Set Entrypoint setting before you can select it.
Debug settings
Parameter
Type
Description
Debug Message when called
Toggle
Activates the output of a debug message when the tool is called to provide detailed information about the tool call.
Advanced
Parameter
Type
Description
Condition
CognigyScript
Sets a condition that must be evaluated as true to activate the Execute Workflow tool. If false, the flow agent can’t access the tool.
Parse Intents
Toggle
Sets whether Intents should be parsed in the target Flow. This parameter is inactive by default.
If this parameter is activated, Cognigy NLU reparses the Intents in the target Flow based on text in the Input object. Then, Cognigy NLU generates Intent scores using the Intents from the target Flow instead of the ones from the current Flow.
Parse Slots
Toggle
Sets whether Slots should be parsed in the target Flow. This parameter is inactive by default.
If this parameter is activated, Cognigy NLU reparses the Slots in the target Flow based on text in the Input object. Then, Cognigy NLU generates Slot scores using the Slots from the target Flow instead of the ones from the current Flow.
Absorb Context
Toggle
Sets whether the default Context object of the target Flow is used in the context of the Flow the flow agent is currently in.
If the default Context of the target Flow has a value, it is copied into the Context object of the flow agent as soon as the target Flow is executed.
Allow the flow agent to access Contact Profile information for the current user. Select one of the following options:
None – no memory.
Inherit from flow agent – use the settings specified in the flow agent creation settings. This option is selected by default.
Inject full Contact Profile – use all information from the Contact Profile.
Inject Contact Memories only – use information only from the Memories field in the Contact Profile.
Inject selected Profile fields – use information from specific fields in the Contact Profile.
Selected Profile Fields
Text
This parameter appears when the Inject selected Profile fields option is enabled. Enter specific fields from the Contact Profile for targeted data use. Specify the field using the Profile keys format and press Enter to apply it.
Short-Term Memory Injection
CognigyScript
Specify a static string or a dynamic value via CognigyScript to make available to the flow agent in the current turn.
Grounding knowledge
Parameter
Type
Description
Knowledge Injection
List
Use the Knowledge AI feature for the flow agent. Select one of the following options:
Never — don’t use the Knowledge Stores.
When Required — let the flow agent decide when querying the Knowledge Stores is required to help the user.
On each User Input — query the Knowledge Store(s) after each user input. Note that executing a query on every user input can lead to increased costs and latency.
Use flow agent knowledge
Toggle
This parameter appears when you select either When Required or On each User Input. Enable to use the Knowledge Store configured in the flow agent. The Knowledge Store configured within the flow agent creation settings will be used.
Use Job Knowledge
Toggle
This parameter appears when you select either When Required or On each User Input. Enable this option to configure a specific Knowledge Store for this particular job, allowing the flow agent to access job-specific data or resources.
Job Knowledge Store
List
This parameter appears when you select either When Required or On each User Input. This parameter appears when the Use Job Knowledge option is enabled. Select a specific Knowledge Store for this flow agent’s job.
Top K
Slider
This parameter appears when you select either When Required or On each User Input. Specify how many Knowledge Chunks to return. The default value is 3, and the maximum value is 5. Providing more results gives the flow agent additional context, but it also increases noise and token usage.
Source Tags
CognigyScript
This parameter appears when you select either When Required or On each User Input. The tags serve to refine the scope of your knowledge search, allowing you to include only the most pertinent sections of the knowledge base and, as a result, improve the accuracy of search outputs. Before specifying tags, ensure that they were provided during the creation of the Knowledge Sources. Add Tags by specifying each Tag separately and pressing ++enter++. The maximum number of tags is 5. When you specify multiple Source Tags, the Search Extract Output Node defaults to an AND operator, meaning it only considers Sources that have all the specified Tags. This approach ensures the search results are precise and highly relevant to the end user’s query. To change this behavior, go to the Match Types for Source Tags parameter.
Match type for Source Tags
Select
This parameter appears when you select either When Required or On each User Input. The operator to filter Knowledge Sources by Source Tags. Select one of the following options:
AND — the default value, requires all tags to match across multiple Knowledge Sources. Consider the following example: there are Knowledge Sources with Tags S-a, S-b, and S-c. When you use the AND operator to filter by S-a and S-b, only Sources with both Tags S-a and S-b will be included in the search results.
OR — requires at least one tag to match across multiple Knowledge Sources. Consider the following example: there are Knowledge Sources with Tags S-a, S-b, and S-c. When you use the OR operator to filter by S-a or S-b, any Source with either Tag S-a or S-b will be included in the search results.
Generate Search Prompt
Toggle
This parameter appears when you select On each User Input. This parameter is enabled by default and allows you to generate a context-aware search prompt before executing the knowledge search. Note that enabling this parameter may lead to increased cost and latency.
Storage & streaming options
Parameter
Type
Description
How to handle the result
Select
Determine how to handle the prompt result:
Store in Input — stores the flow agent result in the Input object. To print the result, use the AI Agent Output token or the configured Input key in a Say Node, or enable the Output Responses Immediately option.
Store in Context — stores the result in the Context object. To print the prompt result, refer to the configured Context key in a Say Node or enable the Output Responses Immediately option.
Stream to Output — streams the result directly into the output. This means that chunks coming from the prompt response will be output directly into the conversation chat as soon as a Stream Buffer Flush Token is matched, and you don’t need to use the AI Agent Output Token and Say Node. Store Copy in Input is active by default. When you deactivate it, the result isn’t stored in the Input or the Context.
Stream to Output is the default option.
Input Key to store Result
CognigyScript
The parameter appears when you select Store in Input, or when you select Stream to Output and Store Copy in Input is active. The result is stored in the input.aiAgentOutput object by default. You can specify another value, but the AI Agent Output token will not work if the value is changed.
Context Key to store Result
CognigyScript
The parameter appears when Store in Context is selected. The result is stored in the context.aiAgentOutput object by default. You can specify another key.
Stream Buffer Flush Tokens
Text Array
The parameter appears when Stream to Output is selected. It defines tokens that trigger the stream buffer to flush to the output. The tokens can be punctuation marks or symbols, such as \n. The default tokens are ., !, ?, and \n.
Output Responses Immediately
Toggle
The parameter appears when you select either Store in Input or Store in Context. This parameter allows you to output results immediately without using the Say Node and AI Agent Output token. This parameter is active by default.
Store Copy in Input
Toggle
The parameter appears when Stream to Output is selected. In addition to streaming the result to the output, store a copy in the Input object by specifying a value in the Input Key to store Result field. This parameter is activated by default.
Voice
The parameters after Voice Setting appear only when Voice Setting is set to Use Job Voice.
Parameter
Type
Description
Voice Setting
Select
Configure the voice settings for the flow agent job. This parameter determines how the flow agent selects the voice for text-to-speech (TTS) output. Select one of the following options:
- Use Job Voice – apply custom voice settings specific to this job, allowing the flow agent to adapt to the particular role it performs.
For example, if you create a marketing flow agent, the voice can be more engaging, friendly, and persuasive. However, if the same flow agent performs a different role, such as customer support, the voice might be more neutral, empathetic, and formal.
TTS Vendor
Dropdown
Select a TTS vendor from the list or add a custom one.
TTS ElevenLabs Model
Dropdown
Appears when ElevenLabs is selected in TTS Vendor. Select the TTS model for ElevenLabs. Each model has specific languages available. The default is eleven_multilingual_v2.
TTS OpenAI Model
Dropdown
Appears when OpenAI is selected in TTS Vendor. Select the TTS model for OpenAI: tts-1, tts-1-hd, or gpt-4o-mini-tts. The default is tts-1.
Custom (Vendor)
CognigyScript
The Custom parameter appears when you select Custom from the TTS Vendor list. Specify the custom TTS Vendor. For preinstalled providers, use all lowercase letters, for example, microsoft, google, aws. For custom providers, use the name that you specified on the Speech Service page in the Voice Gateway Self-Service Portal.
TTS Language
Dropdown
Define the language of the voice flow agent output. Ensure this language aligns with the preferred language of the end user.
Custom (Language)
CognigyScript
The Custom parameter appears when you select Custom from the TTS Language list. Specify the language of the flow agent output. The format depends on the option selected in the TTS vendor; check your TTS vendor documentation. The typical format is as follows: de-DE, fr-FR, en-US.
TTS Voice
Dropdown
Define the voice that should be used for the voice flow agent output. This parameter allows you to customize the flow agent’s voice by defining its tone, gender, style, and regional specifics, making conversations more personalized and aligned with your brand and target audience.
Custom (Voice)
CognigyScript
The Custom parameter appears when you select Custom from the TTS Voice list. Use this parameter to specify a custom voice, which is often required for region-specific voices. The format depends on the option selected in TTS Vendor and typically follows the pattern language-region-VoiceName. For example, de-DE-ConradNeural for German (Germany) male voice or en-US-JennyNeural for English (US) female voice.
TTS Label
CognigyScript
The alternative name of the TTS vendor is the one you specify in the Voice Gateway Self-Service Portal. If you have created multiple speech services from the same vendor, use the label to specify which service to use.
Disable TTS Audio Caching
Toggle
Disables TTS audio caching. By default, the setting is deactivated. In this case, previously requested TTS audio results are stored in the flow agent cache. When a new TTS request is made and the audio text has been previously requested, the flow agent retrieves the cached result instead of sending another request to the TTS provider. When the setting is activated, the flow agent caches TTS results but doesn’t use them. In this case, each request is directly sent to your speech provider. Note that disabling caching can increase TTS costs. For detailed information, contact your speech provider.
Tool settings
Parameter
Type
Description
Tool Choice
List
If supported by your LLM, determines how the flow agent selects tools:
Auto — tools are automatically selected by the flow agent when available and needed. This option is selected by default.
Required — your flow agent always uses one of its tools.
None — your flow agent doesn’t use tools.
Use Strict mode
Toggle
If supported by the LLM provider, ensures that the arguments passed to a tool call precisely match the expected parameters. Activating this mode can help prevent errors. However, it might cause a slight delay in the response, especially during the first call after making changes.
Image handling
Parameter
Type
Description
Process Images
Toggle
Allows the flow agent to read and understand image attachments. Ensure that your LLM supports image processing; refer to your LLM provider’s documentation. In addition, ensure that attachments are supported by and activated in your Endpoint, for example, Webchat.
Images in Transcript
List
Sets how images uploaded before the last turn are handled to reduce token usage. You can select the following options:
Minify — reduces the size of these images to 512x512px. This option is selected by default.
Drop — excludes the images.
Keep — sends the maximum size (this option consumes more tokens).
Limitations and token consumption depend on the LLM used.
Advanced
Parameter
Type
Description
LLM
List
Select a model that supports the Flow Agent node feature. The selected Default model is the model assigned to AI Agents in Manage > AI & Voice Providers > Language Models > Assignments. Select the model that you added earlier while configuring the Agentic AI feature. This model will manage your flow agent.
Flow agent base version
List
Select the base version of the flow agent to use:
1.0 — select a specific version, such as 1.0, to ensure stability and avoid potential breaking changes. Use this version in production environments or for critical workflows. The version dropdown will be updated as future versions of the Flow Agent node are released.
Latest — use the most recent version of the Flow Agent node. While this version ensures access to the latest features, it may cause breaking changes that require manual updates.
When upgrading to a fixed version or switching to the latest, always test your flow agent carefully to ensure it works with the selected version.
Timeout
Number
Sets the maximum number of milliseconds to wait for a response from the LLM provider. The default is 8000 ms.
Maximum Completion Tokens
Slider
Define the maximum number of tokens that can be used during a process to manage costs. However, if the limit is set too low, the output may be incomplete, as the process could be cut off before it finishes. For example, if you set the maximum tokens to 100, the model will stop generating content once it reaches 100 tokens. This number would be roughly equal to 100 words, depending on the language and tokenization method. The default is 4000, and the range is 100–8000. If your installation has deprecated this parameter, migrate it to Custom Model Options in the Custom Options section.
Temperature
Slider
Defines the sampling temperature, which ranges between 0 and 1. Higher values, such as 0.8, make the output more random, while lower values, such as 0.2, make it more focused and deterministic. The default is 0.7. If your installation has deprecated this parameter, migrate it to Custom Model Options in the Custom Options section.
Include Rich Media Context
Toggle
Controls whether the text from the Textual Description field in Say, Question, and Optional Questions Nodes is added to the flow agent’s prompt. This text provides flow agents with additional information, improving their responses.
If you have filled in a Textual Description field in other Nodes, this text is added to the prompt as context for rich media, such as Text with Quick Replies. If the Textual Description field is empty, the button titles and alt text from the rich media are added to the prompt. By default, the Include Rich Media Context parameter is active. When this parameter is inactive, nothing related to the rich media is added to the prompt.
Examples:
If Textual Description is filled in:
Textual Description: Select your preferred delivery option: Standard Delivery or Express Delivery.
Quick Replies buttons: Standard Delivery, Express Delivery.
Context added to the prompt: Select your preferred delivery option: Standard Delivery or Express Delivery.
If Textual Description is empty:
Textual Description: empty.
Quick Replies buttons: Standard Delivery, Express Delivery.
Context added to the prompt: Standard Delivery, Express Delivery.
If Include Rich Media Context is inactive:
No information related to the rich media is added to the prompt.
Ignore deprecated parameters
Toggle
This parameter appears only if your installation has deprecated the Maximum Completion Tokens and Temperature parameters. Ignores these parameters. This parameter is inactive by default.
Custom options
Parameter
Type
Description
Custom Model Options
JSON
Sends custom options to the LLM. These options override the model options set in the Node. For the available options, refer to the API specification of your LLM provider. The default is {}.
Custom Request Options
JSON
Sends custom request options to the LLM provider. The default is {}.
Error handling
Parameter
Type
Description
Log to System Logs
Toggle
Logs errors to the system logs. They can be viewed on the Logs page of your Project. This parameter is inactive by default.
Store in Input
Toggle
Store errors in the Input object. This parameter is active by default.
Select Error Handling Approach
List
Sets how Flow execution behaves if the Flow Agent node throws an error. You can select one of the following options:
Stop Flow Execution — terminates the current Flow execution.
Continue Flow Execution — allows the Flow to continue executing, bypassing the error and proceeding to the next steps.
Go to Node — redirects Flow execution to a specific Node, which can be useful for error recovery or customized error handling.
Go to Node
List
This parameter appears when you select Go to Node in Select Error Handling Approach. Sets the Flow that includes the Node to which you want to redirect Flow execution.
Select Node
List
This parameter appears when Go to Node in Select Error Handling Approach is selected. Sets the Node to which you want to redirect Flow execution.
Error Message (optional)
CognigyScript
This parameter appears when you select Continue Flow Execution in Select Error Handling Approach. Add a message to output if the Flow Agent node fails.
Debug settings
Parameter
Type
Description
Log Job Execution
Toggle
Send a debug message with the current flow agent job configuration. The message appears in the Interaction Panel when debug mode is enabled. This parameter is active by default.
Log Knowledge Results
Toggle
Send a debug message containing the result from a knowledge search. The message appears in the Interaction Panel when debug mode is enabled. This parameter is inactive by default.
Show Token Count
Toggle
Sends a debug message containing the input, output, and total token count. The message appears in the Interaction Panel when debug mode is active. Cognigy uses the GPT-3 tokenizer algorithm, so actual token usage may vary depending on the model used. This parameter is inactive by default.
Log System Prompt
Toggle
Sends a debug message containing the system prompt sent to the LLM provider and the subsequent completion. The message appears in the Interaction Panel when debug mode is active. This parameter is inactive by default.
Log LLM Latency
Toggle
Sends a debug message containing key latency metrics for the request to the model, including the time taken for the first output and the total time to complete the request. The message appears in the Interaction Panel when debug mode is enabled. This parameter is inactive by default.
Send request logs to Webhook
Toggle
Sends the request sent to the LLM provider and the subsequent completion to a webhook service, including metadata, the request body, and custom logging data. With this parameter, you can use a webhook service to view detailed logs of the request to the LLM. This parameter is inactive by default.
Webhook URL
CognigyScript
This parameter appears when you toggle on Send request logs to Webhook. Sets the URL of the webhook service to send the request logs to. Logging requires a URL.
Custom Logging Data
CognigyScript
This parameter appears when you toggle on Send request logs to Webhook. Sets custom data to send with the request to the webhook service. You can use CognigyScript to reference any value or object.
Condition for Webhook Logging
CognigyScript
This parameter appears when you toggle on Send request logs to Webhook. Sets a condition that controls when Cognigy writes the logs to the webhook. Cognigy logs the request only if the condition is empty or evaluates to true.
Webhook Headers
Input fields
Sets the headers to send with the request to the webhook service. You can switch between the graphical and JSON editors to enter the header key and value either in the Key and Value fields or in the code field in JSON format. When using the JSON editor, follow the JSON Schema specification.
Log Tool Definitions
Toggle
Sends a debug message containing information about the configured flow agent tools. The message appears in the Interaction Panel when debug mode is enabled. This parameter is inactive by default.
To test and refine the job settings, use the Interaction Panel on the right side of the screen.To view the flow agent’s Flow in detail, click Advanced Editor in the upper-right corner.One flow agent can have multiple jobs. To add another job, click Add Job in the bottom-left corner. Note that each job corresponds to one Flow.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Cognigy Documentation","colors":{"primary":"#1863DC","light":"#3694FC","dark":"#1863DC"},"logo":{"light":"https://mintcdn.com/cognigy-15abf2ba/nRSdAucuLUeDXgwa/_assets/NiCE-Cognigy-black-blue.svg?fit=max\u0026auto=format\u0026n=nRSdAucuLUeDXgwa\u0026q=85\u0026s=cbef35aa255935ab747a98d2eb4eead4","dark":"https://mintcdn.com/cognigy-15abf2ba/nRSdAucuLUeDXgwa/_assets/NiCE-Cognigy-white-blue.svg?fit=max\u0026auto=format\u0026n=nRSdAucuLUeDXgwa\u0026q=85\u0026s=33646ad2cfa417ada7987372f8b50a8b"},"favicon":"https://mintcdn.com/cognigy-15abf2ba/Tr3483fnN5xY5EFS/_assets/favicon.webp?fit=max\u0026auto=format\u0026n=Tr3483fnN5xY5EFS\u0026q=85\u0026s=3dc93a88956746e5b4c996fdbf97cd3f","background":{"color":{"light":"#FFFFFF","dark":"#21212B"}},"navbar":{"primary":{"type":"button","label":"See a demo","href":"https://www.cognigy.com/get-demo"}},"footer":{"socials":{"facebook":"https://www.facebook.com/cognigy","linkedin":"https://www.linkedin.com/company/nicecognigy","github":"https://github.com/Cognigy","x":"https://x.com/cognigy","youtube":"https://www.youtube.com/c/Cognigy"},"links":[{"header":"Solutions","items":[{"label":"Enterprise CX","href":"https://www.cognigy.com/solutions/ai-agents"},{"label":"Voice","href":"https://www.cognigy.com/solutions/voice-ai-agents"},{"label":"Chat and messaging","href":"https://www.cognigy.com/solutions/digital-chat-ai-agents"},{"label":"Agent Copilot","href":"https://www.cognigy.com/solutions/agent-assist"},{"label":"Contact centers","href":"https://www.cognigy.com/solutions/cognigy-contact-center-integrations"}]},{"header":"Platform","items":[{"label":"Cognigy overview","href":"https://www.cognigy.com/product/cognigy-ai"},{"label":"Agentic AI","href":"https://www.cognigy.com/product/agentic-ai"},{"label":"Knowledge AI","href":"https://www.cognigy.com/product/cognigy-knowledge-ai"},{"label":"Voice connectivity","href":"https://www.cognigy.com/product/cognigy-voice-gateway"},{"label":"Product updates","href":"https://www.cognigy.com/product-updates"}]},{"header":"Resources","items":[{"label":"Success stories","href":"https://www.cognigy.com/customer-success-stories"},{"label":"Downloads","href":"https://www.cognigy.com/library"},{"label":"Blog","href":"https://www.cognigy.com/blog"},{"label":"Trust center","href":"https://trust.cognigy.com/"},{"label":"Glossary","href":"https://www.cognigy.com/glossary"},{"label":"Contact support","href":"/help/get-help"},{"label":"Status","href":"https://status.cognigy.ai/"}]},{"header":"Company","items":[{"label":"About Cognigy","href":"https://www.cognigy.com/about"},{"label":"Events","href":"https://www.cognigy.com/events"},{"label":"News","href":"https://www.cognigy.com/news"},{"label":"Careers","href":"https://www.cognigy.com/careers"},{"label":"Contact","href":"https://www.cognigy.com/contact-us"},{"label":"Privacy Policy","href":"https://www.cognigy.com/privacy-policy"},{"label":"Legal Notice","href":"https://www.cognigy.com/legal-notice"}]}]},"seo":{"metatags":{"canonical":"https://docs.cognigy.com/"}},"fonts":{"heading":{"family":"Be Vietnam Pro"},"body":{"family":"Be Vietnam Pro"}},"icons":{"library":"lucide"},"styling":{"eyebrows":"section","codeblocks":"system","latex":false},"integrations":{"clarity":{"projectId":"rysaqo5y4v"},"ga4":{"measurementId":"G-DQ0NQDZTS1"},"gtm":{"tagId":"GTM-MKVC98WK"},"telemetry":{"enabled":true},"cookies":{"key":"docs_cookie_consent","value":"accepted"}},"banner":{"content":"You're viewing the documentation for the new NiCE Cognigy platform. For NiCE Cognigy Classic, see the [Classic documentation](https://docs-classic.cognigy.com).","dismissible":true},"errors":{"404":{"redirect":true}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","add-mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cognigy-15abf2ba","hasAudioNarration":false,"actualSubdomain":"cognigy-15abf2ba","customDomains":["docs.cognigy.com"],"gitSource":{"type":"github","owner":"cognigy","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED","enabled":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af4a7e2dad429eb59800e08","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"References","count":658},{"language":"default","tag":"API reference","count":437},{"language":"default","tag":"Core resources","count":382},{"language":"default","tag":"Documentation","count":303},{"language":"default","tag":"Platform reference","count":239},{"language":"default","tag":"Resource reference","count":169},{"language":"default","tag":"Cognigy","count":141},{"language":"default","tag":"Node reference","count":106},{"language":"default","tag":"Click To Call","count":50},{"language":"default","tag":"Live Agent","count":49}],"searchSettings":{"isFiltersEnabled":true,"showContentSnippets":true,"maxResults":6}},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":true},"customCss":[{"filePath":"styles.css","href":"/_mintlify/custom/cognigy-15abf2ba/5110d40e844d6c3f/styles.css"},{"filePath":"cognigy.css","content":"html.dark [data-cognigy-webchat-root] [data-cognigy-webchat].webchat .webchat-privacy-notice-markdown-container{color:black}html.dark [data-cognigy-webchat-root] [data-cognigy-webchat].webchat #webchatInputMessageInputInTextMode{color:black!important}html.dark [data-cognigy-webchat-root] [data-cognigy-webchat].webchat #webchatRatingInput{background-color:white!important}html.dark [data-cognigy-webchat-root] .webchat-rating-widget-title{color:black}"},{"filePath":"custom-cookie-banner.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* math */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2');\n unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;\n}\n/* symbols */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2');\n unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* math */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2');\n unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;\n}\n/* symbols */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2');\n unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n#cookie-banner{position:fixed;bottom:40px;left:40px;right:auto;width:440px;max-width:calc(100vw - 32px);box-sizing:border-box;background:#FFFFFF;color:#212121;border:1px solid #F4F4F4;border-radius:6px;box-shadow:0 -1px 10px 0 rgba(172, 171, 171, 0.3);padding:0;font-size:0.875rem;line-height:1.6;font-family:var(--font-family-body-custom, Roboto, sans-serif);-webkit-font-smoothing:antialiased;display:flex;align-items:center;z-index:9999}.cookie-banner-content{display:flex;flex-direction:column;align-items:stretch;padding:20px;gap:16px;width:100%;box-sizing:border-box}.cookie-banner-text{flex:1;min-width:0}.cookie-banner-title{margin:0 0 8px 0;font-size:1.125rem;line-height:1.4;font-weight:700;text-transform:uppercase;color:#212121;font-family:var(--font-family-headings-custom, Roboto, sans-serif);-webkit-font-smoothing:antialiased}.cookie-banner-description{font-size:0.875rem;line-height:1.6;font-weight:500;color:#212121;font-family:var(--font-family-body-custom, Roboto, sans-serif);-webkit-font-smoothing:antialiased}.cookie-banner-link{color:#1863DC;text-decoration:underline}.cookie-banner-accept-btn{background:#1863DC;color:#FFFFFF;border:2px solid #1863DC;padding:0 24px;height:44px;width:100%;cursor:pointer;font-size:0.875rem;font-weight:500;line-height:1;font-family:var(--font-family-body-custom, Roboto, sans-serif);-webkit-font-smoothing:antialiased;border-radius:2px;margin:0}.cookie-banner-accept-btn:hover{background:#1553B8;border-color:#1553B8}.cookie-banner-accept-btn:focus-visible,.cookie-banner-link:focus-visible{outline:2px solid #1863DC;outline-offset:2px}html.dark #cookie-banner{background:#2A2A36;color:#FFFFFF;border-color:rgba(255, 255, 255, 0.12);box-shadow:0 4px 24px 0 rgba(0, 0, 0, 0.4)}html.dark .cookie-banner-title,html.dark .cookie-banner-description{color:#FFFFFF}html.dark .cookie-banner-link{color:#5AA8FD}html.dark .cookie-banner-accept-btn{background:#3694FC;border-color:#3694FC;color:#21212B}html.dark .cookie-banner-accept-btn:hover{background:#5AA8FD;border-color:#5AA8FD}html.dark .cookie-banner-accept-btn:focus-visible,html.dark .cookie-banner-link:focus-visible{outline-color:#3694FC}@media (max-width: 480px){#cookie-banner{left:16px;bottom:16px}}html[data-banner-state=\"visible\"] body{padding-bottom:0}html[data-banner-state=\"hidden\"] body{padding-bottom:0;transition:padding-bottom 0.3s ease}"},{"filePath":"single-page-viewer.css","content":".single-page-viewer-container{position:relative;margin-bottom:1rem;transition:all 0.3s ease;box-sizing:border-box}.single-page-viewer-wrapper{border:1px solid rgba(0, 0, 0, 0.1);border-radius:8px;padding:1rem;background:rgba(255, 255, 255, 0.7);backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);position:relative;box-sizing:border-box}html.dark .single-page-viewer-wrapper{border-color:rgba(255, 255, 255, 0.1);background:rgba(0, 0, 0, 0.1)}.single-page-viewer-controls{display:flex;justify-content:flex-end;align-items:center;margin-bottom:0.75rem;gap:1rem;flex-wrap:wrap}.single-page-viewer-hint{font-size:0.875rem;color:rgba(0, 0, 0, 0.6);display:flex;align-items:flex-start;gap:0.5rem;margin-right:auto;flex:1 1 0;min-width:200px}html.dark .single-page-viewer-hint{color:rgba(255, 255, 255, 0.7)}.single-page-viewer-iframe-wrapper{overflow-y:auto;overflow-x:hidden;width:100%;height:25rem!important;position:relative;border-radius:4px;border:1px solid rgba(0, 0, 0, 0.1);background-color:white;scrollbar-width:none;-ms-overflow-style:none}.single-page-viewer-iframe-wrapper::-webkit-scrollbar{display:none}html.dark .single-page-viewer-iframe-wrapper{border-color:rgba(255, 255, 255, 0.15)}.single-page-viewer-scale{transform-origin:top left;transition:transform 0.2s ease}.single-page-viewer-iframe{width:100%;height:100%!important;border:none;display:block}.single-page-viewer-click-blocker{position:absolute;top:0;left:0;right:0;bottom:0;z-index:10;pointer-events:none;cursor:default;background:transparent}.single-page-viewer-iframe-wrapper:has(.single-page-viewer-iframe[srcdoc]) .single-page-viewer-click-blocker{display:none}.single-page-viewer-iframe-wrapper{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}"},{"filePath":"_assets/unified-widget/unified-widget.css","content":".unified-widget,.unified-widget-menu-fab{--widget-bg: #ffffff;--widget-surface: #f4f4f5;--widget-elevated: #e4e4e7;--widget-border: rgba(0, 0, 0, .08);--text-primary: #18181b;--text-secondary: #71717a;--close-bg: rgba(0, 0, 0, .06);--close-bg-hover: rgba(0, 0, 0, .12);--close-color: #3f3f46;--float-btn-bg: var(--widget-surface);--float-btn-color: var(--text-primary);--float-btn-border: #126BCE;--widget-outline: #126BCE;--widget-glass: rgba(255, 255, 255, .45);--widget-glass-border: rgba(0, 0, 0, .08);--bubble-bg: #ffffff;--bubble-shadow-ring: rgba(18, 107, 206, .12);--bubble-shadow-soft: rgba(0, 0, 0, .12);--bubble-shadow-close: rgba(0, 0, 0, .06);--voice-backdrop: rgba(255, 255, 255, .15);--accent-voice: #3b82f6;--accent-chat: #126BCE;--tab-icon-color: #126BCE;--pill-bg: #ffffff;--pill-border: rgba(0, 0, 0, .1);--pill-shadow: 0 2px 8px rgba(0, 0, 0, .08);--soundwave-color: #126BCE;--radius: 16px;--radius-sm: 12px;--font: \"Geist\", \"Inter\", -apple-system, BlinkMacSystemFont, sans-serif}[data-theme=dark] .unified-widget,[data-theme=dark] .unified-widget-menu-fab,.unified-widget[data-theme=dark],.unified-widget-menu-fab[data-theme=dark]{--widget-bg: #1e1e22;--widget-surface: #26262b;--widget-elevated: #2e2e34;--widget-border: rgba(255, 255, 255, .06);--text-primary: #ffffff;--text-secondary: #a1a1aa;--close-bg: #2e2e34;--close-bg-hover: #44444c;--close-color: #ffffff;--float-btn-bg: var(--widget-surface);--float-btn-color: var(--text-primary);--float-btn-border: #126BCE;--widget-outline: #126BCE;--widget-glass: rgba(30, 30, 34, .92);--widget-glass-border: rgba(255, 255, 255, .08);--bubble-bg: #232328;--bubble-shadow-ring: rgba(18, 107, 206, .15);--bubble-shadow-soft: rgba(0, 0, 0, .4);--bubble-shadow-close: rgba(0, 0, 0, .25);--voice-backdrop: rgba(30, 30, 34, .2);--accent-chat: #126BCE;--tab-icon-color: #126BCE;--soundwave-color: var(--accent-chat);--pill-bg: var(--widget-surface);--pill-border: transparent;--pill-shadow: none}#cognigy-unified-widget-root{pointer-events:none}#cognigy-unified-widget-root .unified-widget,#cognigy-unified-widget-root .unified-widget-menu-fab{pointer-events:auto}.unified-widget{position:relative;font-family:var(--font);background:var(--widget-glass);backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);color:var(--text-primary);border-radius:var(--radius);overflow:hidden;border:none;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;width:min(400px,calc(100vw - 48px));max-width:400px;height:580px;max-height:90vh;display:flex;flex-direction:column}#cognigy-unified-widget-root[data-layout=dock] .unified-widget{width:calc(100% - 10px);max-width:none;height:calc(100% - 6px);max-height:none;margin:2px 5px 4px;border-radius:var(--radius);border:none;box-shadow:0 0 0 1px var(--widget-border);backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);background:var(--widget-glass)}[data-theme=dark] .unified-widget,.unified-widget[data-theme=dark]{box-shadow:none;border:1px solid rgba(255,255,255,.06)}.unified-widget__tabs{display:flex;align-items:center;justify-content:center;padding:10px 12px 6px;flex-shrink:0;position:relative}.unified-widget__tab-group{display:flex;background:var(--widget-elevated);border-radius:9999px;padding:3px;gap:2px}.unified-widget__tab{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:9999px;border:none;background:transparent;color:var(--text-secondary);font-family:var(--font);font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.unified-widget__tab:hover{color:var(--text-primary)}.unified-widget__tab--active{background:var(--widget-glass);color:var(--text-primary)}.unified-widget__tab svg{flex-shrink:0;opacity:.55;transition:opacity .15s}.unified-widget__tab svg{stroke:var(--tab-icon-color)}.unified-widget__tab--active svg{opacity:1}.unified-widget__tab-close{position:absolute;right:12px;width:30px;height:30px;border-radius:50%;border:none;background:var(--close-bg);color:var(--close-color);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.unified-widget__tab-close:hover{background:var(--close-bg-hover)}.unified-widget__switch-warning{flex-shrink:0;text-align:center;font-family:var(--font);font-size:.75rem;color:var(--text-secondary);background:var(--widget-elevated);padding:8px 16px;cursor:pointer;animation:warning-slide-in .25s ease}@keyframes warning-slide-in{0%{opacity:0;max-height:0;padding:0 16px}to{opacity:1;max-height:50px;padding:8px 16px}}.unified-widget__footer{flex-shrink:0;text-align:center;font-family:var(--font);font-size:.7rem;color:var(--text-secondary);opacity:.6;padding:6px 0}.unified-widget__footer a{color:var(--text-secondary);text-decoration:underline;text-underline-offset:2px}.unified-widget__footer a:hover{color:var(--text-primary)}.unified-widget__body{flex:1;min-height:0;flex-direction:column;overflow:hidden}.voice-view--layout{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;overflow:clip}.voice-view__transcript-wrap{flex:1;width:100%;margin:0 auto;display:flex;flex-direction:column;overflow-y:auto;padding:28px 16px 8px;min-height:0;background:transparent;color:var(--text-primary);scrollbar-width:none;-ms-overflow-style:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0px,black 24px,black calc(100% - 40px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0px,black 24px,black calc(100% - 40px),transparent 100%)}.voice-view__transcript-wrap::-webkit-scrollbar{display:none}.voice-view__hint{font-size:.875rem;color:var(--text-secondary);margin:0}.voice-view__error{font-size:.875rem;color:#dc2626;margin:0 0 12px}.voice-view__transcript-content{margin-top:auto;width:100%}.voice-view__message{display:flex;flex-direction:column;margin-bottom:12px;animation:voice-message-in .34s cubic-bezier(.22,1,.36,1)}.voice-view__message--user{align-items:flex-end}@keyframes voice-message-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.voice-view__message-agent{font-size:.6rem;font-weight:600;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:3px;padding-left:2px}.voice-view__message--user .voice-view__message-agent{padding-left:0;padding-right:2px}.voice-view__message--bot .voice-view__message-agent{font-size:.65rem;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-chat)}.voice-view__message-bubble{display:inline-block;max-width:min(85%,320px);padding:10px 14px;border-radius:16px 16px 16px 4px;background:var(--widget-surface);color:var(--text-primary);font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}.voice-view__message--user .voice-view__message-bubble{background:var(--accent-chat);color:#fff;border-radius:16px 16px 4px}.voice-view__message-text{margin:0;font-size:inherit;line-height:inherit;color:inherit;overflow-wrap:anywhere}.voice-view__message-text>:first-child{margin-top:0}.voice-view__message-text>:last-child{margin-bottom:0}.voice-view__message-text p{margin:0 0 .5em}.voice-view__message-text ul,.voice-view__message-text ol{margin:.35em 0;padding-left:1.25em}.voice-view__message-text li{margin:.15em 0}.voice-view__message-text a{color:var(--accent-chat);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-word}.voice-view__message-text a:hover{opacity:.85}.voice-view__message-text strong{font-weight:700}.voice-view__message-text code{padding:1px 4px;border-radius:4px;background:#0000001a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em;overflow-wrap:anywhere}.voice-view__pill{position:relative;display:flex;align-items:center;gap:10px;width:calc(100% - 32px);padding:8px;margin:0 auto 16px;background:var(--pill-bg, var(--float-btn-bg));border:1px solid var(--pill-border, transparent);border-radius:9999px;flex-shrink:0;box-shadow:var(--pill-shadow, none)}.voice-view__pill-left{flex-shrink:0;display:flex;align-items:center;gap:10px}.voice-view__pill-avatar-wrap{padding:2px;border-radius:50%;background:var(--accent-chat);flex-shrink:0}.voice-view__pill-avatar-wrap--no-border{background:transparent}.voice-view__pill-avatar-wrap--in-call{background:linear-gradient(135deg,var(--accent-voice),var(--accent-chat))}.voice-view__pill-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--accent-voice),var(--accent-chat));display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;letter-spacing:.04em}.voice-view__pill-avatar--in-call{background:#18181b}.voice-view__pill-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;animation:pill-info-in .3s ease}@keyframes pill-info-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.voice-view__pill-name{font-size:1rem;font-weight:600;color:var(--text-primary);line-height:1.1}.voice-view__pill-status{font-size:.7rem;color:var(--text-secondary);letter-spacing:.04em}.voice-view__pill-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.voice-view__pill-call{width:42px;height:42px;border-radius:50%;border:none;background:#22c55e;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s}.voice-view__pill-call:hover{background:#16a34a}.voice-view__pill-call:active{transform:scale(.96)}.voice-view__pill-call svg{width:20px;height:20px}.voice-view__pill-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--widget-elevated);color:var(--float-btn-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s}.voice-view__pill-btn:hover{background:var(--widget-border)}.voice-view__pill-btn svg{width:17px;height:17px}.voice-view__pill-btn--muted svg{color:#ef4444}.voice-view__pill-btn--end{width:42px;height:42px;background:#ef4444;color:#fff}.voice-view__pill-btn--end:hover{background:#dc2626}.voice-view__pill-btn-svg--hangup{transform:rotate(135deg)}.voice-view__pill-btn--end svg{width:20px;height:20px}.voice-soundwave{display:flex;align-items:center;justify-content:center;gap:2px;width:100%;height:100%}.voice-soundwave__bar{width:3px;height:3px;border-radius:2px;background:var(--soundwave-color)}.voice-soundwave--js .voice-soundwave__bar{transition:none}.voice-soundwave--active .voice-soundwave__bar{animation:soundwave-bounce .8s ease-in-out infinite alternate}.voice-soundwave--active .voice-soundwave__bar:nth-child(1),.voice-soundwave--active .voice-soundwave__bar:nth-child(5){animation-name:soundwave-bounce-low}.voice-soundwave--active .voice-soundwave__bar:nth-child(2),.voice-soundwave--active .voice-soundwave__bar:nth-child(4){animation-name:soundwave-bounce-mid}@keyframes soundwave-bounce{0%{height:3px}to{height:36px}}@keyframes soundwave-bounce-mid{0%{height:3px}to{height:19px}}@keyframes soundwave-bounce-low{0%{height:3px}to{height:10px}}.voice-view__pill-timer{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap;min-width:38px}.voice-view__pill-input-wrap{flex:1;min-width:0;display:flex;align-items:center;gap:6px;background:var(--widget-elevated);border-radius:9999px;padding:0 6px 0 14px;height:38px;border:1px solid var(--widget-glass-border);transition:border-color .15s,opacity .3s,transform .3s;animation:pill-input-in .35s cubic-bezier(.22,1,.36,1)}@keyframes pill-input-in{0%{opacity:0;transform:scaleX(.85)}to{opacity:1;transform:scaleX(1)}}.voice-view__pill-input-wrap:focus-within{border-color:var(--widget-elevated)}.voice-view__pill-input{flex:1;min-width:0;background:transparent;border:none;outline:none;font-family:var(--font);font-size:.8125rem;color:var(--text-primary);padding:0}.voice-view__pill-input::placeholder{color:var(--text-secondary);opacity:.55}.voice-view__pill-send{width:26px;height:26px;border-radius:50%;border:none;background:var(--float-btn-border);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .1s;padding:0}.voice-view__pill-send:hover{transform:scale(1.08)}.voice-view__pill-send:active{transform:scale(.92)}.chat-view{display:flex;flex-direction:column;flex:1;min-height:0}.chat-view__messages{flex:1;overflow-y:auto;padding:28px 16px 8px;-webkit-mask-image:linear-gradient(to bottom,transparent 0px,black 24px,black calc(100% - 40px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0px,black 24px,black calc(100% - 40px),transparent 100%);display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--widget-elevated) transparent}.chat-view__messages::-webkit-scrollbar{width:4px}.chat-view__messages::-webkit-scrollbar-track{background:transparent}.chat-view__messages::-webkit-scrollbar-thumb{background:var(--widget-elevated);border-radius:4px}.chat-view__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-secondary);font-size:.875rem;padding:40px 24px;gap:12px}.chat-view__empty p{margin:0;opacity:.7}.chat-view__msg-group{animation:chat-msg-in .3s cubic-bezier(.22,1,.36,1)}@keyframes chat-msg-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.chat-view__msg{margin-bottom:16px}.chat-view__msg--user{display:flex;flex-direction:column;align-items:flex-end}.chat-view__msg-label{font-size:.65rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-chat);margin-bottom:3px;padding-left:2px}.chat-view__msg-label--user{text-transform:none;letter-spacing:normal;color:var(--text-secondary);padding-left:0;padding-right:2px}.chat-view__bubble{display:inline-block;max-width:85%;border-radius:18px;padding:11px 16px;font-size:.875rem;line-height:1.55;word-break:break-word}.chat-view__bubble--bot{background:transparent;border:none;color:var(--text-primary);text-align:left;border-top-left-radius:6px;padding-left:0;padding-right:0}.chat-view__bubble--user{background:var(--accent-chat);color:#fff;margin-left:auto;border-bottom-right-radius:6px}.chat-view__bubble--bot p{margin:0 0 .5em}.chat-view__bubble--bot p:last-child{margin-bottom:0}.chat-view__bubble--bot a{color:var(--accent-chat);text-decoration:underline}.chat-view__bubble--bot code{background:var(--widget-elevated);padding:1px 5px;border-radius:4px;font-size:.85em}.chat-view__bubble--bot pre{background:var(--widget-elevated);padding:10px 12px;border-radius:8px;overflow-x:auto;margin:6px 0}.chat-view__bubble--bot pre code{background:none;padding:0}.chat-view__image{max-width:85%;max-height:220px;border-radius:12px;margin-top:6px;object-fit:cover}.chat-view__btn-group{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-width:85%}.chat-view__btn{display:block;width:100%;padding:9px 14px;border-radius:10px;border:1.5px solid var(--float-btn-border);background:transparent;color:var(--float-btn-border);font-family:var(--font);font-size:.8125rem;font-weight:600;cursor:pointer;text-align:center;transition:background .15s,color .15s}.chat-view__btn:hover{background:var(--float-btn-border);color:#fff}.chat-view__btn--sm{padding:6px 10px;font-size:.75rem;border-radius:8px;width:auto}.chat-view__gallery{display:flex;gap:10px;overflow-x:auto;padding:8px 0 4px;scrollbar-width:none;-ms-overflow-style:none}.chat-view__gallery::-webkit-scrollbar{display:none}.chat-view__gallery-card{min-width:200px;max-width:220px;border-radius:12px;border:1px solid var(--widget-glass-border);background:var(--bubble-bg);overflow:hidden;flex-shrink:0}.chat-view__gallery-img{width:100%;height:120px;object-fit:cover}.chat-view__gallery-body{padding:10px 12px;display:flex;flex-direction:column;gap:4px}.chat-view__gallery-title{font-size:.85rem;font-weight:600;color:var(--text-primary)}.chat-view__gallery-sub{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.chat-view__list{display:flex;flex-direction:column;gap:1px;background:var(--widget-glass-border);border-radius:12px;overflow:hidden;margin-top:8px;max-width:85%}.chat-view__list-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bubble-bg)}.chat-view__list-img{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0}.chat-view__list-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-view__list-title{font-size:.85rem;font-weight:600;color:var(--text-primary)}.chat-view__list-sub{font-size:.75rem;color:var(--text-secondary)}.chat-view__qr-wrap{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 10px}.chat-view__qr{padding:7px 14px;border-radius:9999px;border:1.5px solid var(--float-btn-border);background:transparent;color:var(--float-btn-border);font-family:var(--font);font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.chat-view__qr:hover{background:var(--float-btn-border);color:#fff}.chat-view__typing{display:inline-flex!important;align-items:center;gap:4px;padding:12px 0}.chat-view__dot{width:7px;height:7px;border-radius:50%;background:var(--text-secondary);animation:chat-dot-bounce 1.2s ease-in-out infinite}.chat-view__dot:nth-child(2){animation-delay:.15s}.chat-view__dot:nth-child(3){animation-delay:.3s}@keyframes chat-dot-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.chat-view__input-bar{display:flex;align-items:center;gap:8px;padding:10px 12px 14px;border-top:1px solid var(--widget-border);background:transparent;flex-shrink:0}.chat-view__input-avatar-wrap{padding:2px;border-radius:50%;background:var(--tab-icon-color);flex-shrink:0}.chat-view__input-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--accent-voice),var(--accent-chat));display:flex;align-items:center;justify-content:center;color:#fff}.chat-view__input{width:100%;min-width:0;padding:9px 14px;border-radius:9999px;border:1px solid var(--widget-glass-border);background:var(--widget-elevated);color:var(--text-primary);font-family:var(--font);font-size:.85rem;outline:none;transition:border-color .15s,box-shadow .15s}.chat-view__input:focus{border-color:var(--widget-elevated)}.chat-view__input::placeholder{color:var(--text-secondary);opacity:.55}.chat-view__input:disabled{opacity:.5;cursor:not-allowed}.chat-view__send{width:34px;height:34px;border-radius:50%;border:none;background:var(--float-btn-border);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s;padding:0}.chat-view__send:hover{transform:scale(1.08)}.chat-view__send:active{transform:scale(.92)}.chat-view__input-wrap{flex:1;min-width:0;position:relative;display:flex;align-items:center}.unified-widget-menu-fab{position:fixed;bottom:24px;right:24px;z-index:9998;width:72px;height:72px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--accent-voice),var(--accent-chat));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;padding:0}.unified-widget-menu-fab:hover{transform:scale(1.1)}.unified-widget-menu-fab:active{transform:scale(.96)}.fab-robot__antenna-glow{animation:antenna-light 2s ease-in-out infinite}@keyframes antenna-light{0%,to{opacity:0}50%{opacity:1}}.pill-robot-wrap{display:flex;align-items:center;justify-content:center}.chat-view__actions{display:flex;gap:2px;margin-top:4px;opacity:0;transition:opacity .15s}.chat-view__msg-group:hover .chat-view__actions,.chat-view__msg-group:last-child .chat-view__actions{opacity:1}.chat-view__action-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);opacity:.45;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .15s,opacity .15s,background .15s}.chat-view__action-btn:hover:not(:disabled){opacity:1;color:var(--accent-chat);background:var(--widget-elevated)}.chat-view__action-btn--active{color:var(--accent-chat);opacity:1}.chat-view__action-btn:disabled{cursor:default}.chat-view__feedback-trigger{display:flex;align-items:center;gap:5px;justify-content:center;background:none;border:none;padding:6px 0;color:var(--text-secondary);font-family:var(--font);font-size:.72rem;cursor:pointer;opacity:.6;transition:opacity .15s,color .15s;flex-shrink:0}.chat-view__feedback-trigger:hover{opacity:1;color:var(--accent-chat)}.chat-view__feedback{display:flex;flex-direction:column;gap:12px;padding:16px;border-top:1px solid var(--widget-border);flex-shrink:0;background:var(--widget-surface);animation:feedback-slide-up .25s cubic-bezier(.22,1,.36,1)}@keyframes feedback-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-view__feedback-header{display:flex;align-items:center;justify-content:space-between}.chat-view__feedback-title{font-size:.8rem;font-weight:600;color:var(--text-primary)}.chat-view__feedback-close{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.chat-view__feedback-close:hover{color:var(--text-primary);background:var(--widget-elevated)}.chat-view__feedback-thumbs{display:flex;gap:8px;justify-content:center}.chat-view__feedback-thumb{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--widget-border);background:var(--widget-elevated);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s,background .15s,transform .1s}.chat-view__feedback-thumb:hover{border-color:var(--accent-chat);color:var(--accent-chat);transform:scale(1.06)}.chat-view__feedback-thumb--active{border-color:var(--accent-chat);color:var(--accent-chat);background:var(--widget-bg)}.chat-view__feedback-comment{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--widget-border);background:var(--widget-elevated);color:var(--text-primary);font-family:var(--font);font-size:.8rem;line-height:1.5;resize:none;outline:none;transition:border-color .15s;box-sizing:border-box}.chat-view__feedback-comment:focus{border-color:var(--accent-chat)}.chat-view__feedback-comment::placeholder{color:var(--text-secondary);opacity:.55}.chat-view__feedback-send{align-self:flex-end;padding:8px 20px;border-radius:9999px;border:none;background:var(--widget-elevated);color:var(--text-secondary);font-family:var(--font);font-size:.78rem;font-weight:600;cursor:not-allowed;transition:background .15s,color .15s}.chat-view__feedback-send--active{background:var(--accent-chat);color:#fff;cursor:pointer}.chat-view__feedback-send--active:hover{opacity:.9}.chat-view__feedback-thanks{text-align:center;font-size:.85rem;color:var(--accent-chat);font-weight:600;margin:8px 0;animation:feedback-slide-up .3s ease}.unified-widget.privacy-notice__overlay{position:absolute;top:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px 16px;background:#00000073;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border:none;box-shadow:none}.privacy-notice__card{display:flex;flex-direction:column;width:calc(100% - 32px);max-width:340px;max-height:calc(100% - 40px);padding:22px 20px;background:var(--widget-bg);color:var(--text-primary);border:1px solid var(--widget-border);border-radius:var(--radius);box-shadow:0 12px 40px #00000059;font-family:var(--font);animation:feedback-slide-up .25s ease}.privacy-notice__title{flex-shrink:0;margin:0 0 10px;font-size:1.05rem;font-weight:700;color:var(--text-primary)}.privacy-notice__text{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;font-size:.875rem;line-height:1.55;color:var(--text-primary);scrollbar-width:thin;scrollbar-color:var(--widget-elevated) transparent}.privacy-notice__text::-webkit-scrollbar{width:4px}.privacy-notice__text::-webkit-scrollbar-track{background:transparent}.privacy-notice__text::-webkit-scrollbar-thumb{background:var(--widget-elevated);border-radius:4px}.privacy-notice__text p{margin:0 0 10px}.privacy-notice__text p:last-child{margin-bottom:0}.privacy-notice__text a{color:var(--accent-chat);text-decoration:underline;text-underline-offset:2px}.privacy-notice__actions{flex-shrink:0;display:flex;flex-direction:column;gap:10px;padding-top:16px}.privacy-notice__accept,.privacy-notice__decline{width:100%;padding:11px 16px;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s,transform .1s}.privacy-notice__accept{background:var(--accent-chat);color:#fff}.privacy-notice__accept:hover{opacity:.92}.privacy-notice__accept:active{transform:scale(.98)}.privacy-notice__decline{background:var(--widget-elevated);color:var(--float-btn-color)}.privacy-notice__decline:hover{background:var(--widget-border)}.privacy-notice__decline:active{transform:scale(.98)}.privacy-notice__link{text-align:center;font-size:.8125rem;color:var(--accent-chat);text-decoration:underline;text-underline-offset:2px}.privacy-notice__accept:focus-visible,.privacy-notice__decline:focus-visible,.privacy-notice__link:focus-visible{outline:2px solid var(--widget-outline);outline-offset:2px}.privacy-notice__loading{position:absolute;top:50%;left:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;border:3px solid var(--widget-elevated);border-top-color:var(--accent-chat);animation:privacy-notice-spin .8s linear infinite}@keyframes privacy-notice-spin{to{transform:rotate(360deg)}}"},{"filePath":"agent-maintenance-banner.css","content":".agent-maintenance-notice{position:relative;flex-shrink:0;margin:4px 12px 8px;padding:8px 36px 8px 12px;border-radius:10px;background:#ede4f7;color:#2e0459;font-size:12.5px;font-weight:500;line-height:1.4;text-align:left}.unified-widget[data-theme=\"dark\"] .agent-maintenance-notice{background:#3a2358;color:#f1e9fa}.agent-maintenance-notice__close{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;cursor:pointer}.agent-maintenance-notice__close:hover{background:rgba(46, 4, 89, 0.12)}.unified-widget[data-theme=\"dark\"] .agent-maintenance-notice__close:hover{background:rgba(255, 255, 255, 0.15)}#cognigy-unified-widget-root .chat-view__input-bar,#cognigy-unified-widget-root .voice-view__pill-call{opacity:0.5;cursor:not-allowed}#cognigy-unified-widget-root .chat-view__input,#cognigy-unified-widget-root .voice-view__pill-call{pointer-events:none}"}],"page":{"pagePath":"ai/agents/develop/flow-agents/configure-jobs-and-tools","slug":"/ai/agents/develop/flow-agents/configure-jobs-and-tools","pageMetadata":{"title":"Jobs and tools","sidebarTitle":"Jobs and tools","keywords":["ai agents","jobs","tools","mcp","handover"],"seo":{"metatags":{"description":"Add or change jobs and tools on a Flow-based agent, including MCP, Knowledge, Send Email, and handover tools."}},"description":null,"href":"/ai/agents/develop/flow-agents/configure-jobs-and-tools"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Heading,OptimizedFrame,OptimizedImage,Tab,Table,Tabs}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedFrame)_missingMdxReference(`OptimizedFrame`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Once you `,_jsx(_components.a,{href:`/ai/agents/develop/flow-agents/overview#create-from-scratch`,children:`create a flow agent`}),`, you can add or change jobs and tools in the flow agent configuration.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open the created flow agent and go to the `,_jsx(_components.strong,{children:`Jobs`}),` tab.`]}),`\n`,_jsxs(_components.li,{children:[`Fill in the following fields:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Job Name`}),` — enter a title for the job you want to assign to the flow agent. For example, `,_jsx(_components.code,{children:`Customer Support Specialist`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Job Description`}),` — enter a description of the job that outlines the responsibilities and tasks associated with the role. For example, `,_jsx(_components.code,{children:`Handle customer inquiries, provide product information, and resolve issues efficiently`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Instructions and Context`}),` — provide specific instructions or guidelines that the flow agent should follow while performing its job. For example, `,_jsx(_components.code,{children:`Always respond politely, escalate complex issues to a human agent, and ensure customer satisfaction`}),`.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`configure-tools-for-flow-agents`,children:`Configure tools for flow agents`}),`\n`,_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Tools`}),` section, click `,_jsx(_components.strong,{children:`Add Tool`}),` to add tools that the flow agent can use to perform its job. Select one of the following options:`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Tool`,id:`tool`,children:[_jsx(_components.p,{children:`A tool is a specific task that a flow agent can perform. The flow agent can call tools to perform different tasks, such as retrieving information from a database or interacting with an external API. Fill in the following fields:`}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Tool`,id:`tool`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool ID`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines the tool ID. This ID can contain only letters, numbers, underscores (`,_jsx(_components.code,{children:`_`}),`), or dashes (`,_jsx(_components.code,{children:`-`}),`). If you use more than one tool, the tool ID provides context to trigger the correct tool. In this case, enter a clear tool ID for each tool, for example, `,_jsx(_components.code,{children:`update_user-1`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Defines instructions to guide the flow agent to call the tool. The description field provides context to trigger the tool. Enter a detailed description of what the tool does, when it should be used, and what parameters it requires.`})]})]})]})}),_jsxs(Accordion,{title:`Parameters`,id:`parameters`,children:[_jsxs(_components.p,{children:[`Configure the parameters that will be collected by the flow agent before the tool is called. You can switch between the Graphical and JSON editors. When editing the JSON, follow the `,_jsx(_components.a,{href:`https://json-schema.org`,children:`JSON Schema specification`}),`.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Use Parameters`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Displays the `,_jsx(_components.strong,{children:`Parameters`}),` section in the Node editor. In this section, you can define additional parameters for the tool. The flow agent collects all data it needs and calls a tool with these parameters filled as arguments. This parameter values can be accessed directly in the `,_jsx(_components.code,{children:`input.aiAgent.toolArgs`}),` object.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Name`}),_jsx(_components.td,{children:`Text`}),_jsx(_components.td,{children:`Sets the name of the parameter. The name must be clear and concise, and describe the purpose of the parameter.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Type`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets the parameter type:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`String`}),` — a sequence of characters. For example, `,_jsx(_components.code,{children:`\"hello\"`}),`, `,_jsx(_components.code,{children:`\"123\"`}),`.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Number`}),` — a numerical value, which can be either an integer, for example, `,_jsx(_components.code,{children:`5`}),`, or a float, for example, `,_jsx(_components.code,{children:`3.14`}),`.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Boolean`}),` — a logical value representing `,_jsx(_components.code,{children:`true`}),` or `,_jsx(_components.code,{children:`false`}),`.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Array`}),` — a collection of elements, which can contain multiple values of any type. For example, `,_jsx(_components.code,{children:`[\"apple\", \"banana\", \"cherry\"]`}),`.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Object`}),` — a collection of key-value pairs, where each key is a string and the value can be of any type. For example, `,_jsx(_components.code,{children:`{\"name\": \"John\", \"age\": 30}`}),`.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`Text`}),_jsx(_components.td,{children:`Describes the parameter’s purpose.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Enum (optional)`}),_jsx(_components.td,{children:`Enum`}),_jsx(_components.td,{children:`Defines a set of values that the parameter can accept. The enum restricts the input to one of the specified values, ensuring only valid options are chosen. The enum is only available for string-type parameters in the graphical editor. For other types, use the JSON editor. Might not be supported by all LLM providers.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Add Parameter`}),_jsx(_components.td,{children:`Button`}),_jsx(_components.td,{children:`Adds another parameter.`})]})]})]})]}),_jsx(Accordion,{title:`Debug settings`,id:`debug-settings`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug Message when called`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Activates the output of a debug message when the tool is called to provide detailed information about the tool call.`})]})})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Sets a condition that must be evaluated as true to activate the tool. If false, the flow agent can’t access the tool during execution. For example, when using the `,_jsx(_components.code,{children:`unlock_account`}),` tool, you can enter a condition like `,_jsx(_components.code,{children:`context.accountStatus === \"locked\"`}),`. With this condition, the flow agent checks the value of the `,_jsx(_components.code,{children:`context.accountStatus`}),` key in the Context object, and if the key is missing or the value is different from `,_jsx(_components.code,{children:`\"locked\"`}),`, the flow agent can’t use the tool.`]})]})})]})})]})]}),_jsxs(Tab,{title:`MCP`,id:`mcp`,children:[_jsxs(_components.p,{children:[`An MCP tool connects to a remote `,_jsx(_components.a,{href:`https://modelcontextprotocol.io/introduction`,children:`MCP server`}),` to load tools that the flow agent can execute. Fill in the following fields:`]}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`MCP tool`,id:`mcp-tool`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Name`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Defines a name for the MCP connection. This name helps you identify the source of the loaded tool.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`MCP Server URL`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines the URL of a remote `,_jsx(_components.a,{href:`https://modelcontextprotocol.io/introduction`,children:`MCP server`}),`, for example, `,_jsx(_components.code,{children:`https://my-mcp-server.com/mcp`}),`. The legacy `,_jsx(_components.code,{children:`/sse`}),` endpoint is also supported. Ensure that you connect only to trusted MCP servers.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timeout (seconds)`}),_jsx(_components.td,{children:`Slider`}),_jsx(_components.td,{children:`Sets the timeout for the MCP connection in seconds. The default is 12 seconds. The range is 1–30 seconds.`})]})]})]})}),_jsx(Accordion,{title:`Authentication`,id:`authentication`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Authentication Type`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets the authentication type to use for the MCP server connection. Select one of the following options: `,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`None`}),` — no authentication. This option is used by default.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`OAuth2`}),` — authenticate using OAuth 2.0, which provides improved security and control compared to API keys. OAuth 2.0 supports scoped permissions, expiring tokens, and reduced exposure through short-lived tokens.`]})]}),`If you want to use a different authentication method, such as an API key, you can add it as a custom header in `,_jsx(_components.strong,{children:`Custom Headers`}),` of the `,_jsx(_components.strong,{children:`Advanced`}),` section.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`OAuth2 Parameters`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Opens the dialog to configure OAuth 2.0 authentication. The dialog includes fields that allow the flow agent to securely request and use access tokens when communicating with the MCP server. Configure the following fields: `,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Connection Name`}),` — enter a descriptive name for the connection, for example, `,_jsx(_components.code,{children:`MCP Tool OAuth`}),`.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`OAuth URL`}),` — enter the token endpoint URL exposed by the MCP server, for example: `,_jsx(_components.code,{children:`https://mcp.example.com/oauth2/token`}),`.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Client ID`}),` — enter the application (client) ID issued by the MCP server.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Client Secret`}),` — enter the application secret issued by the MCP server. Keep this secret secure.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Scope`}),` — add a list of scopes that define the permissions required by your application, for example: `,_jsx(_components.code,{children:`read write admin`}),`. Separate multiple scopes with spaces.`]})]})]})]})]})]})}),_jsx(Accordion,{title:`Debug settings`,id:`debug-settings-1`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug loaded Tools`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Displays a debug message listing all tools loaded from the MCP server. The debug message also includes tools filtered out in the `,_jsx(_components.a,{href:`#advanced`,children:`Advanced section`}),`. This parameter shows whether tools were loaded from the cache or directly from the MCP server.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug with Parameters`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`Debug loaded Tools`}),` is active. Includes the tool parameters in the `,_jsx(_components.strong,{children:`Debug loaded Tools`}),` message. This parameter is inactive by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug calling Tool`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Outputs a debug message with detailed information about the tool call each time it is triggered. This parameter is active by default.`})]})]})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced-1`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cache Tools`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Caches loaded tools. Deactivate this parameter while developing. Ensure that caching is enabled in production for performance reasons. The caching time is 10 minutes. In `,_jsx(_components.a,{href:`ai/agents/test/interaction-panel/chat#debug-mode`,children:`debug mode`}),`, you can verify whether the cache was used. To do this, make sure `,_jsx(_components.strong,{children:`Debug Loaded Tools`}),` is enabled. For more information, see the `,_jsx(_components.a,{href:`#debug-settings`,children:`Debug Settings`}),` section.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Sets a condition that must be evaluated as true to activate the MCP tool. If false, the flow agent can’t access the tool during execution. For example, when using the `,_jsx(_components.code,{children:`unlock_account`}),` tool, you can enter a condition like `,_jsx(_components.code,{children:`context.accountStatus === \"locked\"`}),`. With this condition, the flow agent checks the value of the `,_jsx(_components.code,{children:`context.accountStatus`}),` key in the Context object, and if the key is missing or the value is different from `,_jsx(_components.code,{children:`\"locked\"`}),`, the flow agent can’t use the tool.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool Filter`}),_jsx(_components.td,{children:`Select`}),_jsxs(_components.td,{children:[`Excludes tools from execution. You can select one of the following options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`None`}),` — no tool filtering is applied, and all tools are available for execution. This option is selected by default.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Whitelist`}),` — only tools on the list are available for execution, while all other tools are excluded.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Blacklist`}),` — excludes the tools on the list from execution, while all other tools remain available.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blacklist`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears if you select `,_jsx(_components.strong,{children:`Blacklist`}),` in `,_jsx(_components.strong,{children:`Tool Filter`}),`. Defines which tools to block from execution. Enter only one tool per field.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Whitelist`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears if you select `,_jsx(_components.strong,{children:`Whitelist`}),` in `,_jsx(_components.strong,{children:`Tool Filter`}),`. Sets the tools you want to allow for execution. Enter only one tool per field.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom Headers`}),_jsx(_components.td,{children:`Input fields`}),_jsxs(_components.td,{children:[`Sets the headers to send with the request to the MCP server. You can switch between the graphical and JSON editors to enter the header key and value either in the `,_jsx(_components.strong,{children:`Key`}),` and `,_jsx(_components.strong,{children:`Value`}),` fields or in the code field in JSON format.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Key`}),_jsx(_components.td,{children:`Text`}),_jsxs(_components.td,{children:[`Sets the header name. After entering the header key, new empty `,_jsx(_components.strong,{children:`Key`}),` and `,_jsx(_components.strong,{children:`Value`}),` fields are automatically added, in case you need to add more headers.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Value`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Sets the header value.`})]})]})]})})]}),_jsx(_components.p,{children:`You can add multiple tools to the flow agent. The recommended maximum number of tools is 20. The following video shows an MCP Tool example:`}),_jsx(OptimizedFrame,{width:`500`,height:`313`,style:{border:`1px solid #ccc`,borderRadius:`12px`},src:`https://www.youtube.com/embed/pRjJtbfw4_0`,title:`MCP tool`,frameborder:`0`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share`,referrerpolicy:`strict-origin-when-cross-origin`,allowfullscreen:true,class:`centered-iframe`})]}),_jsxs(Tab,{title:`A2A agent`,id:`a2a-agent`,children:[_jsxs(_components.p,{children:[`An A2A Agent tool connects to a remote A2A agent through the open `,_jsx(_components.a,{href:`https://a2a-protocol.org/`,children:`Agent2Agent (A2A) protocol`}),` and uses it as a single tool. Cognigy automatically creates a Call A2A Flow Agent Node, labeled `,_jsx(_components.strong,{children:`Call an A2A Agent`}),`, below the A2A Agent Node to execute the call. Fill in the following fields:`]}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`A2A agent`,id:`a2a-agent`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Name`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Defines the name of the A2A Agent connection.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A2A Agent Base URL`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Defines the base URL of the A2A agent. Connect only to trusted A2A agents.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Test Connection`}),_jsx(_components.td,{children:`Button`}),_jsx(_components.td,{children:`Tests the connection and verifies that the remote Agent Card can be retrieved.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timeout (seconds)`}),_jsx(_components.td,{children:`Slider`}),_jsxs(_components.td,{children:[`Sets the timeout in seconds for each request to the remote agent: Agent Card discovery, sending the message, and, in `,_jsx(_components.strong,{children:`Non-blocking`}),` mode, each poll. Ranges from 1 to 30 seconds. The default value is `,_jsx(_components.code,{children:`12`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Execution mode`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Determines how the Node waits for the remote A2A agent:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Blocking`}),` — waits for the final result.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Non-blocking (poll until complete)`}),` — sends the message and polls the task until it completes or the `,_jsx(_components.strong,{children:`Task timeout`}),` is reached.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Task timeout`}),_jsx(_components.td,{children:`Slider`}),_jsxs(_components.td,{children:[`Sets the maximum time in seconds to poll a task when `,_jsx(_components.strong,{children:`Execution mode`}),` is `,_jsx(_components.strong,{children:`Non-blocking`}),`. Ranges from 10 to 300 seconds. The default value is `,_jsx(_components.code,{children:`60`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Max autonomous calls per turn`}),_jsx(_components.td,{children:`Slider`}),_jsxs(_components.td,{children:[`Limits the number of times the Flow Agent node can call this tool autonomously during one turn. Ranges from 1 to 10. The default value is `,_jsx(_components.code,{children:`4`}),`.`]})]})]})]})}),_jsx(Accordion,{title:`Authentication`,id:`authentication-1`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Authentication Type`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Authentication method for requests to the remote A2A agent: `,_jsx(_components.strong,{children:`None`}),`, `,_jsx(_components.strong,{children:`OAuth2`}),`, `,_jsx(_components.strong,{children:`Bearer Token`}),`, `,_jsx(_components.strong,{children:`Basic Auth`}),`, or `,_jsx(_components.strong,{children:`API Key`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`OAuth2 Parameters`}),_jsx(_components.td,{children:`Connection`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`OAuth2`}),` is selected. Configures the connection used to obtain and cache an access token.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Basic Auth Parameters`}),_jsx(_components.td,{children:`Connection`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`Basic Auth`}),` is selected. Configures the username and password.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Bearer Token`}),_jsx(_components.td,{children:`Connection`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`Bearer Token`}),` is selected. Configures the token sent in the `,_jsx(_components.code,{children:`Authorization`}),` header.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`API Key`}),_jsx(_components.td,{children:`Connection`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`API Key`}),` is selected. Configures the API key value.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`API Key Header Name`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`API Key`}),` is selected. Specifies the header used for the API key. Default: `,_jsx(_components.code,{children:`X-API-Key`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Use Authentication for Agent Discovery`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Applies the configured authentication to Agent Card discovery. Inactive by default.`})]})]})]})}),_jsx(Accordion,{title:`Debug settings`,id:`debug-settings-2`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug loaded A2A Skills`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Displays the skills loaded from the remote Agent Card and indicates whether the Agent Card came from the cache. This parameter is active by default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug calling A2A Skill`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Displays a debug message when the tool is called. This parameter is active by default.`})]})]})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced-2`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Enables the tool only when the condition evaluates to `,_jsx(_components.code,{children:`true`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A2A Skill Filter`}),_jsx(_components.td,{children:`Select`}),_jsxs(_components.td,{children:[`Controls which remote skills are summarized in the tool description. The A2A Agent Node remains a single tool regardless of the filter. Options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`None`}),` — includes all skills.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Whitelist`}),` — includes only the specified skills.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Blacklist`}),` — excludes the specified skills.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Whitelist`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`Whitelist`}),` is selected. Specifies the skill IDs to include.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blacklist`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`Blacklist`}),` is selected. Specifies the skill IDs to exclude.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom Headers`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Adds custom headers to requests sent to the remote A2A agent. Supports CognigyScript values.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom Agent Card Path`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Overrides the default Agent Card discovery path. When you set a path, Cognigy uses only this path. When the field is empty, Cognigy tries `,_jsx(_components.code,{children:`.well-known/agent-card.json`}),` first, and then the legacy `,_jsx(_components.code,{children:`.well-known/agent.json`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cache Agent Card`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Caches the remote Agent Card for 10 minutes. This parameter is active by default. When developing, set the parameter to inactive to fetch the Agent Card on every turn.`})]})]})]})})]}),_jsxs(_components.p,{children:[`Use the Call A2A Flow Agent Node, created automatically below the A2A Agent Node, to modify or inspect the message before it’s sent, add a Say Node, and configure how the result is returned to the Flow Agent node. The node also sends the status message `,_jsx(_components.code,{children:`Delegating to \u003ctool name>...`}),` automatically, but only to clients connected through the A2A Server channel.`]}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Call A2A flow agent`,id:`call-a2a-flow-agent`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Resolve Immediately`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Immediately returns the full result to the Flow Agent node as the tool answer. This parameter is active by default.`})]})})]})}),_jsx(Accordion,{title:`Storage options`,id:`storage-options`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`How to handle the result`}),_jsx(_components.td,{children:`Select`}),_jsxs(_components.td,{children:[`Determines where to store the result: `,_jsx(_components.strong,{children:`Input`}),` or `,_jsx(_components.strong,{children:`Context`}),`. `,_jsx(_components.strong,{children:`Store in Input`}),` is selected by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Input Key to store Result`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`Store in Input`}),` is selected. Stores the result in `,_jsx(_components.code,{children:`input.aiAgent.toolResult`}),` by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Context Key to store Result`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`Store in Context`}),` is selected. Stores the result in `,_jsx(_components.code,{children:`context.aiAgent.toolResult`}),` by default.`]})]})]})]})}),_jsx(Accordion,{title:`Debug settings`,id:`debug-settings-3`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug A2A Skill Result`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Displays a debug message with the result after a successful call. This parameter is inactive by default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug Raw Request`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Displays the raw JSON-RPC request sent to the A2A agent. This parameter is inactive by default.`})]})]})]})})]})]}),_jsxs(Tab,{title:`Knowledge`,id:`knowledge`,children:[_jsxs(_components.p,{children:[`A Knowledge tool is a tool that allows the flow agent to directly access `,_jsx(_components.a,{href:`/ai/agents/develop/knowledge-ai/knowledge-store`,children:`Knowledge Stores`}),` to provide context-aware responses. Fill in the following fields:`]}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Tool`,id:`tool-1`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Knowledge Store`}),_jsx(_components.td,{children:`List`}),_jsx(_components.td,{children:`Sets the Knowledge Store to read information from.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool ID`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines the tool ID. This ID can contain only letters, numbers, underscores (`,_jsx(_components.code,{children:`_`}),`), or dashes (`,_jsx(_components.code,{children:`-`}),`). If you use more than one Knowledge tool, the tool ID provides context to trigger the correct Knowledge tool. In this case, enter a clear tool ID for each Knowledge tool, for example, `,_jsx(_components.code,{children:`search_appliances`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines instructions to guide the flow agent to call the Knowledge tool. The description field provides context to trigger the Knowledge tool. If you want to use more than one Knowledge tool, enter clear instructions for the cases when each Knowledge tool should be used. For example, `,_jsx(_components.code,{children:`Find the answer to prompts or questions about appliances by searching the attached data sources. Use this tool when a customer asks about appliance items such as washing machines, dryers, and other household appliances. Focus exclusively on a knowledge search and don't execute tasks like small talk, calculations, or script running.`})]})]})]})]})}),_jsx(Accordion,{title:`Debug settings`,id:`debug-settings-4`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug Message when called`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Activates the output of a debug message when the tool is called to provide detailed information about the tool call.`})]})})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced-3`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Top K`}),_jsx(_components.td,{children:`Slider`}),_jsx(_components.td,{children:`Sets how many Knowledge Chunks to return. The default value is 5, and the maximum value is 10. Providing more results gives the flow agent additional context, but it also increases noise and token usage.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Store Location`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets whether and where to store the knowledge search results. Select one of the following options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Don’t store`}),` — the content isn’t stored. This option is set by default.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Input`}),` — the content is stored in the Input object.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Context`}),` — the content is stored in the Context object.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Input Key to store result`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears when `,_jsx(_components.strong,{children:`Store Location`}),` is set to `,_jsx(_components.strong,{children:`Input`}),`. The property in the Input object where the result is stored. For example, if you enter `,_jsx(_components.code,{children:`knowledgeSearch`}),`, you can retrieve the knowledge search result from `,_jsx(_components.code,{children:`input.knowledgeSearch`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Context Key to store result`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears when `,_jsx(_components.strong,{children:`Store Location`}),` is set to `,_jsx(_components.strong,{children:`Context`}),`. The property in the Context object where the result is stored. For example, if you enter `,_jsx(_components.code,{children:`knowledgeSearch`}),`, you can retrieve the knowledge search result from `,_jsx(_components.code,{children:`context.knowledgeSearch`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Source Tags`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines `,_jsx(_components.a,{href:`/ai/agents/develop/knowledge-ai/knowledge-source/knowledge-source-tags`,children:`Knowledge Source Tags`}),` to refine the scope of your knowledge search, including only the most relevant Knowledge Chunks in the Knowledge Store. Before entering the tags, ensure they are included in the Knowledge Sources. Add a tag by entering it in the field and pressing `,_jsx(`kbd`,{children:`Enter`}),`. You can add up to 5 Source Tags. When multiple Source Tags are added, the Search Extract Output Node defaults to the `,_jsx(_components.code,{children:`AND`}),` operator, meaning it only considers Sources that have all specified tags. To change this behavior, adjust the `,_jsx(_components.strong,{children:`Match type for Source Tags`}),` parameter.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Match type for Source Tags`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`The operator to filter Knowledge Sources by Source Tags. Select one of the following options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`AND`}),` — requires all Source Tags to match across multiple Knowledge Sources. This option is selected by default. Consider the following example: there are Knowledge Sources with Source Tags `,_jsx(_components.code,{children:`S-a`}),`, `,_jsx(_components.code,{children:`S-b`}),`, and `,_jsx(_components.code,{children:`S-c`}),`. When you use the `,_jsx(_components.code,{children:`AND`}),` operator to filter by `,_jsx(_components.code,{children:`S-a`}),` and `,_jsx(_components.code,{children:`S-b`}),`, only Sources with both Tags `,_jsx(_components.code,{children:`S-a`}),` and `,_jsx(_components.code,{children:`S-b`}),` are included in the search results.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`OR`}),` — requires at least one Source Tag to match across multiple Knowledge Sources. Consider the following example: there are Knowledge Sources with Source Tags `,_jsx(_components.code,{children:`S-a`}),`, `,_jsx(_components.code,{children:`S-b`}),`, and `,_jsx(_components.code,{children:`S-c`}),`. When you use the `,_jsx(_components.code,{children:`OR`}),` operator to filter by `,_jsx(_components.code,{children:`S-a`}),` or `,_jsx(_components.code,{children:`S-b`}),`, any Source with either Tag `,_jsx(_components.code,{children:`S-a`}),` or `,_jsx(_components.code,{children:`S-b`}),` is included in the search results.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Sets a condition that must be evaluated as true to activate the Knowledge tool. If false, the flow agent can’t access the tool during execution. For example, when using the Knowledge tool, you can enter a condition like `,_jsx(_components.code,{children:`context.productCategory === \"appliances\"`}),`. With this condition, the flow agent checks the value of the `,_jsx(_components.code,{children:`context.productCategory`}),` key in the Context object, and if the key is missing or the value is different from `,_jsx(_components.code,{children:`\"appliances\"`}),`, the flow agent can’t use the tool.`]})]})]})]})})]})]}),_jsxs(Tab,{title:`Send email`,id:`send-email`,children:[_jsxs(_components.p,{children:[`The Send Email tool lets your flow agent send emails directly to users. The Send Email tool has the capabilities and restrictions as the `,_jsx(_components.a,{href:`/ai/agents/develop/node-reference/data/email-notification`,children:`Email Notification Node`}),` but is more flexible. While the Email Notification Node sends emails at a fixed step in a Flow, the Send Email tool allows the flow agent to send emails dynamically, based on user input, conversation context, or instructions. This tool makes automation more flexible and minimizes extra Flow steps.`]}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Tool`,id:`tool-2`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool ID`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines the tool ID. This ID can contain only letters, numbers, underscores (`,_jsx(_components.code,{children:`_`}),`), or dashes (`,_jsx(_components.code,{children:`-`}),`). The default ID is `,_jsx(_components.code,{children:`send_email`}),`. If you use more than one Send Email tool, the tool ID provides context to trigger the correct Send Email tool. In this case, enter a clear tool ID for each Send Email tool, for example, `,_jsx(_components.code,{children:`send_order_confirmation`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines instructions to guide the flow agent to call the Send Email tool. The description field provides context to trigger the Send Email tool. The default description is `,_jsx(_components.code,{children:`Create and send a new email message.`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Recipient`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`A comma-separated list of email addresses to which the email will be sent.`})]})]})]})}),_jsx(Accordion,{title:`Debug settings`,id:`debug-settings-5`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug Message when called`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Activates the output of a debug message when the tool is called to provide detailed information about the tool call.`})]})})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced-4`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Sets a condition that must be evaluated as true to activate the Send Email tool. If false, the flow agent can’t access the tool during execution. For example, when using the Send Email tool, you can enter a condition like `,_jsx(_components.code,{children:`context.orderFinished === true`}),`. With this condition, the flow agent checks the value of the `,_jsx(_components.code,{children:`context.orderFinished`}),` key in the Context object, and if the key is missing or the value is different from `,_jsx(_components.code,{children:`true`}),`, the flow agent can’t use the tool.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`CC Email Addresses`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`A comma-separated list of email addresses that receive a copy of the email.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`BCC Email Addresses`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`A comma-separated list of email addresses that receive a blind copy of the email.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Email Priority`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets the priority of the email: `,_jsx(_components.strong,{children:`high`}),`, `,_jsx(_components.strong,{children:`normal`}),`, or `,_jsx(_components.strong,{children:`low`}),`. The default is `,_jsx(_components.strong,{children:`normal`}),`.`]})]})]})]})})]})]}),_jsxs(Tab,{title:`Handover to flow agent`,id:`handover-to-flow-agent`,children:[_jsx(_components.p,{children:`The Handover to Flow Agent tool lets you transfer a conversation to another flow agent in the same or a different Flow. This approach ensures that different flow agents share the same conversation context and can handle specific tasks, and that multi-step conversations run smoothly across Flows.`}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Tool`,id:`tool-3`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool ID`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines the tool ID. This ID can contain only letters, numbers, underscores (`,_jsx(_components.code,{children:`_`}),`), or dashes (`,_jsx(_components.code,{children:`-`}),`). The default ID is `,_jsx(_components.code,{children:`handover_to_ai_agent`}),`. If you use more than one Handover to Flow Agent tool, the tool ID provides context to trigger the correct Handover to Flow Agent tool. In this case, enter a clear tool ID for each Handover to Flow Agent tool, for example, `,_jsx(_components.code,{children:`handover_to_billing_agent`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines instructions to guide the flow agent to call the Handover to Flow Agent tool. The description field provides context to trigger the correct receiving flow agent. If you use more than one Handover to Flow Agent tool, enter clear instructions for the cases when each receiving flow agent should take over. For example, `,_jsx(_components.code,{children:`Handle product recommendations`}),`, `,_jsx(_components.code,{children:`Perform technical troubleshooting`}),`, or `,_jsx(_components.code,{children:`Assist with billing questions`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Target flow agent`}),_jsx(_components.td,{children:`List`}),_jsx(_components.td,{children:`Sets the target Flow to hand over to. By default, all Flows in the Project are displayed in the list. The selected Flow must contain a Flow Agent node.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Select Node`}),_jsx(_components.td,{children:`List`}),_jsx(_components.td,{children:`Sets the Flow Agent node to hand over to. The list includes only Flow Agent nodes.`})]})]})]})}),_jsx(Accordion,{title:`Debug settings`,id:`debug-settings-6`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug Message when called`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Activates the output of a debug message when the tool is called to provide detailed information about the tool call.`})]})})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced-5`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Sets a condition that must be evaluated as true to activate the Handover to Flow Agent tool. If false, the flow agent can’t access the tool during execution. For example, when using the Handover to Flow Agent tool, you can enter a condition like `,_jsx(_components.code,{children:`context.accountStatus === \"locked\"`}),`. With this condition, the flow agent checks the value of the `,_jsx(_components.code,{children:`context.accountStatus`}),` key in the Context object, and if the key is missing or the value is different from `,_jsx(_components.code,{children:`\"locked\"`}),`, the flow agent can’t use the tool.`]})]})})]})})]})]}),_jsxs(Tab,{title:`Handover to human agent`,id:`handover-to-human-agent`,children:[_jsx(_components.p,{children:`The Handover to Human Agent tool lets you transfer a conversation to a human agent through handover providers. This tool allows your flow agents to refer complex tasks to a human agent if they can’t address the user’s request.`}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Tool`,id:`tool-4`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool ID`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines the tool ID. This ID can contain only letters, numbers, underscores (`,_jsx(_components.code,{children:`_`}),`), or dashes (`,_jsx(_components.code,{children:`-`}),`). The default ID is `,_jsx(_components.code,{children:`handover_to_human_agent`}),`. If you use more than one Handover to Human Agent tool, the tool ID provides context to trigger the correct Handover to Human Agent tool. In this case, enter a clear tool ID for each Handover to Human Agent tool, for example, `,_jsx(_components.code,{children:`handover_to_billing_support`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines instructions to guide the flow agent to call the Handover to Human Agent tool. The description field provides context to trigger the handover. Enter clear instructions for the situations when the flow agent should refer to a human agent. For example, `,_jsx(_components.code,{children:`Use this tool if the user explicitly asks for a human.`}),` or `,_jsx(_components.code,{children:`Use this tool if you fail to answer the user's question three times.`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Handover Provider`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets a handover provider that you previously created in `,_jsx(_components.strong,{children:`Deploy > Handover Providers`}),`. A section with handover provider-specific settings appears. `,_jsx(_components.a,{href:`/ai/escalate/handover-reference/overview`,children:`Configure the handover accordingly`}),`:`,_jsxs(`ul`,{children:[_jsx(`li`,{children:_jsx(_components.a,{href:`/ai/escalate/handover-reference/live-agent`,children:`Live Agent`})}),_jsx(`li`,{children:_jsx(_components.a,{href:`/ai/escalate/handover-reference/chatwoot#2-add-a-handover-to-human-agent-node`,children:`Chatwoot`})}),_jsx(`li`,{children:_jsx(_components.a,{href:`/ai/escalate/handover-reference/salesforce#2-add-a-handover-to-human-agent-node`,children:`Salesforce`})}),_jsx(`li`,{children:_jsx(_components.a,{href:`/ai/escalate/handover-reference/nice-cxone/overview`,children:`NiCE CXone`})}),_jsxs(`li`,{children:[_jsx(_components.a,{href:`/ai/escalate/handover-reference/genesys-cloud-open-messaging#2-configure-handover-settings`,children:`Genesys Cloud Open Messaging`}),` or `,_jsx(_components.a,{href:`/ai/escalate/handover-reference/genesys-cloud-guest-chat#2-configure-handover-settings`,children:`Genesys Cloud Guest Chat`})]}),_jsx(`li`,{children:_jsx(_components.a,{href:`/ai/escalate/handover-reference/8x8#2-configure-handover-settings`,children:`8x8`})}),_jsx(`li`,{children:_jsx(_components.a,{href:`/ai/escalate/handover-reference/ring-central-engage#2-add-a-handover-to-human-agent-node`,children:`RingCentral Engage`})})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Handover acceptance message`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Defines the message sent to the user when the handover is requested.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Repeat handover acceptance message`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Repeatedly outputs the text in `,_jsx(_components.strong,{children:`Handover acceptance message`}),` if the user sends a message while waiting in the queue for an agent.`]})]})]})]})}),_jsx(Accordion,{title:`Cancel options`,id:`cancel-options`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cancel intent`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Defines the intent the user must trigger to cancel the handover request.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cancel button label`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Defines the text for a quick reply button that cancels the handover request when clicked.`})]})]})]})}),_jsx(Accordion,{title:`On resolve options`,id:`on-resolve-options`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Flow continuation`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Controls where the Flow continues after the human agent leaves the conversation.`,_jsx(`br`,{}),`When the user needs assistance completing the Flow with the flow agent, the conversation is handed over to a human agent. The human agent can trigger the Flow by sending a `,_jsx(_components.code,{children:`/bot`}),` command as a reply in the conversation interface.`,_jsx(`br`,{}),`For example, the user enters their date of birth in an incorrect format, and the flow agent can’t process the response. The conversation is handed over to a human agent, who identifies the incorrect format and sends the corrected date using `,_jsx(_components.code,{children:`/bot MM/DD/YYYY`}),`. The flow agent takes over and continues the Flow.`,_jsx(`br`,{}),`You can select one of the following options to determine where the Flow continues:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Next node`}),` — the Flow continues from the first Node below the Human Agent Node, regardless of where the human agent stopped assisting the user. This option is selected by default.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Current agent inject entrypoint`}),` — the Flow continues from the Node where the human agent stopped assisting the user.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Send resolve event to agent`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Controls whether the Flow receives the `,_jsx(_components.code,{children:`conversation_status_changed`}),` event with the status set to `,_jsx(_components.code,{children:`resolved`}),`. This parameter is activated by default.`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[`When the parameter is activated, the event is sent when the human agent leaves the conversation. As a result, the Flow continues immediately, without waiting for the user to send another message. If the `,_jsx(_components.a,{href:`/ai/agents/develop/node-reference/logic/lookup`,children:`Lookup Case`}),` Node is configured with `,_jsx(_components.strong,{children:`Handover Status`}),` set to `,_jsx(_components.strong,{children:`Completed`}),`, the Node can detect the completed handover and continue the Flow.`]}),_jsx(`li`,{children:`When the parameter is deactivated, the event isn’t sent when the human agent leaves the conversation. The Flow continues after the user sends their next message.`})]})]})]})]})]})}),_jsx(Accordion,{title:`Event settings`,id:`event-settings`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Send queue event`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Sends an event to the Flow once the handover is queued.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Send active event`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Sends an event to the Flow once the handover is active.`})]})]})]})}),_jsx(Accordion,{title:`Debug settings`,id:`debug-settings-7`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug Message when called`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Activates the output of a debug message when the tool is called to provide detailed information about the tool call.`})]})})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced-6`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Sets a condition that must be evaluated as true to activate the Handover to Human Agent tool. If false, the flow agent can’t access the tool during execution. For example, when using the Handover to Human Agent tool, you can enter a condition like `,_jsx(_components.code,{children:`context.issueType === \"complaint\"`}),`. With this condition, the flow agent checks the value of the `,_jsx(_components.code,{children:`context.issueType`}),` key in the Context object, and if the key is missing or the value is different from `,_jsx(_components.code,{children:`\"complaint\"`}),`, the flow agent can’t use the tool.`]})]})})]})})]})]}),_jsxs(Tab,{title:`Execute workflow tool`,id:`execute-workflow-tool`,children:[_jsx(_components.p,{children:`The Execute Workflow tool lets the flow agent execute another Flow. After the target Flow executes, the conversation returns to the flow agent.`}),_jsxs(_components.p,{children:[`The target Flow inherits the `,_jsx(_components.a,{href:`/ai/agents/develop/ai-agent-memory/context`,children:`Context object`}),` from the flow agent. If the Context object is changed during the target Flow execution, these changes are also available to the flow agent.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How the Execute Workflow tool behaves at runtime`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Result returned to the LLM.`}),` The tool always answers the LLM with the fixed text `,_jsx(_components.code,{children:`Workflow executed`}),`. The outputs and results of the target Flow aren’t returned to the LLM as the tool result. To let the flow agent use a result, write it to the Context in the target Flow. Messages from Say Nodes in the target Flow go directly to the user.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`execution_reason`}),` parameter.`]}),` The default tool parameters ask the LLM for an `,_jsx(_components.code,{children:`execution_reason`}),`. It isn’t passed to the target Flow as input. It appears only in the `,_jsx(_components.strong,{children:`Debug Message when called`}),` output, together with the target Flow and Node. Use it as a debugging aid.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Calls through an MCP Server Endpoint.`}),` When an MCP client calls the tool, the target Flow runs and the client receives `,_jsx(_components.code,{children:`Workflow executed`}),`. No flow agent job is involved.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Loop protection.`}),` If the LLM keeps calling the same Execute Workflow tool, the tool can run up to four times for one user input. The fifth run stops with an `,_jsx(_components.code,{children:`Infinite Loop Detected`}),` error.`]}),`\n`]}),_jsxs(_components.p,{children:[`When the flow agent calls an Execute Workflow tool, the target Flow runs right away, in the same turn, and any messages it sends go straight to the user. When the Flow finishes, the flow agent continues in the same turn and generates its next reply. At that point it sees the tool result `,_jsx(_components.code,{children:`Workflow executed`}),` and the messages the Flow sent, but no other output from the Flow. If the Flow asks a question or waits for input, the flow agent continues only after the user responds. If the Flow ends with a Stop Node or jumps away with a Go To Node, the flow agent doesn’t continue.`]}),_jsx(_components.p,{children:`To test the tool independently:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Test the target Flow on its own. Open it in the Interaction Panel and start from the selected Entrypoint Node.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Test the tool call through the flow agent with `,_jsx(_components.strong,{children:`Debug Message when called`}),` activated. You can then see `,_jsx(_components.code,{children:`execution_reason`}),` and the target.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Check that the Context values written by the target Flow are available to the flow agent when it continues in the same turn.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool ID`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines the tool ID. This ID can contain only letters, numbers, underscores (`,_jsx(_components.code,{children:`_`}),`), or dashes (`,_jsx(_components.code,{children:`-`}),`). The default ID is `,_jsx(_components.code,{children:`execute_workflow`}),`. If you use more than one Execute Workflow tool, the tool ID provides context to trigger the correct Execute Workflow tool. In this case, enter a clear tool ID for each Execute Workflow tool, for example, `,_jsx(_components.code,{children:`execute_returns_workflow`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`Defines instructions to guide the flow agent to call the Execute Workflow tool. The description field provides context to trigger the Execute Workflow tool. Describe when the flow agent should execute the target Flow. For example, `,_jsx(_components.code,{children:`Use this tool if the user explicitly asks to return a package.`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Target Flow`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets the target Flow that the flow agent executes when this tool is called. Click `,_jsx(OptimizedImage,{src:`https://mintcdn.com/cognigy-15abf2ba/I0ba9I1paCAUpGLP/_assets/icons/black-and-white/target-flow.svg?fit=max\u0026auto=format\u0026n=I0ba9I1paCAUpGLP\u0026q=85\u0026s=a829f550bb73834106c8650fba92ac3c`,alt:`target-flow`,\"data-og-width\":`25`,width:`25`,\"data-og-height\":`25`,height:`25`,\"data-path\":`_assets/icons/black-and-white/target-flow.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/cognigy-15abf2ba/I0ba9I1paCAUpGLP/_assets/icons/black-and-white/target-flow.svg?w=280\u0026fit=max\u0026auto=format\u0026n=I0ba9I1paCAUpGLP\u0026q=85\u0026s=fc520a78c49a9d2e8af4b6f52002f48d 280w, https://mintcdn.com/cognigy-15abf2ba/I0ba9I1paCAUpGLP/_assets/icons/black-and-white/target-flow.svg?w=560\u0026fit=max\u0026auto=format\u0026n=I0ba9I1paCAUpGLP\u0026q=85\u0026s=1c5c668a0749df526fa2c188ec787e25 560w, https://mintcdn.com/cognigy-15abf2ba/I0ba9I1paCAUpGLP/_assets/icons/black-and-white/target-flow.svg?w=840\u0026fit=max\u0026auto=format\u0026n=I0ba9I1paCAUpGLP\u0026q=85\u0026s=0a5d927c71a9d07259ed7b1d77db412d 840w, https://mintcdn.com/cognigy-15abf2ba/I0ba9I1paCAUpGLP/_assets/icons/black-and-white/target-flow.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=I0ba9I1paCAUpGLP\u0026q=85\u0026s=0155fb8b402a4bf88c08bf127c6a2a12 1100w, https://mintcdn.com/cognigy-15abf2ba/I0ba9I1paCAUpGLP/_assets/icons/black-and-white/target-flow.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=I0ba9I1paCAUpGLP\u0026q=85\u0026s=cb95cc8ff0aaacdabfddc09e505e6c24 1650w, https://mintcdn.com/cognigy-15abf2ba/I0ba9I1paCAUpGLP/_assets/icons/black-and-white/target-flow.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=I0ba9I1paCAUpGLP\u0026q=85\u0026s=a596aa8a907659c39a3c8fbe3fea3625 2500w`}),` to open the target Flow.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Select Node`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets the target Node that the flow agent executes when the target Flow is called. You must set the Node you want to select as an Entrypoint with the `,_jsx(_components.a,{href:`/ai/agents/develop/nodes/overview#set-nodes-as-entrypoints`,children:`Set Entrypoint`}),` setting before you can select it.`]})]})]})]}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Debug settings`,id:`debug-settings-8`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Debug Message when called`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Activates the output of a debug message when the tool is called to provide detailed information about the tool call.`})]})})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced-7`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Sets a condition that must be evaluated as true to activate the Execute Workflow tool. If false, the flow agent can’t access the tool.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Parse Intents`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Sets whether Intents should be parsed in the target Flow. This parameter is inactive by default.`,_jsx(`br`,{}),_jsx(`br`,{}),`If this parameter is activated, Cognigy NLU reparses the Intents in the target Flow based on `,_jsx(_components.code,{children:`text`}),` in the `,_jsx(_components.a,{href:`/ai/agents/develop/ai-agent-memory/input#accessing-input-properties`,children:`Input object`}),`. Then, Cognigy NLU generates Intent scores using the Intents from the target Flow instead of the ones from the current Flow.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Parse Slots`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Sets whether Slots should be parsed in the target Flow. This parameter is inactive by default.`,_jsx(`br`,{}),_jsx(`br`,{}),`If this parameter is activated, Cognigy NLU reparses the Slots in the target Flow based on `,_jsx(_components.code,{children:`text`}),` in the `,_jsx(_components.a,{href:`/ai/agents/develop/ai-agent-memory/input#accessing-input-properties`,children:`Input object`}),`. Then, Cognigy NLU generates Slot scores using the Slots from the target Flow instead of the ones from the current Flow.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Absorb Context`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Sets whether the `,_jsx(_components.a,{href:`/ai/agents/develop/ai-agent-memory/context#default-context`,children:`default Context object`}),` of the target Flow is used in the context of the Flow the flow agent is currently in.`,_jsx(`br`,{}),_jsx(`br`,{}),`If the default Context of the target Flow has a value, it is copied into the Context object of the flow agent as soon as the target Flow is executed.`]})]})]})]})})]}),`\n`]}),`\n`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`configure-flow-agent-settings-for-each-job`,children:`Configure flow agent settings for each job`}),`\n`,_jsx(_components.p,{children:`Configure more settings for managing flow agents:`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Memory handling`,id:`memory-handling`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Long-Term Memory Injection`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Allow the flow agent to access `,_jsx(_components.a,{href:`/ai/agents/analyze/contact-profiles`,children:`Contact Profile`}),` information for the current user. Select one of the following options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`None`}),` – no memory.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Inherit from flow agent`}),` – use the settings specified in the `,_jsx(_components.a,{href:`/ai/agents/develop/flow-agents/overview#create-flow-agents`,children:`flow agent creation settings`}),`. This option is selected by default.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Inject full Contact Profile`}),` – use all information from the Contact Profile.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Inject Contact Memories only`}),` – use information only from the `,_jsx(_components.strong,{children:`Memories`}),` field in the Contact Profile.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Inject selected Profile fields`}),` – use information from specific fields in the Contact Profile.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Selected Profile Fields`}),_jsx(_components.td,{children:`Text`}),_jsxs(_components.td,{children:[`This parameter appears when the `,_jsx(_components.strong,{children:`Inject selected Profile fields`}),` option is enabled. Enter specific fields from the Contact Profile for targeted data use. Specify the field using the `,_jsx(_components.a,{href:`/ai/agents/analyze/contact-profiles#profile-schema`,children:`Profile keys`}),` format and press `,_jsx(`kbd`,{children:`Enter`}),` to apply it.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Short-Term Memory Injection`}),_jsx(_components.td,{children:`CognigyScript`}),_jsx(_components.td,{children:`Specify a static string or a dynamic value via CognigyScript to make available to the flow agent in the current turn.`})]})]})]})}),_jsx(Accordion,{title:`Grounding knowledge`,id:`grounding-knowledge`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Knowledge Injection`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Use the Knowledge AI feature for the flow agent. Select one of the following options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Never`}),` — don’t use the Knowledge Stores.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`When Required`}),` — let the flow agent decide when querying the Knowledge Stores is required to help the user.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`On each User Input`}),` — query the Knowledge Store(s) after each user input. Note that executing a query on every user input can lead to increased costs and latency.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Use flow agent knowledge`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`This parameter appears when you select either `,_jsx(_components.strong,{children:`When Required`}),` or `,_jsx(_components.strong,{children:`On each User Input`}),`. Enable to use the Knowledge Store configured in the flow agent. The Knowledge Store configured within the `,_jsx(_components.a,{href:`/ai/agents/develop/flow-agents/overview#create-flow-agents`,children:`flow agent creation settings`}),` will be used.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Use Job Knowledge`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`This parameter appears when you select either `,_jsx(_components.strong,{children:`When Required`}),` or `,_jsx(_components.strong,{children:`On each User Input`}),`. Enable this option to configure a specific Knowledge Store for this particular job, allowing the flow agent to access job-specific data or resources.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Job Knowledge Store`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`This parameter appears when you select either `,_jsx(_components.strong,{children:`When Required`}),` or `,_jsx(_components.strong,{children:`On each User Input`}),`. This parameter appears when the `,_jsx(_components.strong,{children:`Use Job Knowledge`}),` option is enabled. Select a specific Knowledge Store for this flow agent’s job.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Top K`}),_jsx(_components.td,{children:`Slider`}),_jsxs(_components.td,{children:[`This parameter appears when you select either `,_jsx(_components.strong,{children:`When Required`}),` or `,_jsx(_components.strong,{children:`On each User Input`}),`. Specify how many Knowledge Chunks to return. The default value is 3, and the maximum value is 5. Providing more results gives the flow agent additional context, but it also increases noise and token usage.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Source Tags`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears when you select either `,_jsx(_components.strong,{children:`When Required`}),` or `,_jsx(_components.strong,{children:`On each User Input`}),`. The tags serve to refine the scope of your knowledge search, allowing you to include only the most pertinent sections of the knowledge base and, as a result, improve the accuracy of search outputs. Before specifying tags, ensure that they were provided during the creation of the Knowledge Sources. Add Tags by specifying each Tag separately and pressing ++enter++. The maximum number of tags is 5. When you specify multiple Source Tags, the Search Extract Output Node defaults to an `,_jsx(_components.code,{children:`AND`}),` operator, meaning it only considers Sources that have all the specified Tags. This approach ensures the search results are precise and highly relevant to the end user’s query. To change this behavior, go to the `,_jsx(_components.strong,{children:`Match Types for Source Tags`}),` parameter.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Match type for Source Tags`}),_jsx(_components.td,{children:`Select`}),_jsxs(_components.td,{children:[`This parameter appears when you select either `,_jsx(_components.strong,{children:`When Required`}),` or `,_jsx(_components.strong,{children:`On each User Input`}),`. The operator to filter Knowledge Sources by Source Tags. Select one of the following options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`AND`}),` — the default value, requires all tags to match across multiple Knowledge Sources. Consider the following example: there are Knowledge Sources with Tags `,_jsx(_components.code,{children:`S-a`}),`, `,_jsx(_components.code,{children:`S-b`}),`, and `,_jsx(_components.code,{children:`S-c`}),`. When you use the `,_jsx(_components.code,{children:`AND`}),` operator to filter by `,_jsx(_components.code,{children:`S-a`}),` and `,_jsx(_components.code,{children:`S-b`}),`, only Sources with both Tags `,_jsx(_components.code,{children:`S-a`}),` and `,_jsx(_components.code,{children:`S-b`}),` will be included in the search results.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`OR`}),` — requires at least one tag to match across multiple Knowledge Sources. Consider the following example: there are Knowledge Sources with Tags `,_jsx(_components.code,{children:`S-a`}),`, `,_jsx(_components.code,{children:`S-b`}),`, and `,_jsx(_components.code,{children:`S-c`}),`. When you use the `,_jsx(_components.code,{children:`OR`}),` operator to filter by `,_jsx(_components.code,{children:`S-a`}),` or `,_jsx(_components.code,{children:`S-b`}),`, any Source with either Tag `,_jsx(_components.code,{children:`S-a`}),` or `,_jsx(_components.code,{children:`S-b`}),` will be included in the search results.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Generate Search Prompt`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`This parameter appears when you select `,_jsx(_components.strong,{children:`On each User Input`}),`. This parameter is enabled by default and allows you to generate a context-aware search prompt before executing the knowledge search. Note that enabling this parameter may lead to increased cost and latency.`]})]})]})]})}),_jsx(Accordion,{title:`Storage \u0026 streaming options`,id:`storage-and-streaming-options`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`How to handle the result`}),_jsx(_components.td,{children:`Select`}),_jsxs(_components.td,{children:[`Determine how to handle the prompt result:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Store in Input`}),` — stores the flow agent result in the Input object. To print the result, use the `,_jsx(_components.strong,{children:`AI Agent Output`}),` token or the configured Input key in a Say Node, or enable the `,_jsx(_components.strong,{children:`Output Responses Immediately`}),` option.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Store in Context`}),` — stores the result in the Context object. To print the prompt result, refer to the configured Context key in a Say Node or enable the `,_jsx(_components.strong,{children:`Output Responses Immediately`}),` option.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Stream to Output`}),` — streams the result directly into the output. This means that chunks coming from the prompt response will be output directly into the conversation chat as soon as a Stream Buffer Flush Token is matched, and you don’t need to use the AI Agent Output Token and Say Node. `,_jsx(_components.strong,{children:`Store Copy in Input`}),` is active by default. When you deactivate it, the result isn’t stored in the Input or the Context.`]})]}),` `,_jsx(_components.strong,{children:`Stream to Output`}),` is the default option.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Input Key to store Result`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`The parameter appears when you select `,_jsx(_components.strong,{children:`Store in Input`}),`, or when you select `,_jsx(_components.strong,{children:`Stream to Output`}),` and `,_jsx(_components.strong,{children:`Store Copy in Input`}),` is active. The result is stored in the `,_jsx(_components.code,{children:`input.aiAgentOutput`}),` object by default. You can specify another value, but the `,_jsx(_components.strong,{children:`AI Agent Output`}),` token will not work if the value is changed.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Context Key to store Result`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`The parameter appears when `,_jsx(_components.strong,{children:`Store in Context`}),` is selected. The result is stored in the `,_jsx(_components.code,{children:`context.aiAgentOutput`}),` object by default. You can specify another key.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Stream Buffer Flush Tokens`}),_jsx(_components.td,{children:`Text Array`}),_jsxs(_components.td,{children:[`The parameter appears when `,_jsx(_components.strong,{children:`Stream to Output`}),` is selected. It defines tokens that trigger the stream buffer to flush to the output. The tokens can be punctuation marks or symbols, such as `,_jsx(_components.code,{children:`\\\\n`}),`. The default tokens are `,_jsx(_components.code,{children:`.`}),`, `,_jsx(_components.code,{children:`!`}),`, `,_jsx(_components.code,{children:`?`}),`, and `,_jsx(_components.code,{children:`\\\\n`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Output Responses Immediately`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`The parameter appears when you select either `,_jsx(_components.strong,{children:`Store in Input`}),` or `,_jsx(_components.strong,{children:`Store in Context`}),`. This parameter allows you to output results immediately without using the Say Node and AI Agent Output token. This parameter is active by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Store Copy in Input`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`The parameter appears when `,_jsx(_components.strong,{children:`Stream to Output`}),` is selected. In addition to streaming the result to the output, store a copy in the Input object by specifying a value in the `,_jsx(_components.strong,{children:`Input Key to store Result`}),` field. This parameter is activated by default.`]})]})]})]})}),_jsxs(Accordion,{title:`Voice`,id:`voice`,children:[_jsxs(_components.p,{children:[`The parameters after `,_jsx(_components.strong,{children:`Voice Setting`}),` appear only when `,_jsx(_components.strong,{children:`Voice Setting`}),` is set to `,_jsx(_components.strong,{children:`Use Job Voice`}),`.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Voice Setting`}),_jsx(_components.td,{children:`Select`}),_jsxs(_components.td,{children:[`Configure the voice settings for the flow agent job. This parameter determines how the flow agent selects the voice for text-to-speech (TTS) output. Select one of the following options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[`- `,_jsx(_components.strong,{children:`Inherit from flow agent`}),` — use the voice settings defined in the `,_jsx(_components.a,{href:`/ai/agents/develop/flow-agents/overview#create-flow-agents`,children:`flow agent creation settings`}),`.`]}),_jsxs(`li`,{children:[`- `,_jsx(_components.strong,{children:`Use Job Voice`}),` – apply custom voice settings specific to this job, allowing the flow agent to adapt to the particular role it performs.`]})]}),` For example, if you create a marketing flow agent, the voice can be more engaging, friendly, and persuasive. However, if the same flow agent performs a different role, such as customer support, the voice might be more neutral, empathetic, and formal.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`TTS Vendor`}),_jsx(_components.td,{children:`Dropdown`}),_jsx(_components.td,{children:`Select a TTS vendor from the list or add a custom one.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`TTS ElevenLabs Model`}),_jsx(_components.td,{children:`Dropdown`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`ElevenLabs`}),` is selected in `,_jsx(_components.strong,{children:`TTS Vendor`}),`. Select the TTS model for ElevenLabs. Each model has specific languages available. The default is `,_jsx(_components.code,{children:`eleven_multilingual_v2`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`TTS OpenAI Model`}),_jsx(_components.td,{children:`Dropdown`}),_jsxs(_components.td,{children:[`Appears when `,_jsx(_components.strong,{children:`OpenAI`}),` is selected in `,_jsx(_components.strong,{children:`TTS Vendor`}),`. Select the TTS model for OpenAI: `,_jsx(_components.code,{children:`tts-1`}),`, `,_jsx(_components.code,{children:`tts-1-hd`}),`, or `,_jsx(_components.code,{children:`gpt-4o-mini-tts`}),`. The default is `,_jsx(_components.code,{children:`tts-1`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom (Vendor)`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`The `,_jsx(_components.strong,{children:`Custom`}),` parameter appears when you select `,_jsx(_components.strong,{children:`Custom`}),` from the `,_jsx(_components.strong,{children:`TTS Vendor`}),` list. Specify the `,_jsx(_components.a,{href:`/voice-gateway/webapp/speech-services#add-custom-speech-vendors`,children:`custom TTS Vendor`}),`. For preinstalled providers, use all lowercase letters, for example, `,_jsx(_components.code,{children:`microsoft`}),`, `,_jsx(_components.code,{children:`google`}),`, `,_jsx(_components.code,{children:`aws`}),`. For custom providers, use the name that you specified on the `,_jsx(_components.a,{href:`/voice-gateway/webapp/speech-services`,children:`Speech Service`}),` page in the Voice Gateway Self-Service Portal.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`TTS Language`}),_jsx(_components.td,{children:`Dropdown`}),_jsx(_components.td,{children:`Define the language of the voice flow agent output. Ensure this language aligns with the preferred language of the end user.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom (Language)`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`The `,_jsx(_components.strong,{children:`Custom`}),` parameter appears when you select `,_jsx(_components.strong,{children:`Custom`}),` from the `,_jsx(_components.strong,{children:`TTS Language`}),` list. Specify the language of the flow agent output. The format depends on the option selected in the TTS vendor; check your TTS vendor documentation. The typical format is as follows: `,_jsx(_components.code,{children:`de-DE`}),`, `,_jsx(_components.code,{children:`fr-FR`}),`, `,_jsx(_components.code,{children:`en-US`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`TTS Voice`}),_jsx(_components.td,{children:`Dropdown`}),_jsx(_components.td,{children:`Define the voice that should be used for the voice flow agent output. This parameter allows you to customize the flow agent’s voice by defining its tone, gender, style, and regional specifics, making conversations more personalized and aligned with your brand and target audience.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom (Voice)`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`The `,_jsx(_components.strong,{children:`Custom`}),` parameter appears when you select `,_jsx(_components.strong,{children:`Custom`}),` from the `,_jsx(_components.strong,{children:`TTS Voice`}),` list. Use this parameter to specify a custom voice, which is often required for region-specific voices. The format depends on the option selected in `,_jsx(_components.strong,{children:`TTS Vendor`}),` and typically follows the pattern `,_jsx(_components.code,{children:`language-region-VoiceName`}),`. For example, `,_jsx(_components.code,{children:`de-DE-ConradNeural`}),` for German (Germany) male voice or `,_jsx(_components.code,{children:`en-US-JennyNeural`}),` for English (US) female voice.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`TTS Label`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`The alternative name of the TTS vendor is the one you `,_jsx(_components.a,{href:`/voice-gateway/webapp/applications#add-additional-tts-and-stt-vendor`,children:`specify in the Voice Gateway Self-Service Portal`}),`. If you have created multiple speech services from the same vendor, use the label to specify which service to use.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Disable TTS Audio Caching`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Disables TTS audio caching. By default, the setting is deactivated. In this case, previously requested TTS audio results are stored in the flow agent cache. When a new TTS request is made and the audio text has been previously requested, the flow agent retrieves the cached result instead of sending another request to the TTS provider. When the setting is activated, the flow agent caches TTS results but doesn’t use them. In this case, each request is directly sent to your speech provider. Note that disabling caching can increase TTS costs. For detailed information, contact your speech provider.`})]})]})]})]}),_jsx(Accordion,{title:`Tool settings`,id:`tool-settings`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool Choice`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`If supported by your LLM, determines how the flow agent selects tools:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Auto`}),` — tools are automatically selected by the flow agent when available and needed. This option is selected by default.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Required`}),` — your flow agent always uses one of its tools.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`None`}),` — your flow agent doesn’t use tools.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Use Strict mode`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`If supported by the LLM provider, ensures that the arguments passed to a tool call precisely match the expected parameters. Activating this mode can help prevent errors. However, it might cause a slight delay in the response, especially during the first call after making changes.`})]})]})]})}),_jsx(Accordion,{title:`Image handling`,id:`image-handling`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Process Images`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Allows the flow agent to read and understand image attachments. Ensure that your LLM supports image processing; refer to your LLM provider’s documentation. In addition, ensure that attachments are supported by and activated in your Endpoint, for example, Webchat.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Images in Transcript`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets how images uploaded before the last turn are handled to reduce token usage. You can select the following options: `,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Minify`}),` — reduces the size of these images to 512x512px. This option is selected by default.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Drop`}),` — excludes the images.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Keep`}),` — sends the maximum size (this option consumes more tokens).`]})]}),`Limitations and token consumption depend on the LLM used.`]})]})]})]})}),_jsx(Accordion,{title:`Advanced`,id:`advanced-8`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`LLM`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Select a model that supports the `,_jsx(_components.a,{href:`/ai/agents/develop/gen-ai-and-llms/model-support-by-feature`,children:`Flow Agent node feature`}),`. The selected `,_jsx(_components.strong,{children:`Default`}),` model is the model assigned to `,_jsx(_components.strong,{children:`AI Agents`}),` in `,_jsx(_components.strong,{children:`Manage > AI \u0026 Voice Providers > Language Models > Assignments`}),`. Select the model that you `,_jsx(_components.a,{href:`/ai/agents/develop/gen-ai-and-llms/llms`,children:`added earlier`}),` while configuring the Agentic AI feature. This model will manage your flow agent.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Flow agent base version`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Select the base version of the flow agent to use:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`1.0`}),` — select a specific version, such as `,_jsx(_components.code,{children:`1.0`}),`, to ensure stability and avoid potential breaking changes. Use this version in production environments or for critical workflows. The version dropdown will be updated as future versions of the Flow Agent node are released.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Latest`}),` — use the most recent version of the Flow Agent node. While this version ensures access to the latest features, it may cause breaking changes that require manual updates.`]})]}),`When upgrading to a fixed version or switching to the latest, always test your flow agent carefully to ensure it works with the selected version.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timeout`}),_jsx(_components.td,{children:`Number`}),_jsx(_components.td,{children:`Sets the maximum number of milliseconds to wait for a response from the LLM provider. The default is 8000 ms.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Maximum Completion Tokens`}),_jsx(_components.td,{children:`Slider`}),_jsxs(_components.td,{children:[`Define the maximum number of tokens that can be used during a process to manage costs. However, if the limit is set too low, the output may be incomplete, as the process could be cut off before it finishes. For example, if you set the maximum tokens to 100, the model will stop generating content once it reaches 100 tokens. This number would be roughly equal to 100 words, depending on the language and tokenization method. The default is 4000, and the range is 100–8000. If your installation has deprecated this parameter, migrate it to `,_jsx(_components.strong,{children:`Custom Model Options`}),` in the `,_jsx(_components.strong,{children:`Custom Options`}),` section.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Temperature`}),_jsx(_components.td,{children:`Slider`}),_jsxs(_components.td,{children:[`Defines the sampling temperature, which ranges between 0 and 1. Higher values, such as 0.8, make the output more random, while lower values, such as 0.2, make it more focused and deterministic. The default is 0.7. If your installation has deprecated this parameter, migrate it to `,_jsx(_components.strong,{children:`Custom Model Options`}),` in the `,_jsx(_components.strong,{children:`Custom Options`}),` section.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Include Rich Media Context`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Controls whether the text from the `,_jsx(_components.a,{href:`/ai/agents/develop/node-reference/basic/say#output-type`,children:`Textual Description`}),` field in Say, Question, and Optional Questions Nodes is added to the flow agent’s prompt. This text provides flow agents with additional information, improving their responses.`,_jsx(`br`,{}),_jsx(`br`,{}),`If you have filled in a `,_jsx(_components.strong,{children:`Textual Description`}),` field in other Nodes, this text is added to the prompt as context for rich media, such as Text with Quick Replies. If the `,_jsx(_components.strong,{children:`Textual Description`}),` field is empty, the button titles and alt text from the rich media are added to the prompt. By default, the `,_jsx(_components.strong,{children:`Include Rich Media Context`}),` parameter is active. When this parameter is inactive, nothing related to the rich media is added to the prompt.`,_jsx(`br`,{}),_jsx(`br`,{}),_jsx(_components.strong,{children:`Examples`}),`:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[`If `,_jsx(_components.strong,{children:`Textual Description`}),` is filled in:`,_jsxs(`p`,{children:[`Textual Description: `,_jsx(_components.code,{children:`Select your preferred delivery option: Standard Delivery or Express Delivery`}),`.`]}),_jsxs(`p`,{children:[`Quick Replies buttons: `,_jsx(_components.code,{children:`Standard Delivery`}),`, `,_jsx(_components.code,{children:`Express Delivery`}),`.`]}),_jsxs(`p`,{children:[`Context added to the prompt: `,_jsx(_components.code,{children:`Select your preferred delivery option: Standard Delivery or Express Delivery`}),`.`]})]}),_jsxs(`li`,{children:[`If `,_jsx(_components.strong,{children:`Textual Description`}),` is empty:`,_jsx(`p`,{children:`Textual Description: empty.`}),_jsxs(`p`,{children:[`Quick Replies buttons: `,_jsx(_components.code,{children:`Standard Delivery`}),`, `,_jsx(_components.code,{children:`Express Delivery`}),`.`]}),_jsxs(`p`,{children:[`Context added to the prompt: `,_jsx(_components.code,{children:`Standard Delivery`}),`, `,_jsx(_components.code,{children:`Express Delivery`}),`.`]})]}),_jsxs(`li`,{children:[`If `,_jsx(_components.strong,{children:`Include Rich Media Context`}),` is inactive:`,_jsx(`p`,{children:`No information related to the rich media is added to the prompt.`})]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ignore deprecated parameters`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`This parameter appears only if your installation has deprecated the `,_jsx(_components.strong,{children:`Maximum Completion Tokens`}),` and `,_jsx(_components.strong,{children:`Temperature`}),` parameters. Ignores these parameters. This parameter is inactive by default.`]})]})]})]})}),_jsx(Accordion,{title:`Custom options`,id:`custom-options`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom Model Options`}),_jsx(_components.td,{children:`JSON`}),_jsxs(_components.td,{children:[`Sends custom options to the LLM. These options override the model options set in the Node. For the available options, refer to the API specification of your LLM provider. The default is `,_jsx(_components.code,{children:`{}`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom Request Options`}),_jsx(_components.td,{children:`JSON`}),_jsxs(_components.td,{children:[`Sends custom request options to the LLM provider. The default is `,_jsx(_components.code,{children:`{}`}),`.`]})]})]})]})}),_jsx(Accordion,{title:`Error handling`,id:`error-handling`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Log to System Logs`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Logs errors to the system logs. They can be viewed on the `,_jsx(_components.a,{href:`/ai/agents/test/logs`,children:`Logs`}),` page of your Project. This parameter is inactive by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Store in Input`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Store errors in the Input object. This parameter is active by default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Select Error Handling Approach`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`Sets how Flow execution behaves if the Flow Agent node throws an error. You can select one of the following options:`,_jsxs(`ul`,{children:[_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Stop Flow Execution`}),` — terminates the current Flow execution.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Continue Flow Execution`}),` — allows the Flow to continue executing, bypassing the error and proceeding to the next steps.`]}),_jsxs(`li`,{children:[_jsx(_components.strong,{children:`Go to Node`}),` — redirects Flow execution to a specific Node, which can be useful for error recovery or customized error handling.`]})]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Go to Node`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`This parameter appears when you select `,_jsx(_components.strong,{children:`Go to Node`}),` in `,_jsx(_components.strong,{children:`Select Error Handling Approach`}),`. Sets the Flow that includes the Node to which you want to redirect Flow execution.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Select Node`}),_jsx(_components.td,{children:`List`}),_jsxs(_components.td,{children:[`This parameter appears when `,_jsx(_components.strong,{children:`Go to Node`}),` in `,_jsx(_components.strong,{children:`Select Error Handling Approach`}),` is selected. Sets the Node to which you want to redirect Flow execution.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Error Message (optional)`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears when you select `,_jsx(_components.strong,{children:`Continue Flow Execution`}),` in `,_jsx(_components.strong,{children:`Select Error Handling Approach`}),`. Add a message to output if the Flow Agent node fails.`]})]})]})]})}),_jsxs(Accordion,{title:`Debug settings`,id:`debug-settings-9`,children:[_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Log Job Execution`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Send a debug message with the current flow agent job configuration. The message appears in the Interaction Panel when `,_jsx(_components.a,{href:`/ai/agents/test/interaction-panel/chat#debug-mode`,children:`debug mode`}),` is enabled. This parameter is active by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Log Knowledge Results`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Send a debug message containing the result from a knowledge search. The message appears in the Interaction Panel when `,_jsx(_components.a,{href:`/ai/agents/test/interaction-panel/chat#debug-mode`,children:`debug mode`}),` is enabled. This parameter is inactive by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Show Token Count`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Sends a debug message containing the input, output, and total token count. The message appears in the Interaction Panel when `,_jsx(_components.a,{href:`/ai/agents/test/interaction-panel/chat#debug-mode`,children:`debug mode`}),` is active. Cognigy uses the GPT-3 tokenizer algorithm, so actual token usage may vary depending on the model used. This parameter is inactive by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Log System Prompt`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Sends a debug message containing the system prompt sent to the LLM provider and the subsequent completion. The message appears in the Interaction Panel when `,_jsx(_components.a,{href:`/ai/agents/test/interaction-panel/chat#debug-mode`,children:`debug mode`}),` is active. This parameter is inactive by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Log LLM Latency`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Sends a debug message containing key latency metrics for the request to the model, including the time taken for the first output and the total time to complete the request. The message appears in the Interaction Panel when `,_jsx(_components.a,{href:`/ai/agents/test/interaction-panel/chat#debug-mode`,children:`debug mode`}),` is enabled. This parameter is inactive by default.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Send request logs to Webhook`}),_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:`Sends the request sent to the LLM provider and the subsequent completion to a webhook service, including metadata, the request body, and custom logging data. With this parameter, you can use a webhook service to view detailed logs of the request to the LLM. This parameter is inactive by default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Webhook URL`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears when you toggle on `,_jsx(_components.strong,{children:`Send request logs to Webhook`}),`. Sets the URL of the webhook service to send the request logs to. Logging requires a URL.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom Logging Data`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears when you toggle on `,_jsx(_components.strong,{children:`Send request logs to Webhook`}),`. Sets custom data to send with the request to the webhook service. You can use CognigyScript to reference any value or object.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Condition for Webhook Logging`}),_jsx(_components.td,{children:`CognigyScript`}),_jsxs(_components.td,{children:[`This parameter appears when you toggle on `,_jsx(_components.strong,{children:`Send request logs to Webhook`}),`. Sets a condition that controls when Cognigy writes the logs to the webhook. Cognigy logs the request only if the condition is empty or evaluates to true.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Webhook Headers`}),_jsx(_components.td,{children:`Input fields`}),_jsxs(_components.td,{children:[`Sets the headers to send with the request to the webhook service. You can switch between the graphical and JSON editors to enter the header key and value either in the `,_jsx(_components.strong,{children:`Key`}),` and `,_jsx(_components.strong,{children:`Value`}),` fields or in the code field in JSON format. When using the JSON editor, follow the `,_jsx(_components.a,{href:`https://json-schema.org`,children:`JSON Schema specification`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Log Tool Definitions`}),_jsx(_components.td,{children:`Toggle`}),_jsxs(_components.td,{children:[`Sends a debug message containing information about the configured flow agent tools. The message appears in the Interaction Panel when `,_jsx(_components.a,{href:`/ai/agents/test/interaction-panel/chat#debug-mode`,children:`debug mode`}),` is enabled. This parameter is inactive by default.`]})]})]})]}),_jsx(_components.p,{children:`To test and refine the job settings, use the Interaction Panel on the right side of the screen.`}),_jsxs(_components.p,{children:[`To view the flow agent’s Flow in detail, click `,_jsx(_components.strong,{children:`Advanced Editor`}),` in the upper-right corner.`]}),_jsxs(_components.p,{children:[`One flow agent can have multiple jobs. To add another job, click `,_jsx(_components.strong,{children:`Add Job`}),` in the bottom-left corner. Note that each job corresponds to one Flow.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`more-information`,children:`More information`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/ai/agents/overview`,children:`Overview`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/ai/agents/quickstart`,children:`Getting Started`})}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(_components.p,{children:[_jsx(`sup`,{id:`footnote1`,children:`1`}),`: Note that not all LLMs support streaming.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Jobs and tools","sidebarTitle":"Jobs and tools","keywords":["ai agents","jobs","tools","mcp","handover"],"seo":{"metatags":{"description":"Add or change jobs and tools on a Flow-based agent, including MCP, Knowledge, Send Email, and handover tools."}},"description":null,"href":"/ai/agents/develop/flow-agents/configure-jobs-and-tools"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Configure tools for flow agents","slug":"configure-tools-for-flow-agents","depth":2,"children":[]},{"title":"Configure flow agent settings for each job","slug":"configure-flow-agent-settings-for-each-job","depth":2,"children":[]},{"title":"More information","slug":"more-information","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cognigy-15abf2ba/e26ea8517c55742b/cognigy.js","/_mintlify/custom/cognigy-15abf2ba/d21fbb25f095fd7a/custom-cookie-banner.js","/_mintlify/custom/cognigy-15abf2ba/cedb6352c9cc4c60/custom-footer.js","/_mintlify/custom/cognigy-15abf2ba/3c510baa73b34da1/_docs-cli/cli.js","/_mintlify/custom/cognigy-15abf2ba/6dc2271c48fecc51/_docs-cli/commands/validate-internal-links.js","/_mintlify/custom/cognigy-15abf2ba/77a6f6fef1025f1b/single-page-viewer.js","/_mintlify/custom/cognigy-15abf2ba/d79ae6fcfedc7f1d/_docs-cli/commands/format-tables.js","/_mintlify/custom/cognigy-15abf2ba/1916eb35ae5933b3/_docs-cli/commands/validate-external-links.js","/_mintlify/custom/cognigy-15abf2ba/20ce9f7a800f11bb/_assets/unified-widget/unified-widget.iife.js","/_mintlify/custom/cognigy-15abf2ba/d1ea2020aeacda6e/agent-maintenance-banner.js","/_mintlify/custom/cognigy-15abf2ba/4f8f57d0b34b29d5/scroll-reveal.js"],"subdomain":"cognigy-15abf2ba","siteName":"Cognigy Documentation","title":"Jobs and tools - Cognigy Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T17:39:00.817Z","gitLastModified":"2026-11-11T17:37:26.000Z","originalFileLocation":"ai/agents/develop/flow-agents/configure-jobs-and-tools.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Cognigy Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Jobs and tools - Cognigy Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cognigy Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cognigy-15abf2ba.mintlify.site/_mintlify/api/og/v2?division=Flow+agents\u0026amp;title=Jobs+and+tools\u0026amp;theme=f1701a8fcd52e43e66af9aac\u0026amp;signature=8011bd756f1dab4f52eaaa6616328670fdbcc397262ed84f36f036f6a0d9d5e3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Jobs and tools - Cognigy Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cognigy-15abf2ba.mintlify.site/_mintlify/api/og/v2?division=Flow+agents\u0026amp;title=Jobs+and+tools\u0026amp;theme=f1701a8fcd52e43e66af9aac\u0026amp;signature=8011bd756f1dab4f52eaaa6616328670fdbcc397262ed84f36f036f6a0d9d5e3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cognigy-15abf2ba/z4BR7JDXl81k5R_q/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cognigy Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1863DC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ai/agents/develop/flow-agents/configure-jobs-and-tools.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cognigy.com/#organization\",\"name\":\"Cognigy Documentation\",\"url\":\"https://docs.cognigy.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cognigy-15abf2ba/nRSdAucuLUeDXgwa/_assets/NiCE-Cognigy-black-blue.svg?fit=max\u0026auto=format\u0026n=nRSdAucuLUeDXgwa\u0026q=85\u0026s=cbef35aa255935ab747a98d2eb4eead4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cognigy.com#website\",\"name\":\"Cognigy Documentation\",\"url\":\"https://docs.cognigy.com\",\"publisher\":{\"@id\":\"https://docs.cognigy.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools#webpage\",\"url\":\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools\",\"name\":\"Jobs and tools\",\"dateModified\":\"2026-11-11T17:37:26.000Z\",\"isPartOf\":{\"@id\":\"https://docs.cognigy.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Design\",\"item\":\"https://docs.cognigy.com/ai/agents/develop/designing-agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Flows\",\"item\":\"https://docs.cognigy.com/ai/agents/develop/projects-and-flows/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Flow agents\",\"item\":\"https://docs.cognigy.com/ai/agents/develop/flow-agents/overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Jobs and tools\",\"item\":\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools#article\",\"headline\":\"Jobs and tools\",\"name\":\"Jobs and tools\",\"url\":\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cognigy.com//ai/agents/develop/flow-agents/configure-jobs-and-tools#webpage\"},\"dateModified\":\"2026-11-11T17:37:26.000Z\",\"keywords\":\"ai agents, jobs, tools, mcp, handover\",\"publisher\":{\"@id\":\"https://docs.cognigy.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cognigy.com#website\"}}]}\u003c/script>","agentPointerHref":"/ai/agents/develop/flow-agents/configure-jobs-and-tools.md","siteName":"Cognigy Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","menu":[{"item":"Cognigy","description":"Build, train, and orchestrate conversational AI agents.","groups":[{"group":"Getting started","pages":[{"title":"Cognigy","sidebarTitle":"Cognigy","mode":"wide","href":""},{"title":"Platform overview","href":"/ai/getting-started/platform-overview"},{"title":"Agent development lifecycle","sidebarTitle":"Agent lifecycle","href":"/ai/getting-started/agent-lifecycle"},{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/ai/getting-started/quickstart"},{"title":"Cognigy glossary","sidebarTitle":"Glossary","href":"/ai/getting-started/glossary"},{"title":"Navigate the platform","sidebarTitle":"Navigate the platform","href":"/ai/getting-started/navigate-the-platform"}]},{"group":"Design","pages":[{"title":"Designing agents","sidebarTitle":"Overview","href":"/ai/agents/develop/designing-agents"},{"group":"Agents","root":{"title":"Agents","sidebarTitle":"Overview","href":"/ai/agents/overview"},"tag":"beta","pages":[{"title":"Brand persona","sidebarTitle":"Brand persona","href":"/ai/agents/develop/brand-persona"},{"title":"Voice","sidebarTitle":"Voice","href":"/ai/agents/develop/voice-configuration"},{"title":"Knowledge","href":"/ai/agents/develop/knowledge"},{"title":"Skills","sidebarTitle":"Skills","href":"/ai/agents/develop/skills"},{"title":"Tools","href":"/ai/agents/develop/tools"},{"title":"Guardrails","href":"/ai/agents/develop/guardrails"},{"group":"Advanced","pages":[{"title":"Hooks","href":"/ai/agents/develop/hooks"},{"title":"System prompt","href":"/ai/agents/develop/system-prompt"}]}]},{"group":"Flows","root":{"title":"Flows","href":"/ai/agents/develop/projects-and-flows/overview"},"pages":[{"group":"Flow agents","root":{"title":"Flow agents","sidebarTitle":"Overview","href":"/ai/agents/develop/flow-agents/overview"},"pages":[{"title":"Persona","sidebarTitle":"Persona","href":"/ai/agents/develop/persona"},{"title":"Getting started with voice flow agents","sidebarTitle":"Voice","href":"/ai/agents/develop/flow-agents/voice"},{"title":"Knowledge","sidebarTitle":"Knowledge","description":"Attach a Knowledge Store to a Flow-based agent so it can answer from your documents.","href":"/ai/agents/develop/flow-agents/knowledge"},{"title":"Jobs and tools","sidebarTitle":"Jobs and tools","href":"/ai/agents/develop/flow-agents/configure-jobs-and-tools"},{"title":"Data privacy and security","sidebarTitle":"Data privacy and security","description":"Configure Contact Profile use and safety instructions when creating a flow agent from scratch.","href":"/ai/agents/develop/flow-agents/data-privacy-and-security"},{"title":"Design-time and run-time features","sidebarTitle":"Design-time and run-time features","href":"/ai/agents/develop/flow-agents/design-time-and-run-time-features"}]},{"title":"Feature parity: agents versus flow agents","sidebarTitle":"Feature parity","href":"/ai/agents/develop/feature-parity"},{"group":"Flow editor","root":{"title":"Flow editor","sidebarTitle":"Overview","href":"/ai/agents/develop/projects-and-flows/editor"},"pages":[{"title":"Collaborative editing","href":"/ai/agents/develop/projects-and-flows/collab-editing"}]},{"group":"Nodes","root":{"title":"Nodes","sidebarTitle":"Overview","href":"/ai/agents/develop/nodes/overview"},"pages":[{"title":"Node search","href":"/ai/agents/develop/nodes/node-search"},{"title":"Channels","href":"/ai/agents/develop/nodes/channels"}]},{"group":"Memory","root":{"title":"AI agent memory","sidebarTitle":"Overview","href":"/ai/agents/develop/ai-agent-memory/overview"},"pages":[{"title":"Input","href":"/ai/agents/develop/ai-agent-memory/input"},{"title":"Context","href":"/ai/agents/develop/ai-agent-memory/context"},{"title":"Profile","href":"/ai/agents/develop/ai-agent-memory/profile"}]},{"title":"Bi-directional transfer","sidebarTitle":"Bi-directional transfer","href":"/ai/agents/develop/nodes/bi-directional-transfer"}]},{"group":"Voice","root":{"title":"Voice","sidebarTitle":"Overview","href":"/ai/agents/develop/voice/overview"},"pages":[{"title":"Technical specifications","sidebarTitle":"Technical specifications","href":"/ai/agents/develop/voice/technical-specifications"},{"title":"Speech to speech","sidebarTitle":"Speech to speech","tag":"experimental","href":"/ai/agents/develop/voice/speech-to-speech"},{"group":"Outbound calls","root":{"title":"Create outbound calls","sidebarTitle":"Outbound calls","href":"/ai/agents/develop/voice/outbound-calls"},"pages":[{"title":"Outbound call statuses","sidebarTitle":"Call statuses","href":"/ai/agents/develop/voice/outbound-call-statuses"}]},{"title":"TTS streaming","href":"/ai/agents/develop/voice/tts-streaming"}]},{"group":"Language models","root":{"title":"Large language models (LLMs)","sidebarTitle":"LLMs","href":"/ai/agents/develop/gen-ai-and-llms/llms"},"pages":[{"title":"Model support by feature","mode":"wide","href":"/ai/agents/develop/gen-ai-and-llms/model-support-by-feature"},{"title":"LLM fallback","href":"/ai/agents/develop/gen-ai-and-llms/fallback"},{"title":"Large language model session token counter","sidebarTitle":"LLM session token counter","href":"/ai/agents/develop/gen-ai-and-llms/llm-session-token-counter"},{"title":"Other LLM operations","sidebarTitle":"Other operations","href":"/ai/agents/develop/gen-ai-and-llms/other-operations"}]},{"group":"Knowledge AI","root":{"title":"Knowledge AI","sidebarTitle":"Overview","href":"/ai/agents/develop/knowledge-ai/overview"},"pages":[{"title":"Activate Knowledge AI","href":"/ai/agents/develop/knowledge-ai/activate"},{"title":"Getting started with Knowledge AI","sidebarTitle":"Getting started with Knowledge AI","href":"/ai/agents/develop/knowledge-ai/getting-started"},{"title":"Knowledge store","href":"/ai/agents/develop/knowledge-ai/knowledge-store"},{"title":"Knowledge connectors","href":"/ai/agents/develop/knowledge-ai/knowledge-connectors"},{"group":"Knowledge source","root":{"title":"Knowledge source","sidebarTitle":"Overview","href":"/ai/agents/develop/knowledge-ai/knowledge-source/overview"},"pages":[{"group":"Text formats","pages":[{"title":"Cognigy text format","href":"/ai/agents/develop/knowledge-ai/knowledge-source/text-formats/ctxt"},{"title":"PDF","href":"/ai/agents/develop/knowledge-ai/knowledge-source/text-formats/pdf"},{"title":"Web page","href":"/ai/agents/develop/knowledge-ai/knowledge-source/text-formats/web-page"}]},{"group":"Text extraction","root":{"title":"Text extraction with content parsers","sidebarTitle":"Overview","href":"/ai/agents/develop/knowledge-ai/knowledge-source/text-extraction/overview"},"pages":[{"title":"Basic parser","href":"/ai/agents/develop/knowledge-ai/knowledge-source/text-extraction/basic-parser"},{"title":"Advanced parser","href":"/ai/agents/develop/knowledge-ai/knowledge-source/text-extraction/advanced-parser"},{"title":"Azure AI Document Intelligence","href":"/ai/agents/develop/knowledge-ai/knowledge-source/text-extraction/azure-ai"}]},{"title":"Knowledge source tags","href":"/ai/agents/develop/knowledge-ai/knowledge-source/knowledge-source-tags"}]},{"group":"Knowledge chunk","root":{"title":"Knowledge chunk","sidebarTitle":"Overview","href":"/ai/agents/develop/knowledge-ai/knowledge-chunk/knowledge-chunk"},"pages":[{"title":"Chunk editor","sidebarTitle":"Knowledge chunk editor","href":"/ai/agents/develop/knowledge-ai/knowledge-chunk/knowledge-chunk-editor"}]},{"group":"Knowledge search and extraction","pages":[{"title":"Search extract output node","href":"/ai/agents/develop/knowledge-ai/knowledge-search-and-extraction/search-extract-output"},{"title":"Copilot: Knowledge tile node","href":"/ai/agents/develop/knowledge-ai/knowledge-search-and-extraction/agent-copilot-knowledge"}]},{"title":"Migration from Weaviate to Qdrant: distance value change","href":"/ai/agents/develop/knowledge-ai/distance-value-change-after-migration"}]}]},{"group":"Test","pages":[{"title":"Testing your AI agents","sidebarTitle":"Overview","href":"/ai/agents/test/testing-your-ai-agents"},{"group":"Simulator","root":{"title":"Simulator","sidebarTitle":"Overview","href":"/ai/agents/test/simulator/overview"},"pages":[{"title":"Scenarios","href":"/ai/agents/test/simulator/scenarios"},{"title":"Simulations","href":"/ai/agents/test/simulator/simulations"},{"title":"Simulator dashboard","sidebarTitle":"Dashboard","href":"/ai/agents/test/simulator/dashboard"}]},{"group":"Interaction panel","root":{"title":"Interaction panel","sidebarTitle":"Overview","href":"/ai/agents/test/interaction-panel/overview"},"pages":[{"title":"Chat","href":"/ai/agents/test/interaction-panel/chat"},{"title":"Tracing","href":"/ai/agents/test/interaction-panel/tracing"},{"title":"Voice call","href":"/ai/agents/test/interaction-panel/voice-call"},{"title":"Live follow","href":"/ai/agents/test/interaction-panel/live-follow"},{"title":"Simulation mode","sidebarTitle":"Simulation","href":"/ai/agents/test/interaction-panel/simulation"}]},{"title":"Mocking","href":"/ai/agents/test/mocking"},{"title":"Demo Webchat","href":"/ai/agents/test/demo-webchat"},{"title":"Logs","href":"/ai/agents/test/logs"},{"group":"Playbooks","root":{"title":"Playbooks","sidebarTitle":"Overview","href":"/ai/agents/test/playbooks"},"pages":[{"title":"Assertions","href":"/ai/agents/test/assertions"}]},{"title":"Voice preview","href":"/ai/agents/test/voice-preview"}]},{"group":"Deploy","pages":[{"title":"Deploying your AI agents","sidebarTitle":"Overview","href":"/ai/agents/deploy/deploying-your-ai-agents"},{"group":"Endpoint settings","root":{"title":"Overview","href":"/ai/agents/deploy/endpoints/overview"},"pages":[{"title":"Data protection \u0026 analytics","sidebarTitle":"Data protection and analytics","href":"/ai/agents/deploy/endpoints/data-protection-and-analytics"},{"title":"Session management","href":"/ai/agents/deploy/endpoints/session-management"},{"title":"Real-time translation","href":"/ai/agents/deploy/endpoints/real-time-translation-settings"},{"title":"File storage","href":"/ai/agents/deploy/endpoints/file-storage"},{"title":"Content conversion","mode":"wide","href":"/ai/agents/deploy/endpoints/content-conversion"},{"title":"Test mode for endpoints","href":"/ai/agents/deploy/endpoints/test-mode"},{"title":"Inject and notify API","href":"/ai/agents/deploy/endpoints/inject-and-notify"}]},{"title":"Packaging","href":"/ai/agents/deploy/packages"},{"title":"Snapshots","href":"/ai/agents/deploy/snapshots"},{"group":"Human escalation","pages":[{"title":"Handover providers","href":"/ai/escalate/handovers"},{"title":"Agent Copilot","href":"/ai/escalate/agent-copilot"},{"group":"Handover features","pages":[{"title":"User inactivity detection and handling","href":"/ai/escalate/handover-features/user-inactivity-detection"},{"title":"Handover status","href":"/ai/escalate/handover-features/handover-status"},{"title":"Real-time queue notifications","href":"/ai/escalate/handover-features/real-time-queue-notifications"}]}]}]},{"group":"Analyze","pages":[{"title":"Analytics","sidebarTitle":"Overview","href":"/ai/agents/analyze/overview"},{"group":"Collecting data","pages":[{"title":"Collecting data","sidebarTitle":"Overview","href":"/ai/agents/analyze/collecting-data"},{"title":"Analytics steps","href":"/ai/agents/analyze/analytics-steps"},{"title":"User and session identification","href":"/ai/agents/analyze/user-and-session-identification"},{"title":"Data expiration in Cognigy","sidebarTitle":"Data expiration","href":"/ai/agents/analyze/data-expiration"}]},{"title":"Insights","href":"/ai/agents/analyze/insights"},{"title":"Cognigy OData analytics endpoint","sidebarTitle":"OData","href":"/ai/agents/analyze/odata"},{"title":"Call tracing","href":"/ai/agents/analyze/call-tracing"},{"title":"Contact profiles","href":"/ai/agents/analyze/contact-profiles"},{"group":"Goals and tasks","root":{"title":"Goals and tasks","sidebarTitle":"Overview","href":"/ai/agents/analyze/goals-and-tasks/overview"},"pages":[{"title":"Tasks","href":"/ai/agents/analyze/goals-and-tasks/tasks"},{"title":"Goals","href":"/ai/agents/analyze/goals-and-tasks/goals"}]}]},{"group":"Advanced","pages":[{"group":"Platform features","pages":[{"title":"Platform features","sidebarTitle":"Overview","href":"/ai/platform-features/overview"},{"title":"AI assist","sidebarTitle":"AI assist","href":"/ai/platform-features/ai-assist"},{"group":"Natural language understanding","root":{"title":"NLU overview","sidebarTitle":"Overview","href":"/ai/platform-features/nlu/overview"},"pages":[{"group":"Intents","root":{"title":"Intents","sidebarTitle":"Overview","href":"/ai/platform-features/nlu/intents/overview"},"pages":[{"title":"Intent example sentences","sidebarTitle":"Example sentences","href":"/ai/platform-features/nlu/intents/example-sentences"},{"title":"Annotations","href":"/ai/platform-features/nlu/intents/annotations"},{"title":"Intent conditions","href":"/ai/platform-features/nlu/intents/conditions"},{"title":"Intent analyzer","href":"/ai/platform-features/nlu/intents/intent-analyzer"},{"group":"Intent hierarchy","root":{"title":"Intent hierarchy","sidebarTitle":"Overview","href":"/ai/platform-features/nlu/intents/intent-hierarchy/overview"},"pages":[{"title":"Intent mapping priority","href":"/ai/platform-features/nlu/intents/intent-hierarchy/intent-mapping-priority"},{"title":"Inheritance mechanism","href":"/ai/platform-features/nlu/intents/intent-hierarchy/inherit-child-example-sentences"}]},{"title":"Reject intent","href":"/ai/platform-features/nlu/intents/reject-intent"},{"title":"Intent rules","href":"/ai/platform-features/nlu/intents/rules"},{"title":"Trigger intent","href":"/ai/platform-features/nlu/intents/trigger-intent"},{"title":"Thresholds","href":"/ai/platform-features/nlu/intents/thresholds"},{"title":"Default reply","href":"/ai/platform-features/nlu/intents/default-reply"},{"title":"Confirmation words","href":"/ai/platform-features/nlu/intents/confirmation-words"},{"title":"Yes/no intents","href":"/ai/platform-features/nlu/intents/yes-no-intents"},{"title":"Intent trainer","href":"/ai/platform-features/nlu/intents/intent-trainer"}]},{"group":"Slots and lexicons","root":{"title":"Slots","sidebarTitle":"Overview","href":"/ai/platform-features/nlu/slots/overview"},"pages":[{"title":"System-defined slots","sidebarTitle":"System-defined","href":"/ai/platform-features/nlu/slots/system-defined"},{"group":"User-defined","root":{"title":"User-defined slots","sidebarTitle":"Overview","href":"/ai/platform-features/nlu/slots/user-defined/overview"},"pages":[{"title":"Lexicon slots","href":"/ai/platform-features/nlu/slots/user-defined/lexicon"},{"title":"Regex slots","href":"/ai/platform-features/nlu/slots/user-defined/regex"}]}]},{"title":"Attachments","href":"/ai/platform-features/nlu/attachments"},{"title":"NLU languages","href":"/ai/platform-features/nlu/language-support"},{"title":"Slot fillers","href":"/ai/platform-features/nlu/slot-fillers"},{"title":"Text cleaner","href":"/ai/platform-features/nlu/text-cleaner"},{"group":"External NLU","root":{"title":"External NLU","sidebarTitle":"Overview","href":"/ai/platform-features/nlu/external/overview"},"pages":[{"title":"Intent recognition with external embedding model","href":"/ai/platform-features/nlu/external/external-nlu-intent-recognition"},{"title":"LLM-based intent reranking","href":"/ai/platform-features/nlu/external/intent-reranking"},{"group":"NLU connectors","root":{"title":"NLU connectors","sidebarTitle":"Overview","href":"/ai/platform-features/nlu/external/nlu-connectors/overview"},"pages":[{"title":"NLU transformers","href":"/ai/platform-features/nlu/external/nlu-connectors/nlu-transformers"}]}]}]},{"group":"CognigyScript","root":{"title":"CognigyScript","sidebarTitle":"Overview","href":"/ai/platform-features/cognigyscript"},"pages":[{"title":"Tokens","href":"/ai/platform-features/tokens"}]},{"group":"Translation and localization","root":{"title":"Localization","href":"/ai/platform-features/translation-and-localization/localization"},"pages":[{"title":"Automatic translation","href":"/ai/platform-features/translation-and-localization/auto-translation"},{"title":"Real-time translation","href":"/ai/platform-features/translation-and-localization/real-time-translation"}]},{"title":"Data redaction","sidebarTitle":"Data redaction","href":"/ai/platform-features/data-redaction"},{"title":"Connections","href":"/ai/platform-features/connections"},{"title":"Directory","href":"/ai/directory"}]},{"group":"For developers","pages":[{"title":"Extensions","href":"/ai/for-developers/extensions"},{"title":"Functions","href":"/ai/for-developers/functions"},{"title":"NiCE Cognigy plugin","tag":"new","href":"/ai/for-developers/developers/cognigy-plugin"},{"title":"NiCE Cognigy MCP server","tag":"deprecated","href":"/ai/for-developers/developers/cognigy-mcp-server"},{"group":"Code node","root":{"title":"Code","sidebarTitle":"Overview","href":"/ai/for-developers/code/overview"},"pages":[{"title":"API functions","href":"/ai/for-developers/code/api-functions"},{"title":"Modules","href":"/ai/for-developers/code/modules"},{"title":"Channel output","href":"/ai/for-developers/code/channel-output"},{"title":"AI default channel formats","href":"/ai/for-developers/code/ai-default-channel-formats"},{"title":"Analytics data","sidebarTitle":"Analytics data","href":"/ai/for-developers/code/analytics-data"}]},{"group":"Transformers","root":{"title":"Transformers","sidebarTitle":"Overview","href":"/ai/for-developers/transformers/overview"},"pages":[{"title":"Input transformer","href":"/ai/for-developers/transformers/input-transformer"},{"title":"Output transformer","href":"/ai/for-developers/transformers/output-transformer"},{"title":"Execution finished transformer","href":"/ai/for-developers/transformers/execution-finished-transformer"},{"title":"Notify transformer","href":"/ai/for-developers/transformers/notify-transformer"},{"title":"Inject transformer","href":"/ai/for-developers/transformers/inject-transformer"}]}]}]}]},{"item":"Click To Call","description":"Start voice calls from the browser without a phone.","pages":[{"title":"Click To Call","href":"/click-to-call"}]},{"item":"Webchat","description":"Embed a customizable chat widget on any site.","pages":[{"title":"Webchat","href":"/webchat"}]},{"item":"xApps","description":"Add interactive mini-apps inside a conversation.","pages":[{"title":"xApps","href":"/xApps"}]},{"item":"Agent Copilot","description":"Assist live agents with real-time AI suggestions.","pages":[{"title":"Agent Copilot","href":"/agent-copilot"}]},{"item":"Live Agent","description":"Hand over conversations to human agents seamlessly.","pages":[{"title":"Live Agent","href":"/live-agent"}]},{"item":"AI Ops Center","description":"Manage agent deployments at scale with operational visibility and alerts.","pages":[{"title":"AI Ops Center","href":"/ops-center"}]},{"item":"Insights","description":"Analyze conversations and report on agent performance.","pages":[{"title":"Insights","href":"/insights"}]}]},{"tab":"References","menu":[{"item":"API reference","description":"Endpoints, functions, and SDKs you call programmatically.","pages":[{"title":"API reference","href":"/api-reference"}]},{"item":"Platform reference","description":"Nodes, Endpoints, developer tools, and voice settings.","pages":[{"title":"Platform reference","href":"/ai/resource-reference/overview"}]}],"pages":[{"title":"References","href":"/api-reference"}]},{"tab":"Admin","pages":[{"title":"Admin","href":"/ai/administer/overview"}]},{"tab":"Release notes","pages":[{"title":"Release notes","href":"/release-notes"}]},{"tab":"Help","hidden":true,"searchable":true,"pages":[{"title":"Help","href":"/help"}]},{"tab":"Learn","menu":[{"item":"Tutorials","description":"Hands-on tutorials organized by product.","pages":[{"title":"Tutorials","href":"/tutorials/overview"}]},{"item":"Cognigy Academy","description":"Structured training courses and certification.","pages":[{"title":"Cognigy Academy","href":"/cognigy-academy"}]}],"pages":[{"title":"Learn","href":"/tutorials/overview"}]}]},"basePath":"","title":"Jobs and tools - Cognigy Documentation","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["10e4515597","a74be98ba7"],"chunks":["BannerMarkdown-6DXXLlfN.js","dist-CmKHfscc.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-C3kuh_dz.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","zoom-image-lightbox-C5F0mVLH.js","lightbox-handle-r17bVUz3.js"]}