Send a text message

Stay organized with collections Save and categorize content based on your preferences.

This page describes how to create messages that appear inline as if typed by a user. Use text messages to present simple information to users. For information about how you can construct more complex messages that generate cards in the chat, see Send a card message.


To run the examples in this guide, you need the following prerequisites:


Anatomy of a text message

Any message in Google Chat is represented as a JSON object. The following example is a basic message that specifies a simple plaintext body:

  "text": "Your pizza delivery is here!"

If posted into Google Chat, this example renders like the following:

Send an asynchronous text message

Here's how to create a text message:


  1. In your working directory, create a file named
  2. Include the following code in

    from httplib2 import Http
    from oauth2client.service_account import ServiceAccountCredentials
    from apiclient.discovery import build
    # Specify required scopes.
    SCOPES = ['']
    # Specify service account details.
    CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name(
        'service_account.json', SCOPES)
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http()))
    # Create a Chat message.
    result = chat.spaces().messages().create(
        # The space to create the message in.
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        # The message to create.
        body={'text': 'Hello, world!'}
  3. In the code, replace SPACE with a space name, which you can obtain from the spaces.list() method in Chat API, or from a space's URL.

  4. In your working directory, build and run the sample:


Format texts in messages

Google Chat lets you add basic formatting to the message text, including bold, italic, and strikethrough. To format text, wrap it with the following symbols:

Format Symbol Example Result
Bold * *hello* hello
Italic _ (underscore) _hello_ hello
Strikethrough ~ ~hello~ hello
Monospace ` (backquote) `hello` hello
Monospace block ``` (three backquotes) ```

For example, consider the following JSON:

  "text": "Your pizza delivery *has arrived*!\nThank you for using _Pizza Bot!_"

This places a message like this into the Chat space:

This text markup syntax is the same syntax that applies to messages typed by users, which is why it is distinct from the HTML-based formatting applied to text inside cards.

If you include a plain link URL in your message text, such as, Google Chat uses this as the link text and automatically hyperlinks that text to the specified URL.

To provide alternate link text for your link, use the following syntax:

Syntax Rendering

The pipe and link text are optional, so that <> and are equivalent.

Messages that @mention specific users

A Chat app can @mention a user in a message by providing their USER_ID in the following syntax. To determine the USER_ID for a user, examine the sender field of the incoming message from the user.


This string is substituted with an @mention of the specified user. For example, consider the following JSON:

    "text": "Hey <users/123456789012345678901>! Thank you for using _Pizza bot!_"

This produces a result like the following:

Messages that @mention all users

You can use the user ID all to @mention all the human users in a space. For example:

    "text": "Important message for <users/all>: Code freeze starts at midnight tonight!"