
Things I learned creating my own Messenger chatbot - kilian
https://kilianvalkhof.com/2017/chatbots/6-things-i-learned-creating-my-own-messenger-chatbot/
======
donmatito
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.

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

------
TeMPOraL
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 ;).

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

~~~
grrowl
Three.

------
edshiro
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.

~~~
RoboTeddy
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!

~~~
godot
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.

~~~
kilian
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.

------
DanHulton
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!

------
donatj
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.

~~~
RoboTeddy
You can just press buttons! [https://rt-
ss.s3.amazonaws.com/e43ae185f39b3e.png](https://rt-
ss.s3.amazonaws.com/e43ae185f39b3e.png)

------
gcr
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.

------
Karrot_Kream
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.

~~~
donmatito
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

------
akjainaj
>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.

