Key Components
The hybrid design lets you combine deterministic nodes for strict control with Agent Nodes for flexible, natural conversation handling.
Choosing an Approach
Deterministic
Use when:- Regulatory compliance requires exact wording and predictable behavior (legal disclaimers, financial disclosures)
- Audit trails and full traceability are required
- Conversation follows a fixed, linear path
- Consistent responses matter more than natural conversation
Agentic
Use when:- Natural, human-like interaction is the priority
- User inputs vary widely for the same intent
- Ease of maintenance matters (a single Agent Node handles increasing complexity)
- You’re building toward more autonomous experiences
Hybrid
Use when:- Mixed requirements exist — some steps need strict control, others benefit from flexibility
- Transitioning gradually from deterministic to agentic
- Different use cases within the same app have different needs
- Banking: transactions are deterministic, general inquiries are agentic
- Healthcare: appointment booking is deterministic, health information is agentic
Trade-offs
Scoping Agent Flows
Avoid use cases that are too granular (dialog bloat, maintenance overhead) or too broad (poor accuracy, weak semantic matching). Find the middle ground with clear semantic boundaries.When to Split a Use Case
Split into separate flows when:- Users have distinct goals (“Book appointment” vs. “Cancel appointment”)
- Fulfillment uses different backend APIs or workflows
- Training phrases are semantically distinct
- Required entities or business rules differ
When to Keep Together
Keep as a single flow when:- Variations express the same goal (“What’s my balance?” / “How much do I have?”)
- The same API handles all variations
- Training phrases overlap significantly
- Required entities are identical
Writing Effective Descriptions
Good descriptions are:- Semantically rich: Activate more embedding dimensions
- Action and goal-oriented: Include the primary action and desired outcome
- Contextual: Explain when users typically need this
Check_Order_Status,Track_Order,View_Order_Details,Get_Order_Information
- Track_Order_Shipment — Track shipping and delivery status for orders in transit. Users want to know WHERE their package is and WHEN it will arrive. Includes tracking numbers, carrier information, and estimated delivery dates.
- View_Order_History — View past completed orders. Users want to see WHAT they ordered, when, and final totals. For historical reference, NOT active in-transit shipments.
- Modify_Pending_Order — Make changes to an order that hasn’t shipped. Users want to UPDATE their order — change address, cancel items, or adjust quantities. Only for orders still processing, not yet dispatched.
Dialog Tasks
Dialog Tasks define the scope and structure of each use case. Each task consists of interconnected nodes that retrieve information, perform actions, connect to external services, and send messages to users. Related features:- Sub-intent management and Node Grouping — Configure sub-intents using group nodes or configure a task as a sub-intent
- Component Transitions — Configure if-else conditions between nodes based on custom criteria
- Voice and IVR Integration — Enable voice interaction (see Voice Call Properties)
- User and Error Prompt Management — Customize messaging at each node
- Context Object — Share data across tasks, intents, and FAQs (see Context Object)
Creating Dialog Tasks
Navigate to Automation > Dialogs, then click Create Dialog.For optimal performance, limit dialog tasks to 50 or fewer. Exceeding this may cause sluggish UI response and increased latency.
From Scratch
- Click Start From Scratch.
- Enter an Intent Name (required) and Intent Description (recommended). Add up to 5 secondary descriptions to broaden semantic coverage and improve intent detection accuracy.
- Set availability: Customer Use Case, Agent AI Use Case, or both.
- Configure Intent Settings: set the task as sub-intent only or hide it from help.
- Set Analytics - Containment Type: Abandonment as Self-Service or Drop Off.
- Optionally set Conversation Context, Intent Preconditions, or Context Output.
- Click Proceed.
Generate with AI
- Click Generate with AI.
- Enter an Intent Name and a meaningful Description, then click Generate.
- Preview the generated flow. Click Regenerate with a revised description to refine.
- Click Proceed when satisfied.
If no description is provided, only an error prompt node is generated. A meaningful description is strongly recommended.
From Marketplace Templates
- Click Marketplace and browse categories and integrations. Configured integrations are labeled Installed.
- For Dialog Action Templates (API call templates): select an integration, then click Install on the desired template.
- For Dialog Templates (pre-created flows): select a template, click Install, configure name and description, set up utterances and channel experience, then click Finish.
Marketplace templates require the integration to be configured in your AI Agent first.
Session Management
Session variables persist data across tasks, dialogs, and users. Use them in JavaScript within dialog nodes.JavaScript API
put(), get(), and delete() support EnterpriseContext, BotContext, UserSession, and BotUserSession. UserContext supports get() only. All methods operate on root-level objects — nested paths aren’t supported.Session Variable Types
UserContext Read-Only Keys
Standard Keys
Method Limitations
delete(): Removes root-level objects only. To delete nested keys, usedelete context.session.BotUserSession.{path}. You can’t delete a root-level object using this syntax.put(): Inserts at root-level only.BotUserSession.put("Company.Address", val)isn’t supported.get(): Retrieves root-level objects only.BotUserSession.get("Company.name")isn’t supported.
Context Object
TheContext object persists data throughout dialog execution and across all intents (dialog tasks, action tasks, alert tasks, FAQs). The NLP engine populates intent, entities, and history automatically.
The context object has a size limit of 1024 KB. The platform notifies designers when this limit is approached. Conversations may be discarded if the limit is exceeded in future releases.
https://example.com/{{context.entities.topic}}/rss), script nodes, entity nodes, and SDK payloads. Update context key values in script nodes to influence dialog execution.
Context Object Keys
Node States
Tone Levels
Tone level ranges from -3 (definitely suppressed) to +3 (definitely expressed). Tone names:angry, disgust, fear, sad, joy, positive.
Reuse entity values across dialogs: Set reuseEntityWords: true in preconditions to automatically carry entity values from a parent dialog into downstream dialogs without re-prompting the user.
Voice Call Properties
Voice call properties configure AI Agent behavior for voice channels: IVR, Twilio, IVR-AudioCodes, and Kore.ai Voice Gateway. Enable a voice channel first, then configure properties at two levels:- App level: Set during channel enablement.
- Component level: Override per node — applicable to Entity, Message, Confirmation, Agent Node, and Standard Responses.
App-Level Channel Settings
Node-Level Voice Settings
Applicable to: Entity, Message, Confirmation, Agent Node, and Standard Responses.
Additional app-level-only settings:
Multiple prompts can be defined per prompt type and played in sequence. Drag to reorder. This avoids repetition since prompts play in defined order across retries.
Configuring Grammar
At least one Speech Grammar must be defined for IVR. Supported systems:Nuance
- Set Enable Transcription to No.
- In Grammar: select Speech or DTMF, enter the VXML path to
dlm.zip:https://nuance.kore.ai/downloads/kore_dlm.zip?nlptype=krypton&dlm_weight=0.2&lang=en-US(adjust the path and language code for your setup). - Click Add Grammar and add the path to
nle.zipusing the same steps. - Save.
Voximal / UniMRCP
- Set Enable Transcription to Yes.
- Enter the transcription engine source:
- Voximal:
builtin:grammar/text - UniMRCP:
builtin:grammar/transcribe
- Voximal:
- Leave the Grammar section blank — the transcription source handles speech vetting.
- Save.
Building Multilingual Applications
AI for Service supports 100+ languages. A multilingual application has two key components: input processing and response processing.Input Processing
Response Processing
Locale-Specific trade-offs:
Translation Engine trade-offs:
LLM-Based trade-offs:
Hybrid Patterns
Decision Guide
Testing Checklist
- Verify language detection accuracy.
- Review translations with native speakers.
- Test edge cases: mixed-language input, special characters, RTL languages.
- Measure latency across approaches.
- Monitor API costs per interaction.
Common Pitfalls
- Compliance content: Always use locale-specific responses for legal text; never rely on automated translation.
- Double translation: Don’t enable both a Translation Engine and LLM translation simultaneously — this causes double translation and unpredictable output.
- Skipping native speaker review: Translations may be technically correct but culturally inappropriate. Always validate with native speakers.