 Yes, if I just move to you, I should do anything. If you change it, it doesn't make a sound. Yeah, let's see. Oh, there we go. Fantastic. Perfect, okay. No worries. You should be eating, I'm just outside. Okay, thank you very much. You're very welcome. Have a good talk. Thank you. Yeah, it's all good. Okay. I'll just be outside. I'll give you a five minute warning when it gets close. Okay. I thought it was a warning. I thought it was a warning. Yeah, okay, yes. Please. Thank you very much. Yes, sure, sure. Yeah, thank you very much. Thank you. Thank you. So it's easier for them to hear you. It was green. It should flash. Test. Can you hear me? Yeah. Good. How's it going today? Good. You enjoying today? Yeah. It's channeled clearly. You say, yeah. How many developers in the room just to have our sense of... Is it three on mine? Can I start? Hello, everyone. So the session that we are going to end up with today is about chat board. So I'm mentioning to you, but please forget about this because it's not about you, your website, your data, your content, a new way of serving it. It's not just for developers. Actually, it's not for the world at all. But for the world is good because you will be ahead of us. Hello. I'm Gabi, or Gambri, or Gabriele. I'm a group developer and manifesto. I've been a developer for quite a while. I'm currently experimenting with chat boards and with encryption. And I always pull one of these things on my slide. I'm watching Altered Carbon, which is a TV series if you like it. Well, if you don't know it, watch it because it's cool. Again, so today we are going to talk about serving your content. So historically, we have some ways of serving our data or content digitally. One of them was through our website. Another one is through mobile apps. Some of the companies you worked with, they may have a mobile app, social media, so you can share your content on social media so people can read your article or your FAQ or whatever your website does in social media not coming on the website. RSS is an old way. People can subscribe to your feed and read it in their RSS reader. Restful API is kind of, let's say it's new. It's not really new, but it's cool currently. So you provide your content, not from your website, not from your app, and not from a tool, but just to be consumed by something else, another website or the app. And then by email, I mean probably you have a mail system which says newsletter to the clients, to the user, to your customers. So again, you save your content not from the website, not from the app, but they read it directly on the email. So this has been the view for quite a while, but now we have a new player in the game, which is chatbots and personal assistant. Again, don't think of these as a new item or I have to add a new element on my website, so increasing the complexity. It's not, it's just a way for a user to access your data in a conversational approach. An example, a user asking, I'm going to get some help. And the bot is replying, have you tried our portal, right? And the user says, no, where are both specifically? And the bot says, follow this link. How many times do you have received or your clients have received an email saying, look, come in the website, I can't find this thing. Can you help me? And at the end of the day, just send a link. If this can be done by a bot, it's going to save your time. And then you keep going, thanks, can you save it on my Fiverlitz? Done, we'll be in the dashboard next time. So how many times do you have to train your user to use their own dashboard or you send them to an FAQ page? What if you can do the same in a different way? What if you can save all your FAQ section directly through a chatbot? To give you some examples of implementation, so those are normally questions that all your users are asking to themselves or the user are asking directly to you about your website. So it's not your business, it's not something new, it's something that they can find on the website. How can you get registered on every event? This is a normal FAQ page if you have a campaign on an event website. And you know, use the tab register on the right from the desktop and on the last section on mobile. You will find the results on the forum in there. This is a normal FAQ, right? So the user to find his answer has to click, has to find the FAQ link. Click on the FAQ link. Search for the answer. Find the answer and then read it. What if he can ask directly here? She can ask directly to a bot. You have a campaign website. When he's around for fun, does anything going to happen in reply? Because it's a chatbot, we can add metadata. It's a reachful experience, so we can provide text as well as a link. In this case, this checkout on the leader is a link to a specific section. There was some candem this weekend. So this is an event. Again, the user is asking for information, specifically happening this week in Candentown. So on our website, we have this information and we know that the dreamers are playing at Candem Lock. Again, because it's a reachful experience, now we can provide a direct link to the location. So clicking on Candem Lock, they can potentially go directly on Google Maps or the directions. Saturday at 8 p.m. is a calendar. They click and it saves all your calendar. So you have the control of your data. You have the control of the answer in an easy way. More example, everybody has articles on the website. I mean, everybody has articles. So what if we can provide this article on the chatbot? The user is asking, let us know about seeing it. And the chatbot is saying, look, there is actually mathematics again. Again, the chatbot is pulling data from other websites, like in this case, IMDB, Rotten Tomatoes, for the rating of the movie. And then saying, say skip to score to the next result. So it's a list of articles and the chatbot knows how to let the user scroll between all the information. Another example is how many of your website or website do you work on? They have a search. Any website has a search. They provide the same experience of a search through a chatbot. So I set up on the user clicking on search, doing the form, accessibility problems, and then you find it. There is a long list. What if we can have just the user ask best properties in your show image? Because the user made a search before, we know that he's looking for a single bedroom with a price range, for example. So we show, we basically make a search on our website, and we reply with the most useful information. So that's exactly what your website is doing at the moment. Just in a more friendly way, smart way. Again, it's a new player in the game. Another example, which is going to help us to explain a bit more of a chatbot. Think about housing association. How many times your customers or the people in your apartment, they're asking for how can I get my boiler fixed? How many times? It's like massive. How can I get this fixed when I can find this information? The user knows anything about the user. He's replying, look, I know you. I know that you have, I have to change up your boiler. So I will skip all this rubbish information. Call this number from your register mobile because I know you are. So call this number just per se and we'll call appointment. So this is basically how a chatbot works. So a user asks an information, a question, it doesn't have to be a question, but asks a piece of information in a conversational way in the most replies. How is it done? So the magic is done by something called NLP, a natural languages processor, or the process is not a language processing. The user is asking how can I get my boiler fixed? So the NLP understand what the user intent is and the NLP will try to extract entities from the user sentence. The entities is like boiler and fixed because I can ask my fridge to be installed. It's the same entity. It's the same intent. I want to support with these entities, fridge and installed. And then understand a bit of more managing the context of the conversation. We will see in a second. Intents, how can I get my boiler fixed? We know that the intent of the user is maintenance and request. So when we create chatbots, the first thing that we do is we define intents. In this example, the intent is how can I get my boiler fixed? Sorry, the intent is maintenance request. How can the user express the maintenance request? Can you fix my boiler? I need my boiler fixed. I need you to fix my boiler. And we provide all these examples to the NLP to consume so he can be smart when the user asks a question. The more example we give, the more smarter the NLP will be. And then when the processor does this, more or less we will see that it is a bit different later. But more or less, it takes the user question how can I get my boiler fixed? And it checks one by one the lines if it matches anything. It does match how can I get my boiler fixed so the NLP say perfect. The user's intent is maintenance request. Sorry, it's a spoiler. Entities. So now we know that the user is asking maintenance request but which kind of maintenance request? For what? So we don't really add utensils. So this phase is called utensils. We don't really have utensils in the already full way. We use placeholders. We say, can you task my appliance? I need my appliance task. This is because the NLP understand entities. So as I said, the user can ask to have something about my boiler, my fridge, whatever it is. So from the phase, how can I get my appliance task? We can say, this is a maintenance request but when the user asks, swap with placeholder, we think like, on appliance the user may ask how can I get my boiler fixed? I can get my oven, microwave, fridge. So anytime the user sees something, see this phrase, the intent is maintenance request but then appliance is boiler and same for task. So when the user asks, how can I get my boiler fixed? The intent is maintenance request. The appliance is boiler and the task is, can be mapped to one of them. NLP has something smart so not always something can be fixed for a single term. For example, fix repairing. How many combinations we can describe repair? None of them. Fix adjust. In the conversational way, more example, what is this, can I get it fixed? Adjust. So the NLP understand synonyms? Synonyms. So we said that the entities repair but the user may say fix, adjust, whatever it is, still understand this repair. So we are asking, how can I get my boiler fixed? Intent is maintenance request. Entity appliance is boiler and the task is repair. So the NLP maps the intent, map the entities and we take care of your context. It's important that you understand this because I will show you one example of NLP but they all work in the same way. So as long as you understand the context, not this context, as long as I understand the topic, then you may be able to work with any of them. So context, context is, I mean it's about our language, right? So if I ask you a question, right? Are you enjoying the group account? You say yes, right? Yes is a face that you are telling me. So I think intent, your intent is affirmative. You are saying yes. But yes is a different meaning depending by the context, right? So for example, the user is asking at this speed and how can I get my boiler fixed? We need more information and this information may have meaning only inside the context. For example, if we are really housing association and we know the user is asking for maintenance request and we are playing boiler, we don't know who the user is yet. So we have to ask, okay who are you and can I have your account number? Yes my account number is this one. We don't know who the user is. It is a different meaning, a different situation. But as a group, now we know the user, maintenance request repair boiler. So we keep saying and why we keep grouping? So this is a talk, it's a conversation and every time until the conversation is not finished so both parties they are not happy. We keep pushing it into this context of information. Thanks, this is very painful for your main property maybe in this housing association I have multiple properties like a flat and a garage or office. Yes, it's for my main one so we know even though the property is there are these points where everything we just have to book the appointment. Does this appointment, does this slot works for you? Yes, the user says yes it does. The conversation is finished and we can clear our context. So the context is a place through our process of talking with the user. So we pass through multiple intents or within the same context. When we finish, we clear the context. Is it clear so far? You can say no, don't worry, you can say it. This is one of the examples so this provider is called Dialogflow is everything that everybody mentioned to you. This is the example of how you can describe your intent. So the intent name is maintenance support, we have already saw it normally on a process so the intent name must be unique so when you build your intent the user wants reading FAQs search on the website maintenance support is only one and unique in your process and then the uterance as an example as you can see perhaps there entities for you so fix, fix, fix, change our task and the orange bit are our appliances so this is an example of what I described in a real product as you can see it's fairly easy to type and understand and it's not scary. So this is the NLP which is the one that does all the logic and this is it's the chatbot itself so normally the NLP is the brain of the situation. The chatbot is the one that communicates with your user it can be the device for example called assistant or Alexa it can be a client a chat client on your website it can be Facebook message it can be a buttons it can be everything it basically outputs and takes care of the conversation with your user so on this equation we have three points, we have three nodes and three players. The user which is asking the NLP which is understanding and translating to a machine friendly approach and the chatbot as the logic of whatever it is sending an email replying with a link or booking a slot it's beautiful so far now let's give a real example so this is a real example a client one of our clients had a global website and said look I have some content which I think is really useful if it's provided through an Alexa Echo device and can you do it, can you say it was a content it was a list of events categorized by location it's pretty easy we build a skill, a couple of intents search and then say yes and then say no and say I like it and then we did it, we finished it brilliant. Can you do the same for Google Home okay yes we build exactly for Alexa and Google Home as well and we did it and then he asked can you do a Facebook message as well and we said this is for it's like your type and the client said the user is asking a question which is conversational it's the same on an excellent Facebook message why is it different, why can't you do it and they were right, it's the same thing just for a different device and they asked look as we are there can we have this chat on our website so we said okay we have to think, it's the same thing it's a chatbot, it's a different way of serving it but the logic and the equation is the same, user, NMP and chatbot let's go with chatbot API which is a Drupal module that basically is a layer where it lets you expose the content of your website to a huge number of platform and chatbot it makes your website chatbot friendly basically and in fact after that we'll build chatbot API we'll figure it out, it was quite easy to implement with all these platforms and much more which I have to say for the disclaimer botkit it's a Node.js, it's a javascript ball that you can implement almost anywhere on your website as we don't know why it died up, the integration is coming soon so you can integrate with all of them with a single module on your website so our equation is changing a bit so now we have a new item in the mesh in the web which is Drupal, so now the user talks with either the NMP or the chatbot, it will with dialogue flow, for example I'll show you the problem for Alexa you first pass through your website and is your website serving the content so few features about chatbot intents are plugins so this is for developers so it is the flexible Drupal plugin API to serve intents, I will show you how easy it is to build a plugin an engine plugin and how easy it is to implement the logic of your website and expose the data of your website through an intent entities from your data so we saw what the entities are and it can be if you think about your website think about your taxonomy if you have a huge taxonomy writing back all the entities on the NMP could be a long job chatbot API does it for you, so if you have entities, you want to expose these entities inside the user intent chatbot API push the data for you using the question how many of you are understandable views are on the Drupal world so views is a way of listing your content listing thing, let's say if you want to list your news if you want to list the title of your news or if you want to list the most active user you do it through view so let me show you an example of the articles Kevin tell me the news about cinema on our website how would you do it how would you do it with views and we will list like the three most recent news about cinema you can do the same in the chatbot with views I'll show you an example here and then Dalago and Alex Ralf and Alex are out of the box and again it's up whenever you see conversations somewhere you know that through chatbot you can you can expose your website to these because chatbot API give you like the sub-layer for any conversational integration again enter the plugin Drupal, developer spoiler close your eyes if you are not so this is a plugin it's the way you create an intent in Drupal in the technical way you can do it even not in the technical way so it's a plugin this is the plugin, the D is the intent thing we saw before, the machine name of the intent is a little bit logic and then you add the response, we are going to use this in a second entity push, again this is to push the entities from our website to the NLP to the logic of our equation in example I have some topics and I want to select the topics which are taxory terms by the way of my website and I can select a field for the synonyms then I decide how to push and where to push I want to push through API which is the old name for dialogue flow this is an example so these are the topics that I have on LLP I have urgent and family and important I want to add a topic for work like I have a message on my website I want to categorize my messages and the work card for my message is missing, message or email so I just work which are the terms for work, office, studio company so basically when you say something or when you delete something in your Drupal website everything, it has to pass through a Chrome job so I am running Chrome and then when you say something everything is pushed to the NLP automatically so you have to take care of the integration while refreshing is there when it will be used for you it will be used by your user I mentioned the use integration again when a chatbot when a user asks can we do properties on shortage as I said how would you implement on your website when you are searching and listing search results normally Google is done by views so when the chatbot replies I found this beautiful property do you want to know more about this property or skip to the next one on the search results this is for the ones that you are familiar with with Drupal this is a view with pagination where you are listing one item per page so it's a pagination on your website you show one and then click the next and the next one when the user wants to know more it will be like clicking on a search result and you read more about the users so it's the same content on your website it's the same experience it's just in a different way I don't know what it is to be honest it's the same slide as before just because it's probably cool so I am going to show you an example that we have I am using this housing association housing association topic for example and I built a chatbot it's called Drupal concierge Drupal concierge does it takes care of how can I fix my borders for maintenance support as well as it takes care of what a concierge does it takes care of your parcel and your mailbox so on this integration that I will show you is the same let's get the test version of Drupal concierge greetings show me the messages Tom has called you today at 9.30 do you want to know more or skip to next message skip to next message wife is reminding you to eat do you want to know more or skip to next message skip to next message no messages so again it could look weird what these messages are on my website I create a content type on a Drupal website called messages and these are the messages that they exist on the website they are not categorized I could categorize them in saying giving my work messages or I can say office messages using a tsunami or I can say giving the urgent messages is going to reply to you so it's listing messages it's just providing one search result per time or what I'm doing here is on your website I'm going to your website and I'm going to search and so the first result is a next and then the last one is on the Drupal again close your eyes this is the no result block that you are from Drupal so to do this I just used this bit I didn't use anything else so it's my content plus this view and it asks this integration so again it's it's supposed to be your content it's just a different way but it's still serving your content I want to give you a bit of tips and tricks when you plan to serve your content through a chatbot plan your intents in advance so don't if you have a website don't just say to the developer can you make it readable by chatbot you have to think about it like a mini project or a campaign is as important as a campaign what do you want to serve from our content want to serve the events are the events ready to be served how would you use a search for our events so you have to think about the utterances the phrases that the user may ask which is a really difficult task don't think that you know the answer it's not a website like answerthepublic.com can help you so what this website is if you are not aware it's basically collecting all the search the keywords the users have been searching for by topic for example to do the examples of my how can I get my wallet fixed in this website I search for support and maintenance and it gives you all the list of questions the user has been asked which they are crazy they have no idea what the user can ask when they are seeking for support and maintenance this is really important because you have to train your bot so almost all on the platform they give you a way to training your bot difficult intelligence on the bot but they are pretty done so training your bot you normally have a place with all the un-matched questions the users ask in the time you expose your bot and then on the training you match users ask this one this belongs to these intents so next time a user is asking it will be matched additionally the more you are the more smart the smarter will be the NFP so keep adding examples and utterances and keep training your bot so you have to build your content with with intents in mind you can potentially go home now and install a chatbot NPR and expose your content through a chatbot but your content may not be ready for a chatbot so you have to be smart if you have a title with like 25 lines it may be too much for a chatbot so you may want to change the title you may want to have a specific content only for chatbot chatbot they can provide images but when a user is answered with 2000 lines with 2 readers and images answer they can skip and close so you may want to change some of your fields some of your content types to be chatbot friendly in the Drupal world this can be done by a specific display mode for your chatbot for example you have the display mode again display mode for your full content where you show everything but maybe you don't want to show for an article for example what's the date and how long it's going to take to read the article through a chatbot because it's pointless as you have the full view display mode and the search display mode you may want to have one for your chatbot which may be displayed a smaller version of your title and a version of your summary without the tags because it's completely pointless in a chatbot context and then I'm pretty much finished so thank you for everything I this presentation didn't want to be too technical because it has people in it's a new world it didn't want to be not really Drupalism and not really Drupalist and not really technical because we're still at the Drupal camp but what you want to be is a way for you to go back and think about your content and think about what you can do with your website easily I want to mention that we may be late so most probably the bank society in the world they're now using chatbots for the customer service most of the companies general companies any kind of company in China they use chatbot to talk with users charities like Christian Red Cross they build a wonderful Lexa skill for first aid for user so again it was to explain to you how easy it is to bring you a bit of pressure so you go home and talk to your bosses I think we'll need a chatbot any question it will be available so don't care about links it will be available online I will put the PowerPoint version and the PDF version on Drupal.camp website yes so you use the download flow for your NLP part yes and with a plugin to that you can use whatever client like Lexa and so on so the bit for Drupal is just to expose your content anywhere just pull your content up download flow the NLP normally do the integration with the chatbot itself so for example the download flow with just one click can connect you to Google Assistant and Amazon Alexa Microsoft and Slack and Facebook and whatever it is you just connect is Drupal connected to download flow in this case and download flow with a chatbot exposed whatever it is so it handles like all the intents and everything else and the natural language processing and you've got plugins for the different interfaces does it rely on the download flow or can it use other similar chatbot API you mean the Drupal component so out of the box it connects with download flow and Alexa through botkit the implementation is coming a second again it's a JavaScript so we need a bit of development but botkit connects to Watson Microsoft Cortana which is slightly different for what download flow does but it's not out of the world so potentially as far as I know you can connect with almost anything if it's not covered by the current implementation out of the box you can do quite easily just a sublayer that can connect to anything yes no no I haven't so there are a lot of them so during this presentation when I started I just was working with Watson or with Alexa which have based almost all the code and almost all the documentation about those but then during the work in the presentation I figured out there are a lot of them some of them are easy but not too much but not really flexible and they are too really flexible but maybe not easy to connect I didn't know there was a PHP one I wanted to so PHP by itself is not a synchronous language so it needs power to refresh and loop and wait for the users but you know I didn't know I didn't know about the PHP one yeah I would but many said so again this is about the NLP so you should pick a Drupal it doesn't really care because it's Drupal and then because through the multi-language you can use the multi-language to deal with multi-language and I can say what flows it must be the NLP that you pick that must be capable of multi-languages that flow because it's been developed by Google it can understand so currently up to today it can talk with 15 different languages before the end of the year they want to increase to think 80 I don't know even if there are 80 languages in the world so the way it works is basically the user talking again to the NLP through the chatbot and when you receive the answer you say the intent is mental support the end piece of this one but the language is this language so when you can reply with your content you can pick the right language from your data excellent presentation I'm going to ruin it with a stupid question so my content which people are finding through just Google on their desktop I have to optimize my data and then maybe I have to buy some keywords so people discover it but in this scenario I'm not sure how anyone with an Alexa box would discover my information so the way normally unless you implement a chatbot in a specific way like in your website they have to install your let's call it app on Alexa you install skills there is a skills store they list all the skills and this is actually like a phone you pick the one that you want on the example that I gave you through Google Assistant the group I conceived it was an app that I created for the integration normally so Google doesn't work out which are the most popular answers in your skill I know in a sense so Google doesn't access your website unless you say so the way you need thinkers it's not Google you mean Google as a Google Assistant not Google the website so on Google Assistant when you manually activate the app that you want to talk with or you say hi Google, please ask to group a concierge which is your trigger word how can I fix my border the same for Alexa you can say Alexa open group a concierge or you can say Alexa ask group a concierge how can I fix my border so you need a trigger it's not done automatically some Google things like searching on the web and this kind of session and responses to access your app you have to action it that's your question if my boiler is broken so you've got the plikes they're focusing on the negative so broken not working will it work it will work yeah I don't have an example in here it will work in this page down here you have the list of variables that you're expecting some of them may come as entity some of them may not come because the user is not saying them what's your account what's your account number so what you do is basically when in an intent some of your entity are required you set on MLP those are required if the user doesn't provide those prompt these questions so if the user say can you fix my boiler for my account ID which is AA123 and my main property then on this workflow if user had to ask how can I get my boiler fixed for my account number and my main property both would answer this one because it has only information when anything is missing you can define if this is missing prompt this question if this is missing prompt this one so you complete your context all of this is done on the MLP we have normally an S-configuration to deal with missing variables yeah I don't know it's scary question yeah how do we work in terms of checkout or buying problem again it's about the MLP the MLP buying so money's changing it must be allowed by the MLP some of them they do some of them they don't in terms of buying from them but there are things like they have different lanes on different MLP but you can link the accounts for example if you've been but this must be planned the device it's not just a general chat thing with Alexa and with Google and with custom chat clients as well you can link the accounts so you can link this specific user having this Alexa device this specific user having this cookie through this chat to an account if the user has the credit card link an account then they can make and they can purchase they want by the device it says it's normally done by your website by the chatbot integration so by the Google with so it will be exactly like a checkout only if the user has an account and if in this account has a credit card you can ask the credit card users from the chat but then I don't know if it depends by the trust the user has with your chatbot again think it's your website if you do a checkout on your website you can do through a chatbot if you do a form on your website a chatbot asking questions it's a form it's not a long day process if it's a big form like where you do leave it's going to be crazy but it can be done yes it looks like form can any of you go and integrate with the DREAM performance like each question is just a form it is again it's your website the way you're asking for information is that when you're serving content it's the same concept just in a different way so I thought about doing the integration it's not the end of the world because you know when it's a drop down give the options there's a text field ask for questions a chatbot give the options and maybe they can say it's not a contribution I will be happy to receive a pass but definitely it should be easy anything else any further announcement do you want the microphone you can read it is it me very easy to make thanks everyone for coming to the camp we encourage everyone to attend tonight's social lab the blacksmith and the toffees maker three minutes walk from here Drupalcom London has the whole tab and there is a thousand bar tab sponsored by Thunder so get your free drinks why did that do it guys it's not easy if you've never been at the Drupalcom or at the social night go because it's crazy it's a great place that's it thank you I'm here now you're welcome thank you too I'm here to say hello I've seen you before I've seen you before if you want to say hi you can come if you want to say hi I'm here to say hi but I want to say hello I'm here to say hi and I'm here to say hi Thank you very much, thank you very much, thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much.