The Kik Bot Platform
avc.comCan anyone explain how a chat-based interface can possibly be generally successful except briefly as a novelty?
Surely an UI with controls specific to the task at hand is much better than having the user guess what the bot responds to and what it can do?
In the restaurant use case, for instance, a QR code + text URL that points to a website where you can advertise the restaurant with whatever graphics and UI you want seems far better than some sort of text interface (which also requires them to be Kik users, know they can scan the code, etc.).
It can be, but with a bunch of caveats that I'm not sure people are fully aware of. There's a fair bit of over-enthusiasm about chat interfaces and IMO not a lot of realization of its limitations.
The usefulness of chat interfaces is proportional to how complex the task is and how poorly the user understands the scope and structure of the task.
To use a contrived example, if you have no idea what's left in your fridge, saying "Computer, restock all my essential groceries" is easier than going into the fridge, figuring out what you need, and ordering it via a traditional interface.
Or think of a customer service hotline, where the caller has no idea what options are even available to them, nor do they understand the hellish tree-structure of the touchtone menus. In these instances natural language interaction can remove the need to understand the structure of the task and get them directly to the thing they need. Many customer service lines are already doing this in a simplistic keyworded way, and they can be better.
On the other hand we're seeing a lot of people try to apply chat/natural language interfaces to tasks that are both simple and well understood by their users, and I think these will be doomed to fail. Ultimately voice/text is harder and more annoying for the user than punching buttons, the tradeoff being that they can be valuable when the task is complex/opaque. Most of these applications don't hit a positive tradeoff for the user - and end up being a complicated/annoyingly unstructured mode of interaction nobody wants to use more than once to show off to their friends.
Simple/well understood things like "call an Uber" I think will be pretty DOA if you try to shoehorn a chatbot into the middle - users will prefer the actual UI over it any day of the week.
- Computer, restock all my essential groceries.
- Sorry, I didn't quite get that.
- I want you to restock.
- Sorry, I don't know how to "Youtube Rostock". Do you want me to google that?
- Well, it's... Uh...
- I don't know what you mean by "Whale that's a".
> Simple/well understood things like "call an Uber" I think will be pretty DOA if you try to shoehorn a chatbot into the middle - users will prefer the actual UI over it any day of the week.
I completely disagree when it comes to texting (voice is dif.). I have no interest in waiting for my uber app to load, get me a quote and than order me a ride... I would much rather use a chatbot to look up quick and easy things.
If it's a one off piece of information that I can ask in 1-2 queries/interactions with a bot...I would much rather that over opening an app. Especially, if I can look something up quickly without leaving the current UI i'm using.
I also think you are ignoring all the many use cases that are made possible that were never before possible (i.e. the ability for chatbots to augment humans to achieve access at scale), and the many business models that can shave off 20-30% of their labor costs with well executed chat bots.
I also think it's important to think about the bots calling other bots use case, which might become even more important. Just because you can't envision a human preferring a bot over an app with simple/well understood things...doesn't mean there wont be many use cases where a current bot you are using talks to other bots on your behalf, so the UI choice is never made by you. Finally, and most importantly, if chat bots start replacing parts of discovery, search and research, it will become crucially important to make sure your brands are found and used by bots and people over your competitors brands and bots.
Think of doing SEO in 2002. If you got it right, you banked tens of millions with minimal effort.
I can't predict the future, but viewing chat bots as a UI alternative limits its actual scope.
In Waterloo there's a restaurant where you can text your order. Personally I'd rather text bring me a 38 with a diet coke and hold the mustard. The number of times a waitress or drive thru person gets the order wrong is much higher than simply texting it.
http://venturebeat.com/2016/03/01/why-bots-not-a-i-are-the-f...
Kik CEO actually has a pretty good narrative on this
https://medium.com/@tedlivingston/the-future-of-chat-isn-t-a...
> Surely an UI with controls specific to the task at hand is much better than having the user guess what the bot responds to and what it can do?
A well-designed and well-implemented UI is better, yes. But I think where this could be useful is for the many customers who don't have the cash to make a decent app. A stripped down chat interaction could end up more usable than what they'd build from scratch.
The value is in making a legitimate platform for the lowly CLI app then. I like it :)
I honestly have no idea. Chat bot mania sure seems to be in full swing though. Call me cynical, but all I can see is a lot of tech and development hours desperately in search of a problem to solve.
Ultimately as with so many trends the underlying thing here seems to be "Go where the users are". Users are using lots of chats and chat apps, so now we all need bots to meet them there.
That's why this fascination with bots and conversational UIs seems particularly cyclical, as various chat rooms/chat apps come and go in popularity. Just the other day, I was pointing a colleague to The Jack Principles, a book/presentation/best practices compendium whose lineage traces back to the 90s (and I think now is a great time for Jellyvision to sell us all a new edition in bookstores).
The reason this is particularly exciting this time coming back around in the zeitgeist is that we have better tools than ever (NLP has come a long way, machine learning and deep learning are doing exciting things, the "platform" level concierge/assistants of Cortana, Siri, Alexa). Maybe this time it might be more than a passing novelty.
It's a command line where you don't have to be precise.
Although bots have been around for a long time, most of them have required precise commands. You're right that imprecision is why it can be successful, and the key to making this work is having manager interfaces like Siri, Cortana, Alexa, or Hound which can add layers of abstraction over simpler single-purpose bots. As we standardize communication protocols between bots, it will be easy to send a header describing abilities and responses so that the user interface can both parse the capabilities for the user and send feedback about how to be more responsive to the bot and its programmers. In the end, if this works, we should have a massive amount of machine learning taking place as bots improve each other.
>Surely an UI with controls specific to the task at hand is much better than having the user guess what the bot responds to and what it can do?
The challenge of syntax discoverability can be mitigated in a text interface with smart autocomplete to guide people towards what they can say. It becomes harder with voice. Also one messaging app, Telegram, allows chatbots to present customized keyboards that change based on the context of the conversation, e.g. thumbs up/down or star rating system.
Perhaps it is the illusion of communication with a human (if the bots can handle variable expressions for the same concept - e.g. people can say the same thing many different ways) that makes this appealing. I don't have to click, which would mean I construct a concept in mind and I then convert that to the correct expression provided by the service. Integration of simple bot support is a first step as AI/ML + NLP evolves to support greater complexity.
What about CLI though?
At least they're internet famous among developers for being the guys who blew up NPM, so maybe now everyone will be excited to start working with them?
If your investor has to pimp your idea for you then that probably means it's a dud. The idea of Brand Bots seems really impersonal. I would want Bots for quickly getting through the things I hate doing (returns, troubleshooting) but not for getting coupons by scanning a "Bot sticker" (fancy QR code?).
i pimp everything, so i guess that means everything is a dud. i am an equal opportunity pimper. i plan on pimping again tomorrow on AVC
I read your blog a lot. Thanks for writing it. But some of the conclusions you're trying to draw in this post feel forced. The "websites -> apps -> bots" deal especially jumps out to me as odd.
many websites, apps, bots conceptually share the same goal: to let users interact with a database. they represent different ways to read and write company data, and as such have different strengths and weaknesses. websites, for instance, are terrific for discovery/browsing activities while chat bots could be terrific for transactional activities (e.g., amazon, cancel my last order).
today, the problem with bots is that natural language AI is extremely difficult, so many criticisms hold true: websites and apps are better than bots for most tasks. today.
but that is similar to someone in 1994 saying that online shopping was worse than offline shopping. yes, it was. but technology improved to where online shopping -- for many cases, but not all -- became better than offline shopping.
the real question: if you believe AI will evolve to where chatting with a company bot is indistinguishable from chatting with the company's top human employee/representative -- e.g., imagine the equivalent of jeff bezos personally handling your amazon queries and transactions -- would a bot become the more natural interface for many activities?
The "websites -> apps -> bots" deal was actually lifted from a recent Ben Evans (a16z) presentation.
http://www.slideshare.net/a16z/mobile-is-eating-the-world-20...
Coupons are more personal for you than troubleshooting?
You might be trying to connect two things that I wasn't. A bot is impersonal no matter what task you're doing so the perceived value of a bot would have to be speed or maybe accuracy of certain details. Speed is something I would want during troubleshooting.
Just don't open source your bot and put it on NPM :-)
This is actually what I was thinking of when I read the emails with the prior kik (on npm) developer. An interface for people to write javascript chat bots or integrate it into websites. They'd, of course, want to be able to use their own product (and company) name when releasing this code.
We've been developing a bot with their platform for the last few weeks and it's a well designed API with features that can help sculpt a great bot experience e.g. allowing for controlling the amount of time the bot appears to be typing. Definitely worth a look if you're into bots (and as a team that recently developed an iOS app, boy is it great to be out of under the thumb of Apple's review process and developing on a platform where the UX is the copy).
Let's take an example of a general personal assistant chat bot experience and compare it to a brand chat bot experience. Remember in both cases we are typing our conversation not speaking it
General/PA chat bot Me: What movies are playing tonight?
BOT: HBO has XYZ from 8PM to 10PM, UVW from 10PM to midnight. Starz has ABC from 7:30PM to 10:00PM, DEF from 10PM to 12:30AM
Me: No I mean what movies are playing in theaters tonight?
BOT: AMC at Location 1 near you is playing blah blah blah, Century Cinemas at Location 2 near you is playing blah blah blah, (lists off 3 other theaters with movie times)
Me: I want 2 tickets to blah blah at AMC tonight
BOT: Ticket price at AMC.com is $22. Reply with AMC to buy them. Ticket price at Fandango.com is $23. Reply with FAN to buy them.
ME: AMC
BOT: Here are your tickets. http://amc.com/tickets/23BDK532KDJF93434
BRAND CHAT BOT EXPERIENCE ME: What movies are playing tonight?
AMC BOT: At an AMC near you, ABC is playing at 7:30pm, DEF is playing at 7:00PM, GHI is playing at 8:30PM, ABC iMax is playing at 9:00PM
(I switch to the Century Cinemas bot)
ME: What movies are playing tonight?
CENTURY BOT: At a Century near you, XYZ is playing at 8:00PM, ABC is playing at 8:30PM, GHI is playing at 8:30PM
(I switch to another theater's chat bot)
ME: What movies are playing tonight?
BOT: Movie 1 is playing at 9PM, Movie 2 at 9:30PM, Movie 3 at 9:30PM .....
So in the end a general chat bot will be more user friendly than going to each individual brand's chat bot. That basically means developer's not associated with a brand will be building aggregate bots for specific verticals because building a general BOT that addresses any query is impractical for any single developer. Then what happens when multiple developers all target the same vertical? The BOT marketplace becomes littered with duplicates and becomes like the Android marketplace. So basically BOTS = APPS but with a chat interface and some rudimentary NLP rather than a UI.
fair point, not withstanding what these bots can know/learn about you and your preferences.
More importantly though, the general bot would have to connect to all those APIs...however, if each theater has their own bot, than perhaps the general bot can query those bots without integrating with them. So, I guess the question becomes, are bots useful to other bots..if so, than everyone will need their own bot to be found by general bots.
to have a bot be available to other bots is the same as having an API and letting a general purpose bot connect to the API. The only advantage a BOT would then have over the API would be NLP and some personalization data and device sensor data. No matter how I look at it general purpose bots prevail but they require connecting to all those APIs like you mention. Personally I don't think BOTs in chat is the future of chat.
what do you think the future of chat is?
I am not an engineer, so I don't know enough about integrating with APIs, but I would think a bot could use natural language to talk to another bot without integrating or even know about the other bot prior to the user needing it. Essentially, the user is talking to one bot that is finding and passing along the message to the other bot and vice versa.
Bot A > finds bot b > adds bot b as friend > asks bot b for a list of a commands > forwards bot b commands to user or interprets the users natural language in a way that maps to bot b's common commands> returns any results or errors and shares whatever relevant data, acting as middle man between user and bot b.
To me this sound simpler to create than a bot that needs to map to every APIs functions, etc... Even with a middleware tool...It still needs to hook into it. However, if those APIs have conversational interfaces, than users can interact with everything magically.
Maybe my lack of tech knowledge has me imagining a utopia that isn't technically feasible...but to me this sounds like a solution that can replace 30% or more of my web and app interactions completely and simplify another 20%.
Bot A finds bot B via (marketplace search, keyword search, published functionality search or manual settings?) This is very difficult to do accurately especially when there are 100 other bots that provide same functionality as Bot B.
Let's assume user selected Bot B to be added as friend for Bot A.
Bot A asks Bot B for a list of commands > This is essentially making an API call or Bot A sending a chat message to Bot B "Please send me all your public commands" (which is a simplified NLP API call)
However Bot B might not want to expose all its NLP command keywords (that is after all their Intellectual property) or it is too complex to send all commands because of myriad of ways an NLP query can be structured.
I like your idea of a conversational API. Maybe there is a better way to do that and definitely something worth thinking about.
Regarding the future of chat, the problem is these chat apps are trying to become task help apps. What is the purpose of chat/group chat? Communication, discussion, planning, sharing between "friends/contacts" (not between me and a bot) Communication with a friend or contact does not require a bot. Discussion with a friend, group of friends or contacts does not require a bot Sharing content with a friend, group of friends or contacts does not require a bot.
The only thing that requires a bot is planning an outing, trip, dinner, etc. with a friend or group of friends or contacts. For that I think it is better to have a general purpose bot. Here's how I envision that use case with a bot called JEEVES.
ME: Hey have you guys watched Zootopia yet?
FRIEND 1: Nah I want to but didn't have the time. I'm free tonight if you want to go.
FRIEND 2: Yeah count me in too
ME: JEEVES find us a movie theater close to us that's playing Zootopia tonight.
JEEVES: There are 3 theaters close to all of you that's playing Zootopia tonight. Theater 1 at (map)Location 1 is playing it at 9PM, Theater 2 at (map)Location 2 is playing it at 8:30PM, Theater 3 at (map)Location 3 is playing it at 10:PM
ME: you guys wanna get dinner before the movie?
FRIEND 1: Sure
FRIEND 2: Nah having dinner with GF's parents today.
ME: JEEVES find us some chinese restaurants near Theater 3.
so on and so on.
JEEVES can then book tickets, make a reservation, put the event on calendars, send restaurant location to just the 2 people who agreed to have dinner, etc.
BTW: KiK (different capitalization, full name: KiK Textilien und Non-Food GmbH) is also a German fashion seller: http://www.kik.de/
I'm conflicted. I think I want kik.de to sue these guys for trademark =\
Poe's law at work.
If you're serious, you don't. They operate in different domains and it doesn't make sense for kid.de to sue kik the chat company.
Trademarks do make sense (most of the time), and the application that the chat company tried to apply it to with the NPM packages was proper. Reviewing the emails (posted by the offended programmer) they even came off as pretty generous. They wanted a name, a name they'd had for a while, for a project they were releasing to the NPM platform. As others said, part of the problem is NPMs naming scheme. It doesn't allow (by convention or implementation) for sensible naming like with libraries in other languages (com.kik.bot.authentication, com.kik.bot.blah).
If you're generally opposed to trademark then I suppose you would want them to sue just to make a mess of things and eventually cause countries to get rid of it. But that's exactly why trademark law covers this issue already. Apple (computers) and Apple (music) were in different domains, consequently no problem. Once Apple (computers) got into music (via iTunes), Apple (music) had a case against them. It's also a bit more nuanced, down to locality as well.
They're in very different product domains, so trademark doesn't apply.
See: http://nissan.com/
Is it the same Kik as in the leftpad npm incident?
http://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm
Pretty sure it is, yes.
Can I use the word "Kik" in my bots that connected to Kik?
The comments on the AVC blog are full of an unbelievable amount of ass kissing.
That being said, the content is solid and I read pretty much whatever Fred writes even though my focus is not on B2C.
Would like to note that kik is the company that threatened to go after an open source developer and get accounts terminated because he wrote a library with the same name. https://medium.com/@mproberts/a-discussion-about-the-breakin...
I have no idea why people use these programs over straight up SMS.
kik in particular? Or chat programs in general?
1: International SMS isn't free (US-centric viewpoint, what's the situation in other countries?).
2: No character limit. Which is bypassed with MMS. Which introduces its own limitations when sharing media (reduced resolution/quality of video and images, for example).
3: Potentially, depending on the particular client, not tied to your phone number in a way that others can access (that is, as a fellow user you don't know that my number is 555-555-5555). This can be gotten around by using something like Google Voice, which then loses the MMS feature (have they added that in yet?).
4+: Probably other reasons that I can't think of at the moment.
---------------------------------------
It just occurred to me that by "people" you meant the companies that kik is apparently courting with this. They'd want to use this because their users use kik. It's one more interface for customers to interact with them, on a moderately popular chat network.
Chat programs in general, and the people that use them.
I've never had a problem with SMS length as my phone splits messages into separate messages automatically.
SMS is free as hell in Canada and USA. I didn't realize the situation wasn't the same worldwide. Why is it not?
I believe it's free within most countries. What's not free is across most nation boundaries (particularly non-adjacent nations). It's mostly because you're dealing with the interaction of several different networks. Also, if a company has a lock on its customers, it'll charge them what it wants to charge them.
Other problems with SMS: Message order isn't guaranteed. Message delivery isn't guaranteed. You receive no notice what state a message is in (in transit, delivered, viewed). It's an unreliable medium tied directly to your phone (short using a service like Google Voice) and only to your phone (ok, less true these days, at least in the Apple ecosystem, where I can see and send SMS messages through my Mac if my phone is on the same wifi network). Still requires the presence of my phone in that last example.
These are pretty valid. I guess none of those things are important enough to me, except message delivery guarantee. The thing is, I've never had it fail. And if it did, I didn't notice, so no harm, no foul.
Kik also downscales images last time I checked. It is still better than MMS though.
I use Telegram over straight up SMS for many reasons. Group chats that aren't terrible, quick image/gif sharing, stickers (might be useless to you if you're not a furry, lol), bots in those group chats are incredibly useful, secret chats are awesome for my paranoid minded friends that need to talk about illegal stuff with me, and most importantly, I can use the Telegram client on every single one of my devices, so I always have access to my social circle if I have an internet connection.
These benefits may not be as great for someone who has a twitter or Facebook account, but as I don't, telegram is the easiest way for me to talk to all of my friends.
For one, because it costs money to send SMS messages through gateways like Twilio.