Reputation: 37
It's not very clear to me and perhaps other devs as well. I've read the Facebook Messenger docs maybe 5 times and I can't understand how bots detect when a user enters their chat window.
I started by looking for a postback, when users entered the bot experience. No Postbacks. I looked to see if it was Messenger Greeting, and that seems to only apply the first time a user arrives in your bot experience. This also seems a little different.
It's possible this functionality is not available to everyone. But Poncho has done this several times when I enter their experience and don't type anything.
Anyone seen this or have any ideas?
Upvotes: 0
Views: 679
Reputation: 2143
The postbacks are something completely different. The postbacks are received only when a user clicks on a button which contains a payload mentioned in the payload
element of your button template or structured message. Facebook chat bot API sends this payload back to let you know that the user has clicked on a particular button.
What you're looking for is called Welcome Screen
and you're right, the default behavior was not clearly listed in the documentation. But one of the Facebook engineers cleared the doubts for me and now they have edited the documentation. The welcome screen appears once and only once for a user on the messenger app i.e the first time when the user interacts with your chat bot even if the user deletes the conversation. From the docs:
The Welcome Screen only appears for new conversations. On mobile, deleting conversations will not cause the Welcome Screen to appear again. On desktop web, if you delete the conversation, you can make the Welcome Screen appear again.
Where as, the behavior is different for the regular Facebook chat in a web browser. A user can see the Welcome Screen in the regular chat if he/she deletes the conversation.
There's no way to detect that the user has just entered the bot experience. I've tested Poncho bot before and I don't get any message when I enter the bot experience after the first conversation.
There's a possibility that you're experiencing this because of Watermarks
. Watermarks are received on our webhook when a message is delivered and read by the user. May be they are handling watermarks in such a way that if the timestamp that comes with the watermark is few hours late than the current time, they send the message. You can read further about watermarks in the official documentation here and here.
Upvotes: 0