How to send Welcome Message in Web Chat
See original GitHub issueFlow
ASP.NET Core MVC View [loads webchat] -> Controller gets token generated -> Bot Channels Registration -> Bot service
Though followed backchannel sample, it does not get the welcome message. The same backchannel
works for simple html page, but not Razor based view page.
Any thoughts what could be missing here?
View page (token is generated on server side)
@model EchoAuthBot.ClientApp.ChatConfig;
@{
ViewData["Title"] = "Index";
}
<!DOCTYPE html>
<html>
<body>
<h1>Index</h1>
<div id="webchat" role="main"></div>
@*<script src="https://cdn.botframework.com/botframework-webchat/master/webchat-es5.js"></script>*@
<script src="https://cdn.botframework.com/botframework-webchat/master/webchat.js"></script>
<script>
// Get welcome message
// We are using a customized store to add hooks to connect event
const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
//console.log(action);
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'webchat/join',
value: { language: window.navigator.language }
}
});
}
return next(action);
});
// Set the StyleOptions for avatar
const styleOptions = {
botAvatarInitials: 'WC',
userAvatarInitials: 'WW'
};
// Render the webchat control
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ token: `@Model.Token.ToString()` }),
store,
userID: `@Model.UserId.ToString()`,
username: 'Web Chat User',
locale: 'en-US',
styleOptions
}, document.getElementById('webchat'));
document.querySelector('#webchat > *').focus();
</script>
</body>
</html>
Issue Analytics
- State:
- Created 4 years ago
- Comments:22 (10 by maintainers)
Top Results From Across the Web
18 Best Live Chat Welcome Messages to Improve Conversion
Explore 18 live chat welcome message examples that set the right course for client interactions and improve visitor engagement right off the ...
Read more >10 Best Welcome Messages for Customers [Examples ... - Tidio
A selection of the most effective short welcome messages for customers. Welcome texts, notes, and message templates that you can use for ...
Read more >Live Chat Welcome Messages: Use Cases & Best Practices
Best Welcome Message Practices (With Examples) ; 1. Personalize The Experience · A warm welcome text; Clean background ; 2. Make Sure to...
Read more >Live Chat's Welcome Message: Best Tips About Websites ...
Live Chat's Welcome Message: Best Tips About Websites' Greetings. Greetings pop up on your site, encouraging visitors to talk to you.
Read more >How to customise the welcome message in PEGA Web Chat ...
Go to the chat-bot which is there in channels and interfaces and there you can see the welcome message. There you can customise...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Here is how Welcome Messages in Web Chat should be handled with the updates to the Direct Line Connector Service.
Web Chat Welcome Messages
Channels generally send two conversation update events when the conversation is initialized - the first for the bot and another for the user. The second conversation update - the event for the user - is intended to trigger the welcome message. At the moment, Web Chat has two different welcome message scenarios that are slightly different from other channels and based on how the developer generates the Direct Line token.
Tokens with User IDs
The first scenario is dependent on the token request including a user ID. If the developer includes a user ID when generating the token, Direct Line will only send one conversation update event to the bot that includes two user IDs in the activity’s
membersAdded
property - one for the bot and one for the user. Following this configuration should trigger the traditional welcome message in theonMembersAdded
handler before the user messages the bot.In the example below, the user ID is added to the token request and the welcome message is sent from the
onMembersAdded
handler.Web Chat
Bot Framework SDK v4 (Node.js)
Tokens, User IDs, and iFrames
To achieve this in an iFrame of Web Chat, retrieve your token with user ID as described above and pass the token within the
src
attribute of the iFrame:<iframe src='https://webchat.botframework.com/embed/YOUR_BOT_HERE?t=YOUR_TOKEN_HERE' style='min-width: 400px; width: 100%; min-height: 500px;'></iframe>
Secrets and Tokens without User IDs
Alternatively, conversations created with tokens that do not include a user ID send two conversation update events. Direct Line sends the first conversation update - the one for the bot - when the connection with the bot is established. Direct Line sends the second conversation update for the user after they send their first message.
Generally, users anticipate the bot to send a welcome message before they send a message. To do this, you can dispatch a backchannel welcome event from Web Chat’s store middleware when the Direct Line connection is established. Then in the
onEvent
handler, you can send a welcome message. Note, in theonMembersAdded
handler you should check which channel is sending the event before sending the welcome message. If the channel id is “webchat” or “directline” you should not send the traditional welcome message to avoid sending multiple welcome messages.Web Chat
Bot Framework SDK v4 (Node.js)
For more details regarding backchannel welcome events in Web Chat, take a look at this sample.
Additional Context
Thanks a lot for the code. Saved my day!