leveraging the microsoft bot framework to build … the microsoft bot framework to build your own...

40
Leveraging the Microsoft Bot Framework to build your own Sitecore enabled bots Robbert Hock & Alex van Wolferen May 18 th 2017 Amsterdam / The Netherlands

Upload: vuhanh

Post on 07-Apr-2018

227 views

Category:

Documents


1 download

TRANSCRIPT

Leveraging the Microsoft Bot Framework to build your

own Sitecore enabled bots

Robbert Hock & Alex van Wolferen

May 18th 2017 Amsterdam / The Netherlands

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 2

Who are we?

Robbert Hock

Freelance Senior Sitecore SpecialistKayee

@kayeeNL

Alex van Wolferen

Senior Sitecore Architect Suneco

@avwolferen

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 3

• Microsoft Bot Framework

• SUGCON Bot

• LUIS

• Connecting Sitecore with the Bot framework

Agenda

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 4

Why bots?

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 6

The bot landscape

Microsoft CEOSatya Nadella“Bots are the new apps”

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 8

https://dev.botframework.com/

Microsoft Bot Framework

We have created a bot for you!

We have added a few hundred if-statements…

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.

11

Microsoft Bot Framework - Architecture

Microsoft Bot Builder (SDKs)

Microsoft Bot Directory

Intelligence & Knowledge

VisionWeb Search

Language Speech Knowledge

…ML

Public APIs (Cognitive Services)

Dialog Manager

Knowledge &

Action Graph Entity

Private APIs

Microsoft Bot Connector 4

3

2

1

Add smarts to your bot

Build a great bot

Make your bot discoverable

Connect your bot to channels

Co

nve

rsatio

n a

s a P

latf

orm

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.

12

Microsoft Bot Framework - Architecture

Microsoft Bot Builder (SDKs)

Microsoft Bot Directory

Intelligence & Knowledge

VisionWeb Search

Language Speech Knowledge

…ML

Public APIs (Cognitive Services)

Dialog Manager

Knowledge &

Action Graph Entity

Private APIs

Microsoft Bot Connector 4

3

2

1

Add smarts to your bot

Build a great bot

Make your bot discoverable

Connect your bot to channels

Co

nve

rsatio

n a

s a P

latf

orm

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 13

SDK’s C#, Node.js, Azure Bot Service

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 14

Bot Framework Emulator

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 15

• Microsoft Bot Builder SDK

• Messages API that handles activities

• Message

• Contact Relation Update

• Conversation Update

• Typing

• Ping

• End of Conversation

• Trigger

• Event

• Invoke

• Delete User Data

What is a Bot, technically speaking? C# edition

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 16

• Dialogs are the key of success to Bots

• Break up conversations into smaller pieces

• Follow the Single Responsibility Principle

• Must implement the IDialog interface

• Task StartAsync(IDialogContext context)

• Located in the Microsoft.Bot.Builder.Dialogs namespace

• Must be serializable

Conversations live in Dialogs

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 17

Echo Bot

BLA

BLA

SUGCON Bot

18

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 19

WebChat

http://www.sugcon.eu/bot/

Skype

https://join.skype.com/bot/120f1168-77bd-48f3-8baa-c78d81aba458

Facebook Messenger

https://www.messenger.com/t/1208427272620146

Introducing the SUGCON Europe 2017 bot

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 20

SUGCON BOT DEMO

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 21

Adding Cognitive Services to your bot

EmotionSpeaker

Recognition

Speech

Custom

RecognitionComputer Vision

Face

Video

microsoft.com/cognitive

Linguistic Analysis

Language

Understanding

Bing Spell Check

Entity Linking

Knowledge

Exploration

Academic

Knowledge

Bing

Image Search

Bing

Video Search

Bing

Web Search

WebLM

Text Analytics Recommendations

Bing

Autosuggest

Bing

News SearchTranslator

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 22

LUIS (Language Understanding Intelligence Service)

LUIS.ai

23

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 24

• Create a conversational Bot that integrates with the whole Experience Platform from a visitor perspective

• Challenges?

• Create demo site with reasonable interaction needs

• 8.2 u3 didn’t have xConnect

• Way too time consuming to create required stack to replace xConnect

• Create several API’s

Ultimate Goal

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 25

• Create conversational Bot that communicates with Sitecorefrom a operational perspective

• Challenges?

• Create a authentication mechanism between the Bot and Sitecore

• Create several API’s

• Authentication, UserManagement, Indexing, Publishing, XDB, Logging

New Goal

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 26

• Create a multi dialog conversational Bot (CaaP)

• Authenticate Bot user with Sitecore

• Create several API’s for access to Sitecore functionality

• Make use of LUIS for understanding what the user wants and to break up the intents

• Make use of FormFlow for conversation guidance

• Make use of Application Insights REST Api

Microsoft Bot Framework and Sitecore

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 27

• LUIS Model• 19 intents

• 6 entities

• 105 labeled utterances

• Multi Dialog• Authentication

• User Management

• xDB

• Publishing

• Indexing

• Application Insights

Microsoft Bot Framework and Sitecore

Authentication with Sitecore

28

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 29

• User in conversation needs to be authenticated

• IDialogContext (IBotData)

• Get/SetUserData

• Get/SetConversationData

• Get/SetPrivateConversationData

• DeleteStateForUser

Authentication with Sitecore from Bot

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 30

Authentication with Sitecore from Bot

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 31

1. AccessToken InValid

2. Forward conversation to AuthenticationDialog

3. Reply message and call LogIn

4. Trade conversationreference for a login ticket with API build in Sitecore environment

5. Redirect the user from conversation to Bot Authentication form in Sitecore environment

6. Authenticate the user

7. Perform a callback from Sitecore environment to dedidated API in Bot

8. Authenticate the user in the conversation (SetPrivateConversationData)

9. User is authenticated for a certain amount of time; User can logout;

Keep calm and Bot on!

Authentication with Sitecore from Bot

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 32

Authentication with Sitecore from Bot

Sitecore BotDemo

33

FormFlow

Natural guidance and help…

More options with less effort!

34

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.

• Provides clear guidance and help

• Understands both numbers and textual entries

• Gives feedback on what is understood and not

• Asks clarifying questions when needed

• Allows navigating between steps

• Messages during the process of filling in a form.

• Custom prompts per field.

• Templates to use when automatically generating prompts or help.

• Terms to match on.

• Whether to show choices and numbers or not.

• Fields that are optional.

• Conditional fields.

• Value validation

• Binds to a model

FormFlow - More Options with Less Effort

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 36

FormFlow

37

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 38

BUILD 2017 BOT Framework announcements

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 39

BUILD 2017 BOT Framework announcements

© 2017 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 40

Sitecore integration with Microsoft Cognitive Services

Mark Stiles

Sitecore MVP & Principal Developer - @Velir

@maaakstiles

Thank you!Co0ntact us at:

@kayeeNL

@avwolferen