From Web & Mobile to Messaging – To Bot or Not to Bot

(upbeat music) - Awesome hello, hi everybody. Hi everybody. - [Audience] Hi. - Aw awesome yeah, that's the Aussies I like. Okay, so this is me, or at least a middle model I have of myself, I admit I have a little bit less hair than this dude. And this is my twitter handle if you wanna hear about AI and bots and stuff. But basically I'm an ambassador. So, I connect between Slack as a platform and developers and startups all around the world. And today we're gonna talk about conversational interfaces. But there's an interesting fact about having conversations. They are hard. In the US the biggest fear in the US, is doing what I'm doing right now, speaking in public. So, a friend of mine now told me that it's actually better when you die to be the person dead, than to give the obituary, in terms of fear. Which is pretty interesting and wild if you think about it. But there's a trick, and we're gonna do this trick. So, we're gonna start with an activity. I've worked in small companies like Microsoft and Google and they teach you how to speak in public. And one of the things they do, there's a small trick, a small exercise that we're gonna do, in order to switch your brain from the adrenaline that is fearful, to do the adrenaline that is exciting okay. So, we're gonna do this trick, I'm gonna do it first, and then you're gonna do it. Okay, awesome. So, it goes like this. One, one, one, one. One, two, one, two, one, two. One two three, one two three, one two three, one two three. Superhero pause. (audience laughing) Okay, now everybody stand up. Stand-up, nobody is to cool for school. Awesome, okay, Ready? One, one, one, one. One two, one two, one two, one two. One two three, one two three, one two three. One two, three superhero pause. Awesome, thank you very much. (audience clapping) So, if you look around you see people smiling. And this is a way to trick your mind into, "Hey, this is a delightful experience." (audience laughing) If you see any of your peers do this before they go and present, please know what they're doing, okay awesome. So, today, we're gonna talk about, and I think Chris did a very good job of talking about a conversational revolution that is happening. So, we start with a plain paper and then we move to computers. And then we move from desktop to mobile, and now we're moving to conversation. And I'm gonna talk about the conversational interface, and I'm gonna focus on conversation interface for work, and how can we move sucky experience into delightful experience? And we'll talk about when to bot and when to not, and we're also gonna give a few best practises and technical tips and tricks. So, what are Conversational interfaces? Conversational interfaces is a new user experience that helps you expose a workflow, a product, a brand inside the conversational interface. Why is this important? This is important because of two things. We've seen this revolution happen again and again. So we can see what happened in the past. A user experience is only as good as the service or product or workflow it exposes. So, as a developer or as an entrepreneur, you need to think what is the service I'm exposing? And then think if the bot is the right user interface. There will be workflows that are very good at web, or at mobile and there will be on user experiences that are much better in conversational interface. And we'll talk about when what happens. The second thing to think about when we think about this new user experience is think about whenever there was a change between user experience to another, there's a big, big opportunity. So, when we move from desktop to the web there was a small company that says, "Why don't we just CRM on the web?" And everybody said no that's not gonna work that's not gonna be safe, people are not gonna go on the web to do there CRM, Client Relationship Management. But now are all using sales force. And same thing happened with Uber and Lyft, right? So, when we move to mobile. I worked at Android at the time, and I can tell you nobody in android thought that Lyft or Uber will be the killer use cases for mobile. But that happened. So, what I'm saying, that we're gonna see the next wave of revolution happening in this conversational interface, and it's gonna be big okay. By the way for the people are on the timer, I'm still seeing 50 minutes. And that's okay, I can talk forever. Yay, now it's 45. So let's give you a few examples of bots that I use everyday. The first bot that I use everyday is called Amy. It's actually an email bot, from a company called, And what they do is that they provide you with scheduling service. So, if you want to email me and say, "Hey mate, I want to talk about the Slack platform, "let's set up a meeting." I cc Amy on the correspondence, and Amy sets up my meetings. It has access to my calendar, and it starts sending emails to all the people who are with me, at that meeting. People's jaw drop when they hear that Amy is software. People send thank you letters for Amy, and CC me as the 'manager' true story. Now they've added a little bit of diversity, so you can choose between Amy and Andrew and I'm probably gonna report to Andrew. But think of it, this is a user experience that has already been there for a while. Setting up meetings has been there for very long while, but now it's augmented with software, making our life better. I pay about $42 a month for Amy, and it's about $.10 an email. So, it sends about 400 emails on my behalf every day, pretty awesome. The second bot that I use every day is Alexa. As you can see I love to talk about bots, so getting my wife to agree to add a bot to her household was pretty challenging. But once we did it, it was amazing. Because we wake up in the morning and we ask Alexa, what's the weather? And well, play our best music, so we play Monday, Monday in the morning to get the kids happy in the Monday morning. But we also move a lot of our shopping to Alexa. So, within two months of starting to use Alexa we moved things from Safeway and Costco into Alexa, giving Amazon a big, big edge because you are in the kitchen and want to order something so you just ask Alexa. So it's a trivial and easy interaction that makes conversational interface so important. So, 20% of our household spend has moved from Costco and Safeway into this conversational interface. The last bot that I really like and use every day is called Statsbot. Statsbot is actually Slack bot, and you can connect it to multiple data sources. So you can connect it to your Google Analytics to your mix panel to your database, and then you can have a conversation with that bot, on this set of information. So, I connected it to my Google Analytics for my personal site, and I started having conversation with it. And as you can see my site is not doing very well unfortunately. I haven't attended for a long while so that probably it. But I can continue the conversation and say okay, today sacked but why? Maybe we could look at the sources of the traffic, and where they are coming from, I can start having this conversation. This would've taken a lot of context switching and analytics between all these data sources. So, they take all this information and provide a delightful experience inside Slack. How many of you use Slack for work? Wow, wow, you're awesome. Thank you. Okay, so we've given a few example of bots, let's talk about why now, and Chris touched a little bit about that. So for us, we're a tool for those of you who didn't raise your hand. We're a communication tool for work. So we think that communication is the core of what we do at work. But communication is not the only thing that we do at work, there's a lot of tools and services, that we use every day that gets our life more productive, right. We have scheduling, we have spreadsheets, we have all the services and we do a lot of context switching between them right. You move from one type to the other, and you actually need to do a lot of context switching that is taxing on your day to day job. So our mission is to consolidate all that. To take those interactions and to move them into Slack. We don't want to implement it ourselves, but we want to provide a surface, just like you build for web, you build for mobile, you build for Slack. So, we want to be the surface, where all these interactions happen, and I will give you examples of a few interactions. And this is why this is important for our partners, for developers who build on the platform. We were the fastest-growing start-up in the Silicon valley I think, and we have six million daily active users. The key fact is that they have Slack open for 10 hours a day. And they generate content for almost two and a half hours a day. That means that they are highly engaged inside Slack. So, if you are highly engaged in your mobile, it would make sense to build mobile apps. But now that people have moved into Conversational interface it makes sense to engage and to build the processes and apps inside the messaging apps. And it's not just Slack, there's like multiple from WeChat to Facebook, too many others. There is a movement into Conversational interfaces. I'll talk about other key aspect, But one of the aspect is that 55% of our audience is actually outside of the US, and that is why I'm here. Another interesting set of statistics is that we have in the last two years, we accumulated a vast amount of developers. I don't care about registered developers, so when people tell you registered developers, that's not a good statistics because that means that they run the campaign and got a lot of developers to register. I care about developers who actually use the platform and get value from it. So we have 155,000 developers with keys that are actively used every week, and that's important to us. We also put our money where our mouth is and so we have a Slack Fund and I'll talk about it a little bit later. And we have apps in our directory, I think one of the key parameters here is 90% of our paid teams actively use bots every day, and they don't only use one bot, they use on average eight integrations, eight bots, and that's a very, very strong. So our paying users are inclined to use bots every day. Okay, so we talked about a few examples and we talked about why, let's talk about the features and do a little bit of deep dive into technology. So, the first type of integration that we've seen in the beginning of last year, were notifications. Notifications were an easy way to pipe content into the conversation. You have the third-party system, and you want it to generate a report and put it into Slack or you want it to have some sort of information. You want it to pipe content into Slack. In this example we partner with Google calendar to pipe content into Slack from the Google calendar. And as you can see it now, it can improve transparency, so I can pipe this notification into my teams channel, and then they know what I'm doing right. So, you can actually improve team productivity with notifications. This is another example I really like. So there's a small startup in a San Francisco not small anymore, called Envoy and they do guest registration systems, and we use them at Slack, and when he come and visit us you fill up a form, you get a nice sticker, but what's happening behind the scenes is that we get a notification. So now, this is not Alex true email because I've been presenting this for a while, and he's been getting spam, so please don't try this email. But think of it right, the alternative is to get a phone from the receptionist saying that your guest is here, and then going into a reception room full of people and trying to guess whose this person if you have never met him, right? Now you get this notification, you immediately know whose the person, and you can go and have a much better experience with this. And as a geek, once you connect all these things for me this is exciting. Think of a door that never needs to be open after 10 o'clock you just connect a sensor to that door, and say whenever it's open after 10 o'clock, send a message to the security channel saying, "Hey, I'm door number five, "I shouldn't be open right now, "somebody opened me please help." Right, so you can connect all these things into the Conversational interface. At the technical level notifications are super simple means it's actually a web URL that we exposed to you. So when you set up your your Slack integration you get a URL, and you can actually run a curl command with your tokens and the parameters again, don't use these tokens, I make sure that they don't work. But you can actually use this command if you have your own tokens and create the notification. A little bit of bits of best practises around notification, formatting notification is really important. I've seen a lot, in the beginning I've seen a lot notification that were just like big blobs of text. People don't like that. Add colours, and images add links, all of these really improve the ability to have a good experience for your user and a highly engaged experience. The second thing is digest and don't spam. If you have a server that sends two messages an hour and that every one of those are sent into as a notification you will have very sad people right? Because they'll get notifications all the time. So think about digesting your notification and sending like a daily digest. "Hey, this server had 10,000 errors, "and I didn't send you 10,000 messages, "I just send you one message about it." And that's probably a better experience. And then using emojis, it's pretty interesting people think that the emojis relay emotions, but they also relay processes. So, when I send something for my team, "Hey, guys do you please do this?" The first thing they do, is add the eyes emoji, saying that they're looking at it, as a reaction. Then when they're done, they add that the V emoji, to say that they've done. We also have internally a custom emoji called raccoon, it's actually in the shape of raccoon, you know it? Raccoon, yeah. Okay, awesome. Raccoon emoji, notates that you're talking on the wrong topic on the wrong channel. So if you're an engineer, going into the marketing channel and start talking about C++, they'll all raccoon you to death (audience laughing) until you move into engineering. So this type, you can actually relate, process and cultural aspects using emojis, so that's best practise. So we have notification, then came the Slash Commands. And the Slash Commands were really exciting, because it let you take action inside Slack on a third-party system. So things like looking up an account or checking out a bug, or reporting a task, all these now moved into Slack, making Slack the place that where you not only talk to your colleagues, but also to the tools and services that you use everyday. A little bit of technical background around Slash Command. Slash Commands is the URL that you exposed to us, to the Slack servers. So when a user types in a Slash Command, that you configured we go to your web end and we say, "Hey, this user on this team, has run this Slash Command "with this query string." And what you return to us, is what we display back to the user. Okay, so it's a very easy way to implement an integration. A little bit of best practises around Slash commands. Consider delayed response, sometimes you do a Slash Command and it doesn't take three seconds. Not everything in life takes three seconds. But sometimes you want to have responsive engagement, so I do a Slash Command, lengthy report, and that reports takes five minutes. So you need to be responsive. The first thing you need to do when the user hits the Slash Command, is reply with, "Hey, I'm working on it." And then send oh, I'm 50% percent done, and then actually send the response. So you can respond multiple times to a Slash Command providing the user with the ability to see that you're actually working on the task that they have asked for. Slash Commands also, there's naming challenges there, so if you have to find two Slash finds, the last find that was installed will overwrite the old find. So, think about the name of the Slash Command when you're building this. And then linking profile is pretty interesting, the key here is that when you run an activity, you want to know whose that user on your end right? When I do a Slash update ticket, you want to know to map that user, to that ticket system. So you can know whose that user, and act on their behalf. So the pattern here is the first time I run an update ticket, and you are the update ticket developer, what you do is challenge me with a URL that says, "Hey, we don't know each other that well, "why don't you login so we can connect you." And you hash, you put the user ID as a secret in that URL. So, when I click in, and I do oath to factor authentication now you have the mapping between the Slack user and your internal system user. So, the next time I run the Slash Command, and we pass you the Slack user ID, you know to act on their behalf in your system. So it's good for security, it's also good for permissions, it's also good for giving me my contacts. So, if I do a Slash my bugs, you know what is my mean. Right, what is my who am I? And what are my bugs. Then came Bot users. Bot users, me and Chris used to joke that bot users, if you ask someone in San Francisco what they're doing, anyone randomly, they're building a bot. Everybody's bot shit crazy. But the premise behind bots is pretty interesting. How many of you like to do expense reports? I've been doing this in many, many countries around the world, nobody raised their hand. Nobody said yes, expense reports. But if you think about it, expense report should be a delightful experience. You pay for something, and now the company is paying you back. We should all wake up in the morning saying Yeah, today is expense report day, I'm so excited." But why doesn't it happen? And the clue to this is that, when I present in front of VPs, they usually raise their hand, they like expense reports. And I ask them why, and they say, "Oh, I like expense reports because I pay for something, and then my personal assistant deals with all the crap and I get money, right. So that's the promise of bots. What will happen if all of us had a personal assistant that took care of all these crap, sorry. But actually was not powered by human that suffers from these experiences, but software that doesn't suffer right? So, we're actually have been working with companies like Concur to create expense robots, and you can actually have these delightful conversation when you just take a photo of your receipt and upload it into your expense bot. In this example, we partner with a company called Howdy, to do a standup meetings. And for those of you who are not engineers in the room, a standup meeting is a meeting that happens every day in engineering and you stand up that's the hint of the name of the meeting, and you say what am I working on tomorrow, what am I working on today, what am I blocked on. And this is very easy once you have a small team as it grows it becomes much harder. So this bot goes into each member of the team and asked them what are you doing today, what are you doing tomorrow and what are you blocked on, and reports that back to the manager, even in distributed team, in their own time zone. So, that is a delightful experience that is facilitated by the Howdy bots. Now, building about is not as easy as a Slash Command notification. So we partnered with with Howdy, to create Botkits. Botkit is an open source project other than something like a Polish dessert it's actually a open source project for building bots. And even if you're not an engineer, you can see what's happening here. So, the bot is looking to hear hello, hi or greeting, in a way of a direct-mention, mention or direct message, and what it does it replies with hello. And we actually partner with a lot of other open-source frameworks, to create all these construct conversational construct inside code. A little bit of the best practises and tips and tricks around bots, the first thing is support help and feedback. I've seen a few bots in the beginning of this revolution where I do not understand, was the most thing that you got from the bot. Everything you said, "Oh, I don't understand, "I don't understand." Always try to give feedback, don't block the user. Always give them an out. Give even just posting, "Hey, I didn't understand "but here's how to work with me and post the help text." Would really help the user understand how to engage. Provide feedback, let the users say. I've even seen startups that have the measurement of meantime to I love you or I hate you. How fast does the user say, "Oh I love you.' or "Oh I hate you, in the conversation." And this is like implicit feedback that you can get from your bot. In mobile app or web app, it's really hard to know if the user really loves you or hates you, but with conversational interfaces, they tell you. Think about Thoughtful onboarding, I think this is the most important, this will be the test at the end of my presentation Thoughtful onboarding is the most important thing about creating conversational interfaces. When I worked in Google, we measured an android, we measured instal versus uninstalls. In Conversational interface, it's bogus nobody cares because nobody uninstalls a bot. What they do is that they ignore it. They instal your integration, and then forget about it. So Thoughtful onboarding is super-critical getting the team to understand, and to know, teaching the user what to do in order to engage with your bot, and doing it ongoing as people join the team is super important. And then use rich interactions. The key here is thinking about the conversation as a funnel, at the end of the day we don't want to talk to software, we want to get stuff done. So, if we think about getting stuff done, we need to think about what is the minimum amount of steps to having the conversation, right? We don't want to have a lengthy conversation with a service provider, we want to have a short conversation with the service provider, we want to get the service right. So the same thing, the same thought process needs to happen with conversation. There's a conversational funnel, and you can make that conversational funnel better by adding rich interactions. which is like 2017, so let's let's dive into 2017. The first one, the first rich interaction that we added, is the Buttons, and have never been so excited about buttons in my life. And the key here is this, you click on the button and it's done. I'll do it again. This is so awesome. I'll tell you why I think this is awesome. This is awesome because this is a greenhouse it's a start up that tells you, hire people, manage the hiring process, and if you're growing as fast as other companies, you see that hiring and approval processes is really painful. You get an email that says, "Hey, you have a new process to approve." And the email doesn't have buttons, it has a link right? To a third-party system. And you click on that link on your mobile and said okay I'm gonna approve it, and then it prompts you with a username and password, and then you don't remember your username and password. But then you like spend another 10 minutes remembering your username and password, and once you do that, the system it doesn't support your mobile. So what do you do? You go back to your email, and mark that as unread, so you can go into your computer when you're done, when you're next to your computer, and do the same thing again, right. So this is the alternative, and once this is the alternative this is an amazing experience. And as you can see, there's even a design best practises which means that once you click on a button, the button needs to evaporate, and you need to clean up after yourself. So, buttons are our amazing, drop downs or message menus as we call them are even better, and the key here is that you can actually connect with third-party system. So once you start typing in the message menu in the drop-down, we hit your server and say, "Hey, the user has start typing back. So, you can return the results live, and mimic things like auto complete. So, I'm looking up a bug or a system or a client, and I start typing, and you auto complete the interaction inside Slack, which is pretty interesting. Then, three weeks ago we released dialogues and this is the ability to capture information. So, think of I want to start a task or I want to create a bug, or I want to create a poll. All this could now happen inside Slack. I click on a button, and then a dialogue happens. I do a Slash command, and then a dialogue pops in. So you can do a lot of interesting workflows with dialogues. Okay, now let's talk a little bit about building workflows. At the high level, architecture level where bots are never installed. Installed is not a good word. Installed implies at least for me, moving binaries into a client. And that doesn't happen with bots. Not with not on Slack, not on Facebook, not on Kik, not on anyone. Bots are connected into the Conversational interface. So what happens is once the user approves you, you get a set of tokens, and your bot is actually hosted on one of the hosting provider or any server that is accessible to the web. And it actually, there's two paradigms, one of them is the events, and we have an events API. And the other one is a web API. So the events API is, you subscribed to people are saying something, I want to listen to what people are saying in a certain channel. Or I want to subscribe to when a person joins the team, or leaves the channel. There's a lot of processes that you can listen to and you register to these events and our server will let you know once these events happen. So, let's think of like a process where every person that goes into the legal channel, or joins the legal channel, needs to get a DM, that says, "Hey, legal channel, "thank you for joining us, "please don't talk about everything "you read here in the public, right." So you can actually listen to user join into that channel and send using the web API, send this person a DM, saying that. And then we talk to our clients using our proprietary socket that you can actually use as well, although we don't recommend that. Okay, and then there's the, how do you construct a workflow, or a bot? There's initiation, there's taking action, and there's conclusion. The initiation, and we covered a few of these, you can do a notification, and you can add buttons to notifications. There's Slash Commands, and you can add dialogue to Slash commands, and there's... This is pretty interesting, which is unfurls. How many of you know what controls unfurls are? For those who, like we all do unfurls, it's a very common action, not a very known name. Unfurls is what when you post a link to twitter or Facebook and it opens up a preview, that's called unfurl. And as a developer, you can control unfurls of links inside Slack. So, when a user drops down a link for Zendesk, the Zendesk bot could replace that with delightful information about that ticket, but also with actions like escalate or resolve. So, you can actually take action in a seamless way in the conversation. So I'm very excited about unfurls. And then you can add context, you can add buttons, you can start a thread, you can do basically anything that the user could do, this is pretty cool. So if you have like a PTO bot, a vacation bot, and it knows that you're on vacation, the bot could actually set your status to on vacation, which is pretty awesome. And then taking action. Taking action, using the buttons, the drop downs in the dialogues. And last but not least, getting discovered. So once you build a bot, So, there's two types of integrations, one of them is called custom or internal integration, is that if you have a Slack and you want to improve it for yourself, you can build your own integration, like makes like better, with your internal processes or you could build an app, that every person can instal. So, if you're Trello, or Zendesk, or one of these companies, or you have an idea for a startup, you can actually build and app, that the every team can instal. And we have a directory, and we added discovery into the product. So, you can now look for integrations and bots inside the products, and we also suggest bots and integrations to new users on Slack. Okay, so let's talk a little bit about tools, right now if you're a hard-core engineer, or even if you're not. Using our API is pretty easy, so you don't need any of these really. But if you want, some of these are really awesome to make life a little better. Walkie is an awesome prototyping tool, it's such a good prototyping tool that I built prototyping tool and then ditched it, and then recommend Walkie. Okay, so this is how good I think it is. It's a easy way to prototype and see the integration that you want, and then export it into Jason and call our API. Then there's Dashbot, but also other analytics tools. And this is very important because you want to know what people are talking or, what they're doing with your bot, so you need to get a lot of information about the interaction. Missions is an easy way if you're not a coder to start building workflows. You can instal the Mission app Slack.comSlashapps you instal the Mission app, and then you create the workflows inside missions. So, you don't need to actually code in order to create a bot, using Missions. Botkit we talked about, it's pretty awesome it's the most common, popular bot framework and open source and then there's, or all of its competitions is from Google. There's Watson from IBM and many other providers, and the key here and I'm asked this multiple times, so, I'm gonna stress this. You don't need AI to build a bot okay, very important. Bots can do very, very well without any AI. All the integrations I've shown you, till now do not use AI at all. AI can help you, if you're building a fully Conversational interface, and you want to extract intents and entities from the conversation. AI is actually a tool set, it's not... NLP is a subset of AI, that lets you extract information from conversation. So, it helps you mitigate this. That was my first viral Tweet, in my life. But the key here is that, sometimes conversations are hard especially when you're passing information. So let's say we're building a movie bot, and we decided not to go with rich interactions of like choosing the theatre and choosing the movie which is probably the recommended but we want to have a fully conversational bot. And then the user says, "Hey I want to see Batman tomorrow at 10." Extracting the movie equals Batman, tomorrow equals time and all of that, is pretty hard using regular expression. So NLP helps you extract this information from the conversation, and after training it's it helps you When I say it doesn't solve the problem, because it's still a maturing technology but it helps. But what I'm really excited about when I talk about AI, is actually not NLP. I'm really excited about other aspects of AI. So, for example this is example when I got the Google assistant which is Alexa compete, I try to break it, because I'm an engineer. So, I got early access to the bot, and the first thing I did was upload a photo of my cat. And I said I'm gonna break it, and then I'm gonna go because I know the engineer, I'm gonna brag that I broke their bot. And they broke my heart, because they used NAI solution that actually analysed the image. And they started a conversation about cats. And my mind was like pooh, this is so awesome. So there's a lot of AI tools out there, that are not NLP that could help you create amazing experience. From image recognition to OCR to sentiment analysis to see if the user is actually happy with the conversation or not. To prediction and deep learning. All these sets, and search and retrieve, there's a lot of interesting aspects of AI that you need to understand in order to build any app not just bots. I think at the end of the day, we once say I'm using AI, I'm not using AI, that it's going to be equivalent to I'm using four loops. Everybody's is gonna use AI, There's just gonna see, the subset of AI that you're gonna use. Okay, so let's talk a little bit about when to use bots. Sorry, before we do not that, I wanna go back here and do another experiment. Prototyping, we talked about prototyping but the best prototyping tool that I know and I've been preaching this even when I was in my Android days, is actually having a conversation. So, I want to invite someone here, to have a conversation with me. Whose joining? There's a gift for you. Okay, come. That was easy, no not that easy. Okay come join us, let's give him a round of applause. (audience clapping) Okay, so I'm gonna be the bot, you're gonna be the user, it's gonna be really easy. Hello, I'm a great bot, but before I tell you what I do I want your username and password for Facebook please. - My name is Lucky, my password 736 VF9. - Thank you very much, awesome. You're awesome, thank you very much. So, wait, wait, wait, wait, there's a gift, Slack socks. Whoa. So, thank you. (audience clapping) And the key here is that it's not that he actually gave me the wrong password, I'm almost sure, but I'm gonna test it because I have good memory. But the whoa! That you all did, like wow! Did he ask him on stage for a username and password for Facebook that's insane. But when I worked in Google that what most android apps did, before showing you the value they showed you a wall of login right login into the service, and then you'll be get all the goodies that we don't tell you about. And we call this the wall of login because we've seen about 70% bounce back in uninstalls when people did that. So just having this conversation, makes any product better. When I talk to entrepreneurs and they show me things and they show me long forms with multiple, multiple questions, I actually say, "Okay, let's turn this into a conversation, ask me all these questions if you dare, right. So having a conversation, really turns you into a better product person, and improves the empathy. So, actually doing prototyping having a conversation with someone. is actually great way to build products. Okay, talked about my cats. Okay, but wait there's more. The first thing is the Slack Fund. So, we have a fund, where we invest in companies in the last announcement we announced seven new investments in the last six months I think. And total of 32 investments around the world, We look at things that are improving our platform and interesting bots on our platform, and we don't take the lead, we don't take a seat at the board, we are very, very easy to work with. The person whose running it, is not me, it's actually somebody who knows how to run funds. And then, this is the RTFM, read our fantastic manual. it's there's interesting, I really like the fact that we have now blueprints which are like small templates that you can go and instal, or run on Glitch, and if you don't know but you should know Glitch. But you can run those on Glitch and start playing with it. So, we have a set of go to or just look for the blueprints link, and you can see a lot of examples about how to build integrations for Slack. And this is the last slide. A year ago, O'reilly asked me to write a book about bots and I did, I can talk about that experience, as an engineer it's a very interesting experience to write a book, but I recommend if you're interested in this topic checking it out. And thank you much very much, you're awesome. (audience clapping)