Table of Contents
- Title and Copyright Information
- Preface
-
Part I Overview and Getting Started
- 1 Overview of Digital Assistants and Skills
- 2 Users, Groups, and Policies
-
3
Order the Service and Provision an Instance
- Digital Assistant Product Types
- Place an Order for Oracle Digital Assistant
- Activate a Digital Assistant Subscription
- Set Up Digital Assistant as an Individual Service
- Oracle Fusion Cloud Applications and Digital Assistant
- Migration from Gen 1 to Gen 2 Infrastructure
-
4
Service Administration
- Manage Features
- Audit Trail
- Events for Digital Assistant Instances
- Metrics, Alarms, Notifications, and Billing
- Stop and Start Instances
- Delete an Instance
- Break Glass
- Disaster Recovery
- Private Endpoint
- Further Administration Information
- Programmatic Creation and Management of Skills and Digital Assistants
- Packaged Skills
- 5 Get Started
- 6 Sample Digital Assistants and Skills
-
Part II Digital Assistant Development Blueprint
-
7
Preparation is the Key to Success
- CDX Workshop
- Identify Good Digital Assistant Use Cases
- Define Digital Assistant Success
- Identify What the Digital Assistant Should Not Do
- Shape Your Conversational Mindset
- Define a Digital Assistant Persona
- Identify the Team Roles You Need for Bot Development
- Break Down a Big Problem Into Small Ones
- Prepare for Failure
- Small Talk in Digital Assistant Conversations
- Checklist of Preparation Steps
- Learn More
- 8 Train Your Model for Natural Language Understanding
- 9 Additional Languages
- 10 Model Testing
-
11
Conversational Design
- Orient Users
-
Ensure Mutual Understanding
- Use Plain Language
- Don't Expect Users to Know the Magic Words
- Give Feedback Within the Conversation
- Disambiguate User Input
- Provide Alternating Prompts
- Gradually Disclose Additional Information
- Varied Responses and Progressive Disclosure
- Confirmation and Reflective Listening
- Close the Gap that Exists Between AI and Human Understanding
- Good Manners
- Keep Interactions Short
- Don't Design Like It's a Web App
- Consider Multi-Language Support
- Checklist for Conversational Design
- Learn More
- 12 Channel-Specific Considerations
- 13 Implement Conversation Flows
- 14 Custom Code and Backend Integration
- 15 Build Your Digital Assistant
- 16 Digital Assistant Testing
-
7
Preparation is the Key to Success
-
Part III Digital Assistants
- 17 Create, Version, and Publish Digital Assistants
- 18 Personalize Your Digital Assistant
-
19
Tune Routing Behavior
- Train the Digital Assistant
- What to Test
- The Routing Model
- The Routing Tester
- Illustrations of Routing Behavior
- Tutorial: Digital Assistant Routing
- Test Cases for Digital Assistants
- Test Routing with the Utterance Tester
-
20
Languages and Digital Assistants
- Choosing Between Native Language Mode and Translation Service Mode
- Native Language Support in Digital Assistants
-
Digital Assistants with Translation Services
- Set Up a Non-English Single-Language Digital Assistant in Translation Service Mode
- Set Up a Multi-Language Digital Assistant in Translation Service Mode
- Add a Translation Service to a Digital Assistant
- Enable Language Detection in Translation-Enabled Digital Assistants
- Translating Output Text
- Explicit Invocation in Translated Digital Assistants
- Conditions for Adding a Skill to a Digital Assistant
-
Resource Bundles for Digital Assistants
- Translatable Strings in Digital Assistants
- Create and Edit Resource Bundle Keys
- Reference Resource Bundle Keys for Help Cards in a Digital Assistant
- Reference Resource Bundle Keys for Prompts and Messages
- System Variables in Resource Bundles
- Export and Import Resource Bundles
- Resource Bundle Entries for Digital Assistant Configuration Settings
- Sample Resource Bundle Entries
- 21 Digital Assistant Insights
-
Part IV Skills
- 22 Create, Configure, and Version Skills
- 23 Platform Version
-
24
Intents
- Create an Intent
-
Intent Training and Testing
- Testing Utterances
- The Utterance Tester
- Quick Tests
- Test Cases
- Similar Utterances
- Tutorial: Best Practices for Building and Training Intents
- Reference Intents in the Dialog Flow
- Tune Intent Resolution Before Publishing
- Answer Intents
- DO's and DON'Ts for Conversational Design
- Names You Can't Use for Intents
-
25
Entities
- Built-In Entities
- Custom Entities
- Create Entities
-
Configure Composite Bag
Entities
- Create a Composite Bag Entity
- Enhanced Slot Filling
- Add Prompts
- Updating Slotted Values with Apache FreeMarker Expressions
- Enable Out-of-Order Extraction
- Enable Extract With
- Add Validation Rules
- Configure a YAML Dialog Flow for Composite Bag Entities
- The system.entityToResolve Variable
- Entity Event Handlers
- Disambiguate Nested Bag Items and Subtypes
- Add the DATE_TIME Entity to a Composite Bag
- Tutorial: Real-World Entity Extraction with Composite Bag Entities
- Query Entities
-
26
Visual Flow Designer
- Basic Concepts
- Get Started with the Visual Flow Designer
- Tutorials: Visual Flow Designer
- Flows
- Intent Detection and Resolution
- Answer Intent Resolution
- Flow Mapping
- Events and Transitions
- Expressions for Variable Values
- Other Variables Types
- Test the Dialog Flow
- Other Tasks
- Insights for Flows Created in the Visual Flow Designer
- Group Chats
-
Component Templates
- Send Message
- Ask Question
- Resolve Composite Bag
- User Messaging Templates
- Variables Templates
- Language Templates
- Security Templates
- Flow Control Templates
- Service Integration Templates
- Component Changes in the Visual Flow Designer
- Message Handling for User Message Components
-
The Metadata Property in Common
Response Components
- Keyword Metadata Properties
- The visible Property
- The Action Metadata Properties
- The payload Properties
- How Do Non-Postback Actions Render on Text-Only Channels?
- The Text Response Item
- The Card Response Item
- The Attachment Response Item
- Action
- Field
- Form
- The editForm Response Item
- TableMessagePayload
- tableFormMessageLayout
- The dataSet Response Item
- The system.entityToResolve Variable
- User Message Validation
- Migrate to Visual Dialog Mode
-
27
LLM Integration
- LLM Services
- LLM Transformation Handlers
- Create the LLM Service
- The Invoke Large Language Model Component
- Tutorials: Integrating LLMs
-
28
SQL Dialog Skills
- How SQL Dialogs Work
- Tutorial: Getting Started with SQL Dialogs
- SQL Dialogs Workflow
- Connect to the Data Service
- Create the SQL Dialog Skill
- Create Query Entities to Model the Data Service
- Train the Skill to Convert Natural Language Utterances into SQL
- Provide Query Suggestions for SQL Dialog Users
- Route Utterances to the SQL Dialogs Conversation
-
Configure Presentation of Entities and Attributes
- Configure Whether to Display Form or Table
- Show One or Two Horizontal Sections in Form
- Set the Title for the Results
- Define an Entity's Default Sort Order
- Define Which Attributes to Include When Not Specified by the Utterance
- Define Which Attributes to Always Include in the Results
- Configure the Results Page Size
- Add Buttons and Links to Results
- Add a Custom Attribute
- Dynamically Configure Presentation Using Event Handlers
- Define Query Rules
- Enable Natural Language Queries for Denormalized Columns
- Test and Repair
- Troubleshooting SQL Queries
- Monitor and Improve
- OMRQL Reference
-
29
Languages and Skills
- Language Use Cases for Skills
- Language Mode
-
Native Language Support for Skills
- How Native Language Support Works
- Natively-Supported Languages
- Create a Skill with Natively-Supported Languages
- Add Natively-Supported Languages to a Skill
- Switch from a Translation Service to Native Language Support
- Training Corpus for an Additional Language
- Language Detection in Skills with Natively-Supported Languages
-
Translation Services in Skills
- Translation Services Supported
- Register a Translation Service in Oracle Digital Assistant
- Add a Translation Service to Your Skill
- Approaches Based on Translation Services
- Manipulate Input Before Translation
- Predominant Language
-
Resource Bundles for Skills
- Types of Resource Bundle Keys
- Create Resource Bundle Keys
- Add a Language to a Resource Bundle Key
- Translate Conversation Name
- Translate Answers for Answer Intents
- Reference Resource Bundles in the Dialog Flow
- Message Formats
- Resource Bundles and Auto-Translation of Skills
- Resource Bundle Entry Resolution
- Export and Import Resource Bundles
- Internationalize and Localize Custom Component Responses
- Resource Bundle Entries for Skill Configuration Settings
- 30 The Skill Tester
- 31 Q&A
- 32 Components
-
33
Backend Integration
- Access Backends Using the REST Service Component
- Access Backends Using Custom Components
- Implement Custom Components
-
Deploy the Component Package to a
Service
- Deploy to a Node.js Server
-
Deploy to Oracle Cloud Infrastructure
Functions
- Get Artifact Names and Permissions for Oracle Cloud Infrastructure Functions Deployment
- Set Up Your User Account for Oracle Functions
- Set Up Your Local Machine for Oracle Functions
- Modify the Custom Component Package for Oracle Functions
- Deploy the Custom Components to Oracle Cloud Infrastructure Functions
- Deploy to Mobile Hub
- Add Component Package to a Skill
- Set the Read Timeout for Custom Components
- Export and Import a REST Service Endpoint
- 34 Backend Authentication
- 35 Webviews
- 36 Skill Quality Reports
-
37
Insights
- Session Metrics for Skills
-
Conversation Insights for Skills
- Report Types
-
Review the Summary Metrics and
Graphs
- Common Metrics
- Voice Metrics
- Incomplete Conversation Breakdown
- User Metrics
- Enable New User Tracking
- Review Conversation Trends Insights
- View Intent Usage
- Review Intents and Retrain Using Key Phrase Clouds
- Review Key Phrases
- Retrain from the Word Cloud
- Review Native Language Phrases
- Review Language Usage
- Review User Feedback and Ratings
- How to Add the Feedback Component to the Dialog Flow
- Using Custom Metrics to Measure User Feedback
- Review Custom Metrics
- Review Intents Insights
- Review Path Insights
- Review the Skill Conversation Insights
- PII Anonymization
- Apply the Retrainer
- Review Language Usage
- Export Insights Data
- Tutorial: Use Oracle Digital Assistant Insights
- Live Agent Insights for Skills
- 38 External Events
- 39 Application-Initiated Conversations
- 40 Data Manufacturing
-
Part V Channels
- 41 Channel Basics
- 42 Voice
-
43
Facebook Messenger
- Step 1: Set Up Facebook Messenger
- Step 2: Create the Channel in Digital Assistant
- Step 3: Configure the Facebook Messenger Webhook
- Step 4: Enable the Facebook Channel
- Step 5: Test Your Bot on Facebook Messenger
- Persistent Menu
- Supported Capabilities
- Message Constraints
- Facebook Messenger Channel Extensions
-
44
Slack
- Step 1: Get a Slack Workspace
- Step 2: Create a Slack App
- Step 3: Add OAuth Scopes for the Slack App
- Step 4: Add the App to the Workspace
- Step 5: Create a Channel in Digital Assistant
- Step 6: Configure the Webhook URL in the Slack App
- Step 7: Test Your Bot in Slack
- "New" vs. "Classic" Slack Apps
- Supported Capabilities
- Message Constraints
- Slack Channel Extensions
- Slack Modals
- Slack Dialog Window
-
45
Microsoft Teams
- Step 1: Create a Bot
- Step 2: Create a Channel in Digital Assistant
- Step 3: Configure the Webhook URL for Microsoft Teams
- Step 4: Enable Apps in Your Office 365 Tenant
- Step 5: Test in Microsoft Teams
- SSO Configuration for Microsoft Teams Channels
- Supported Capabilities
- Message Constraints
- Adaptive Cards in Microsoft Teams
- Disable the Welcome Message for a Digital Assistant
- Enable the Welcome Message for a Skill
- 46 Cortana
- 47 Text-Only Channels
-
48
Oracle Web
- Basic Setup
-
Customize the Chat Widget
- Network Configuration
- Feature Flags
- Functionality
- Read More and Read Less Buttons for Multi-Paragraph Skill Responses
- Layout
- Custom Header Button Icons
- Custom Colors
- Custom Icons
- Custom Strings
- Configure Share Menu Options
- Custom Share Menu Items
- Customize CSS Classes
- Customize the Timestamp
- Format the Date-Time with Pattern Strings
- Format the Timestamp with Intl.DateTimeFormat Objects
- Customize the Feedback Message Rating Gauge
- Send the Initial Message when the Conversation History is Empty
- Speech Synthesis Service Injection
- Text-to-Speech
- Speech Synthesis Service Interface
-
Features
- Absolute and Relative Timestamps
- Autocomplete
- Auto-Submitting a Field
- Automatic RTL Layout
- Avatars
- Cross-Tab Conversation Synchronization
- Custom Message Rendering
- Default Client Responses
- Delegation
- Draggable Launch Button
- Dynamic Typing Indicator
- Control Embedded Link Behavior
- Embedded Mode
- End the Conversation Session
- Focus on the First Action in a Message
- Keyboard Shortcuts and Hotkeys
- Headless SDK
- Multi-Lingual Chat
- In-Widget Webview
- Long Polling
- Typing Indicator for User-Agent Conversations
- Voice Recognition
- Voice Visualizer
- Message Model
- Embed Chat in Visual Builder Apps
- Tutorial: Access a Skill from Your Website
- Oracle Web Channel Extensions
-
49
Oracle iOS
- What Do You Need?
- Create the Oracle iOS Channel
- Add the SDK to the Project
- Initialize the SDK in Your App
- App Development Settings
-
Features
- Absolute and Relative Timestamps
- Actions Layout
- Agent Avatars
- Attachment Filtering
- Auto-Submitting a Field
- Connect, Disconnect, and Destroy Methods
- Default Client Responses
- Delegation
- End the Chat Session
- Headless SDK
- In-Widget Webview
- Message Timestamp Formatting
- Multi-Lingual Chat
- Replacing a Previous Input Form
- Share Menu Options
- Speech Recognition
- Speech Synthesis
- Speech Service Injection
- Typing Indicator for User-Agent Conversations
- Voice Visualizer
- Message Model
- Oracle iOS Channel Extensions
-
50
Oracle Android
- What Do You Need?
- Create the Oracle Android Channel
- Add the Oracle Android Client SDK to the Project
- Initialize the Oracle Android Client SDK in Your App
-
App Development Settings
- Network Configuration
- Feature Flags
- Custom Colors
- Custom Text
- Custom Icons
- Set Feature Flags
-
Initialize the SDK
- public static void init(Application application, BotsConfiguration botsConfiguration)
- public static void init(Application application, BotsConfiguration botsConfiguration, BotsCallback botsCallback)
- public static void init(Application application, String chatServerUrl, String channelId, String userId, BotsCallback botsCallback)
- public static void init(Application application, String chatServerUrl, AuthenticationTokenProvider authTokenProvider, BotsCallback botsCallback)
- Interface AuthenticationTokenProvider
- Interface BotsCallback
- Show Conversation Activity
- Customize Notifications
-
Features
- Absolute and Relative Timestamps
- Action Buttons Layout
- Attachment Filtering
- Auto-Submitting a Field
- Connect and Disconnect Methods
- Default Client Responses
- Delegation
- Display the Conversation History
- End the Chat Session
- Headless SDK
- In-Widget Webview
- Multi-Lingual Chat
- Share Menu Options
-
Speech Recognition
- public static void startRecording(IBotsSpeechListener listener)
- public static void stopRecording()
- public static boolean isRecording()
- IBotsSpeechListener
- void onError(String error)
- void onSuccess(String utterance)
- void onSuccess(BotsSpeechResult botsSpeechResult)
- void onPartialResult(String utterance)
- void onClose(int code, String message)
- void onOpen()
- onActiveSpeechUpdate(byte[] speechData)
- Speech Synthesis
- Speech Service Injection
- Typing Indicator for User-Agent Conversations
- Update the User Avatar
- Expose Agent Details
- Voice Visualizer
- Message Model
- Oracle Android Channel Extensions
-
51
Apple Messages for Business
- Step 1: Set Up an Apple Messages for Business Account
- Step 2: Create a Channel in Digital Assistant
- General Capabilities Supported
- Supported Apple Messages for Business Features
-
52
Zoom App
- Step 1: Install Zoom's Digital Assistant App
- Step 2: Create a Channel in Digital Assistant
- Step 3: Create a Connection to the Channel from the App in Zoom
- Open the Connection to Your Digital Assistant
- Uninstall the Digital Assistant for Zoom App
- Zoom App Channel Limitations
- Zoom App Channel Attributes Available to Skill
- Troubleshooting
- 53 Webhooks
-
Part VI Extension of Digital Assistants and Skills
-
54
Extending Digital Assistants and Skills
- What is Extension and What's it For?
- Cloning vs. Extending
- What Happens When You Extend a Skill or a Digital Assistant
- Important Note for Developers of Base Bots
- Skills
- Digital Assistants
- Make, Review, and Revert Customizations
- Testing Customizations
- Rebasing
- Branching an Extension
- Post-Deployment Lifecycle of an Extended Skill
-
54
Extending Digital Assistants and Skills
-
Part VII Service Integration
-
55
Intelligent Advisor
- How the Intelligent Advisor Framework Works
- Add an Intelligent Advisor Service
- Create and Test Skills From Intelligent Advisor Service Page
- List Available Deployments
- Creating a Conversational Interview
- Use the Intelligent Advisor Component in Your Skill
- Pass Attribute Values and Connection Parameters
- Access Interview Attributes
-
56
Knowledge Search
- Add a Knowledge Search Service
- Test Knowledge Foundation Search Terms
-
Use the Knowledge Search
Component
- Associate Related Questions with a Search Term
- Employ User Utterance as Search Term
- Find Only the Results That Contain Every Word in the Knowledge Foundation Search Term
- Filter Results by Product and Category
- Tailor Knowledge Foundation Response for Chat Conversation
- Remove the View Details Button and Display All the Text
- Implement Multi-Lingual Knowledge Search
- Knowledge Foundation Sample Skill
- How the Knowledge Search Component Displays in Oracle B2C Service Chat
- 57 Live Help Approaches
-
58
DA as an Agent
- Supported Chat Services for DA as Agent
- The Digital Assistant as Agent Framework in Action
- How the Digital Assistant as Agent Framework Works
- DA-as-Agent Template
- Basic Steps for Creating a Digital-Assistant Agent
-
Task 1: Build a DA-as-Agent Digital Assistant
-
Build the Skill
- Create and Configure the Skill
- Add Intents and Entities
- Access Contact and Chat Launch Page Information
- Enable Transfer to a Human Agent
- Pass Information to the Service
- Configure When to Attempt Agent Transfer
- Get Agent Availability and Wait Time
- Enable Attachments
- Create an Incident Report
- How the UI Components Display in the Service Chat
- Train the Skill
- Configure the DA-as-Agent Digital Assistant
-
Build the Skill
- Task 2: Configure the Service
- Task 3: Sign Your Digital Assistant into the Service
- Change DA as Agent Channel Configuration
- 59 Insights for Oracle B2C Service Chat and Oracle Fusion Service Chat
-
60
Live Agent Transfer
- The Live-Agent-Transfer Framework in Action
- How the Live-Agent-Transfer Framework Works
- Integrate a Skill with a Live Agent
- Configure When to Attempt Agent Transfer
- Enable Agents to Specify the Transition Action
- Tutorial: Live Agent Transfer
- Pass Customer Information to a Live Chat
- Tutorial: Pass Customer Information to a Live Chat
- Enable Attachments
- Create an Incident Report
- Get Survey Information
- Transfer the Chat to a Specific Oracle B2C Service Queue
- Tutorial: Transfer to a Live Chat Queue
-
55
Intelligent Advisor
- Part VIII Analytics
- Part IX Data Management
-
Reference
- A The Dialog Flow Definition
-
B
Built-In Components: Properties, Transitions, and Usage
- Control Components
- Language
- Security
-
User Interface Components
- System.CommonResponse
- System.Webview
- System.IncidentCreation
- System.IntelligentAdvisor
- System.KnowledgeSearch
- System.AgentTransfer
- System.AgentTransferCondition
-
Live-Agent-Transfer Components
- System.AgentInitiation
- System.AgentInitiation Transitions
- Example: Handle Agent Initiation Rejection and System Errors
- Example: The incidentID Property
- Example: The Standard customerInformation Object
- Example: The Legacy customerInformation Object
- Example: The Standard customFields Object
- Example: The Legacy customFields Object
- Example: Assemble the Custom Properties Object
- System.AgentConversation
- System.AgentConversation Transitions
- Example: Configure the Agent Transfer Dialog Flow
- Example: Get Survey Information
- Example: Transfer the Chat to a Specific Oracle B2C Service Queue
- System.ResolveEntities
- Calendar Components
- Footers
- The translate Property
- System.Feedback
- System.Text
- System.List
- System.Output
- Variable Components
-
C
Conversation Markers for
Insights
-
Model the Dialog Flow
- Mark the End of a Conversation
- Streamline the Data Collected by Insights
- Use Cases for Insights Markers
- Use Case 1: You Want to Separate Conversations by Intents or Transitions
- Use Case 2: You Want to Exclude Supporting States from the Insights Pathing Reports
- Tutorial: Optimize Insights Reports with Conversation Markers
-
Model the Dialog Flow
- D Apache FreeMarker Reference
- E Feature Support by Language