Hacker News new | past | comments | ask | show | jobs | submit login
Things I learned creating my own Messenger chatbot (kilianvalkhof.com)
195 points by kilian on Jan 19, 2017 | hide | past | favorite | 18 comments

In general, people interested in bots should not put too much emphasis on the chat part of chatbots. Most of the value will come from the frictionless, social experience. Nothing to download, no app switching, and your friend are already there.

Media is hyping the AI part because it is catchy, but using mostly/only quick replies and buttons gives a much better UX IMHO. So, fully agree with #4.

There are only a handful of cases where text actually reduces friction instead of increasing it. Entering a date, for example : "in 1h", "tomorrow morning" or "next friday" is really faster than other input types.

For most other cases, Messenger bots just got access to webviews. Really under-utilized so far, I think.

I agree, the chat aspect is probably the less valuable of a chatbot. It's much more efficient using quick replies and buttons

A hint for #1: don't assume a "like" is a like.

The default emoji in a conversation can be changed by either side, on demand. So don't be surprised if suddenly you start getting a scared cat, or a tomato, instead of a 369239263222822. Why would people change the default emoji when talking to a bot? Why not?

Hint #2: default emojis can be sent in several sizes, depending on how long the user holds the "send emoji" button. From what I can tell, 369239263222822 is a small like. There are at least two other sizes. This is not some obscure feature, people use it all the time, so be prepared.


In general, it's worth to pay attention to details of the platform one's developing for ;).

How many discrete sizes can the thumb be, exactly? I tried doing a bit of research to no avail.


I always change it

I particularly liked this point: "Add a natural delay between messages to keep your chatbot from feeling mechanical" . While I know in the back of my mind that I am not chatting to a real human being, I would feel surprised and less engaged if I received instantaneous answers from the bot.

Having a delay therefore sounds like the right thing to do: you can also trigger the (...) in Messenger as your bot is preparing the answer.

I see chatbots being used from gaming to financial advising, not I am pessimistic on the AI side of it or the bot being able to chat to you as if it were a real human being. My gut feeling is that chatbots will become extremely specialised and may excel in a given domain.

I liked that point too, but when I went to use the text adventure bot, I found the delay immediately frustrating. It feels like I spend more time waiting for messages than reading or making decisions.

This is a cool concept though!

I too worked on a Messenger-based text game, and found that when you're sending sequential messages, the trick (though unnatural) is to add delays not based on the current message being "typed" by the code, but based on the previous message.

For example, if your previous message contains 100 words, and the current message to be sent contains only 10 words, you still want a long delay -- you're catering it to the user reading the long message. Similarly, if your previous message was short and the next one is long, the delay doesn't have to be long because otherwise you're just making the user wait for no reason.

That's super smart! Making the delay dependant on the reading speed instead of on the writing speed makes much more sense. Definitely adding this into my own bot.

Oh wow, this is interesting timing. I'm actually writing a fantasy game for Slack using their bot interface, and a lot of the lessons described here are things I picked up as well while showing to friends.

Slack offered buttons shortly after I started work, so I switched from trying to interpret text to offering clear buttons instead, and yeah it makes a huge difference. I know I was into MUDs a whole lot in my youth, but folks today expect a more intuitive interface.

It's nice to see I'm not the only one interested in bringing a little levity to the world of chat bots!

I don't get the draw. None of the chat bots I've used seem that much more useful than an AIM or IRC bot of yesteryear. I'd rather click a button for an action than have to type something out. Seems like a gimmick to me.

Thus, point #4 in the article. Did you read it?

This is awesome!

One improvement: it's standard practice in text adventures to have a uniform set of commands and shortcuts. For example, 'i' is a common shortcut for 'inventory' but your bot doesn't know what I mean. Similarly, 'x' is short for 'eXamine', and 'n', 'w', 's', 'e' are the compass directions.

A lot of the same points apply with Telegram bots, though I suspect the Telegram user ecosystem is a lot less ... refined ... than the average FB Messenger ecosystem.

You'd be surprised. Telegram and Kik are pioneers in the Bot API ecosystem, and some of their features are quite advanced. True, the Messenger features set is catching up, and it seems that they go deliberately slow to see what works and exchange a lot with developers, which is good

>1. People send a like/sticker as a conversation starter

I do that! When you open a conversation with a bot sometimes you don't know what the bot expects you to do to start a conversation, so instead of writing gibberish and expect a help text, I tap "like" because it's only one tap.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact