Chatbot Concepts

Chatbots, or “bots” for short, are computer programs that interact with people
in a way that mimics human interaction to some degree. The interaction can
vary in complexity from simple keyword-driven queries to elaborate
conversational systems using natural language processing and AI techniques.
This conversational form of human-computer interaction can act as a
framework for many types of useful applications.

Early chatbots included academic curiosities like Eliza (1964) and Julia
(1994), but now bots are at work all over the internet in customer support, as
virtual assistants like Google Assistant, and in many other roles.

Bots in Hangouts Chat

Bots in Hangouts Chat appear as special users marked BOT. Just like people,
bots can participate in chat rooms, and they can respond to direct messages.
But unlike people, bots only see messages directed to them when a person
@mentions them in a chat room, or when a person sends them a direct message.

Bot access to user data

In order to operate in a useful way, a bot needs to know who is invoking
it, and how to address that person. Beyond this basic identity data, bots do not
have access to user data unless granted explicitly by the user:

By default, bots can only read the basic identity of users that invoke them.
This information includes the user's display name, user ID,
email address, and avatar image.

If a bot needs to access other data to do its job, it can prompt the user
to grant it additional access.

Independence from users

Bots aren't associated with any particular user: anyone can add a bot to a room
or remove it. Once the bot is added to a room, anyone can @mention it.

Some use cases for bots

Adding bots to a conversational platform like Hangouts Chat lets people ask
questions, issue commands, and so on without changing context. On its back end,
a bot can access other systems, acting as an intermediary to those systems.

This ability to
provide access to a wide range of resources and tools, while maintaining a unified
cognitive experience, can provide an excellent framework for many types of
applications, including:

workflow management

setup and configuration

order generation

search

data collection

Specific examples

Some low-level examples of the type of things you might a bot to do from
within the chat room include:

Look up information — A chatbot can retrieve information based on structured or free text queries entered by the user.

File ticket — A chatbot can generate a new incident report or other artifact, using information provided by the user.

Coordinate effort — A chatbot can enhance the way that team members interact with each other, by providing “team memory”, scheduling resources, and so on.

Integrating with G Suite

If you're considering building a Hangouts Chat bot that will integrate with
G Suite, consider implementing the bot in Apps Script.
This provides your bot with easy access to G Suite services and data such
as Sheets, Slides, Docs, and Calendar.

Hangouts Chat API

The Hangouts Chat API provides a number of ways that you can integrate your
bots into chat rooms and DMs, but does not provide or dictate any particular
way to implement the bot logic. You can create a simple command-driven bot or
use any kind of language processing and AI services or modules that you like,
and you can do this on a variety of platforms, including:

Standard features

When you configure a bot in Hangouts Chat, it must provide an identity; this
consists of:

The bot name

An avatar image for the bot

Identity of the bot developer

Bots should also provide a help command or the equivalent to help users get
started using the bot.

Bot communication with Hangouts Chat

Bots can receive messages from, and send messages to, Hangouts Chat. These
messages use defined message formats,
which may render as simple text messages or interactive cards in Hangouts Chat.

Bots in direct messages (DM)

You can configure a bot so that it responds to direct messages. This provides
a one-to-one conversational interface that involves a single user.

Bots in chat rooms

You can add a bot to a chat room, so that it can respond to specific content
that appears in the room. For example, you can specify that any message that
begins with "@foobot" is passed to some foobot app and the response appears
in the chat room. The following sequence diagram summarizes the bot behavior:

Hangouts Chat communicates with your bot via an endpoint, which may be one of
the following types:

HTTP (web service) endpoints can accommodate various styles of interaction.

Cloud Pub/Sub endpoints let your bot subscribe to a topic that relays messages
from Hangouts Chat, even if the implementation is behind a firewall.

See the Endpoint types
section for more about the different ways you can connect Hangouts Chat with
your bot.