A chatbot is an app that runs within a messaging service like Facebook Messenger or Slack, and that interacts with the end-user by sending and receiving messages.

You can build a chatbot app using AppSheet in the same way that you build a mobile app. At the moment, AppSheet supports the deployment of chatbots to Facebook Messenger. Support for other messaging platforms will follow soon.

Every AppSheet app can run as a chatbot app. You can also explicitly require the app to run as a chatbot by enabling the Chatbot option in the Behavior > Chatbot pane of the app editor. You can experiment with it via the Preview page of the app (choose "Facebook Chatbot" when presented with the various app environments like Tablet Vertical, Tablet Horizontal, etc). 

Use Cases

If you run a business and your customers communicate with you, a chatbot app provides a convenient way to engage the customer, provide information and manage the interaction. For example, a small business might provide a Customer Service chatbot on its Facebook Messenger page.
In countries like China that are highly invested in mobile-first technologies, it is extremely common for apps to be embedded within messaging platforms (like WeChat), even more so than in web browsers or standalone mobile apps.

We have provided a few simple public sample apps to demonstrate how chatbots work:

  1. The Customer Service chatbot demonstrates how each app user can see their own service tickets, create new tickets, and manage existing tickets.
  2. The Tourism Info chatbot demonstrates a read-only information scenario
  3. The Property CheckIn/CheckOut chatbot demonstrates an inspection application that would traditionally be built with a form.
  4. The Service Agreement chatbot also demonstrates another inspection application that would traditionally be built with a form.

Execution Model

Unlike a mobile app, there is no need to explicitly deploy or install a chatbot app. The app is simply accessible as an end-point within the messaging system. For example, every Facebook page can register a chatbot app. Once it has done so, any user who uses Facebook Messenger to send a message to that page will be "running" the chatbot app.

Likewise, there is no explicit sign-in/authentication step in the app itself. Users are already authenticated with the messaging system, so they simply use the chatbot app with their existing identity.

The elimination of both the install process and the sign-in process removes a lot of friction and makes chatbot apps very attractive for B2C scenarios like customer service, transactional agreements, and product catalogs.

UX Differences

While almost all the data and behavior components of your app will behave the same, there are some UX differences between chatbot apps and regular mobile apps.

  1. Chatbot apps have a simpler user interface, governed by the limits of the messaging platform. Dashboards, charts and maps will not work. However, it may be possible to show static snapshots of specific app views within the chatbot app.
  2. There is no notion of a form view where the end-user can add data in a chatbot app. Data capture instead requires a series of back and forth messages.
  3. Instead of editing data via a form as you might do with a mobile app, a more natural mode in a chatbot app is a quick-edit (single column update) or data change action.

When you enable the chatbot setting for your app, the AppSheet editor will warn you about UX definitions that are incompatible with this class of apps.

Natural Language

Chatbot apps hold the promise of allowing users to communicate with the app using natural language, either typed or spoken. This requires some kind of machine learning system that translates natural language sentences into "intent" statements that the app can interpret as commands.

For example, instead of showing a specific set of menu buttons, a chatbot app could simple ask the user: "What can I do for you?" and depending on the reply, it could launch the appropriate response.

AppSheet apps do not currently provide this capability, although it is something that we hope to enable in the future. With the current functionality, chatbot apps are better suited for well-structured app behaviors, very similar to those of a traditional mobile app.

Bypassing the Chatbot App

If you have ever interacted with an automated phone service, you know there are times when you'd like to hit #0 to talk to the operator. There is a similar need in a chatbot app. There are times when the app user needs to talk with a human being.

We have provided a specific convention for this in AppSheet's chatbot apps. If the user enters #0, the conversation is switched into "human" mode.
The other special commands are #help (responds with basic help information) and #start (restarts the chatbot app).

Security Differences

Because users are pre-authenticated via the messaging platform, AppSheet chatbot apps do not have a separate signin process. However, unlike mobile app signin, some messaging platforms do not provide the user's email address. For example, Facebook Messenger provides a user id and the user's name, but does not provide a user email. If the app is to communicate with the user, it is expected to be via a Facebook message, not email.
Unfortunately, this does not align up perfectly with the AppSheet app model, where each user's email uniquely identifies them, and the USEREMAIL() function is used in expressions to identify a specific user. To work around this issue, AppSheet records a "fake" email address for each such user, of the form: {messaging-user-id}@{messaging-platform}.com. For example, user 22 from Facebook Messenger would have the email [email protected]. This allows the app creator to continue to use the same familiar security mechanisms (eg: user whitelists).

Deployment and Management Differences

Instead of deploying a chatbot app to your customers in the sense of a non-chatbot app, you instead register your app with the messaging service (eg: Facebook Messenger). AppSheet provides specific instructions to handle this registration with each messaging service supported. The typical steps are:

  1. Register some information with the messaging service (eg: Facebook Messenger) which will provide a key or token.
  2. Record that key or token in AppSheet via the Manage > Deploy pane of the app editor.

For more information, you can check out this video demo on chatbot apps.

Did this answer your question?