Message

Corresponds to the Response field in the Dialogflow console.

JSON representation
{
  "platform": enum (Platform),

  // Union field message can be only one of the following:
  "text": {
    object (Text)
  },
  "image": {
    object (Image)
  },
  "quickReplies": {
    object (QuickReplies)
  },
  "card": {
    object (Card)
  },
  "payload": {
    object
  },
  "simpleResponses": {
    object (SimpleResponses)
  },
  "basicCard": {
    object (BasicCard)
  },
  "suggestions": {
    object (Suggestions)
  },
  "linkOutSuggestion": {
    object (LinkOutSuggestion)
  },
  "listSelect": {
    object (ListSelect)
  },
  "carouselSelect": {
    object (CarouselSelect)
  },
  "telephonyPlayAudio": {
    object (TelephonyPlayAudio)
  },
  "telephonySynthesizeSpeech": {
    object (TelephonySynthesizeSpeech)
  },
  "telephonyTransferCall": {
    object (TelephonyTransferCall)
  },
  "rbmText": {
    object (RbmText)
  },
  "rbmStandaloneRichCard": {
    object (RbmStandaloneCard)
  },
  "rbmCarouselRichCard": {
    object (RbmCarouselCard)
  },
  "browseCarouselCard": {
    object (BrowseCarouselCard)
  },
  "tableCard": {
    object (TableCard)
  },
  "mediaContent": {
    object (MediaContent)
  }
  // End of list of possible types for union field message.
}
Fields
platform

enum (Platform)

Optional. The platform that this message is intended for.

Union field message. Required. The rich response message. message can be only one of the following:
text

object (Text)

Returns a text response.

image

object (Image)

Displays an image.

quickReplies

object (QuickReplies)

Displays quick replies.

card

object (Card)

Displays a card.

payload

object (Struct format)

A custom platform-specific response.

simpleResponses

object (SimpleResponses)

Returns a voice or text-only response for Actions on Google.

basicCard

object (BasicCard)

Displays a basic card for Actions on Google.

suggestions

object (Suggestions)

Displays suggestion chips for Actions on Google.

listSelect

object (ListSelect)

Displays a list card for Actions on Google.

carouselSelect

object (CarouselSelect)

Displays a carousel card for Actions on Google.

telephonyPlayAudio

object (TelephonyPlayAudio)

Plays audio from a file in Telephony Gateway.

telephonySynthesizeSpeech

object (TelephonySynthesizeSpeech)

Synthesizes speech in Telephony Gateway.

telephonyTransferCall

object (TelephonyTransferCall)

Transfers the call in Telephony Gateway.

rbmText

object (RbmText)

Rich Business Messaging (RBM) text response.

RBM allows businesses to send enriched and branded versions of SMS. See https://jibe.google.com/business-messaging.

rbmStandaloneRichCard

object (RbmStandaloneCard)

Standalone Rich Business Messaging (RBM) rich card response.

tableCard

object (TableCard)

Table card for Actions on Google.

mediaContent

object (MediaContent)

The media content card for Actions on Google.

Text

The text response message.

JSON representation
{
  "text": [
    string
  ]
}
Fields
text[]

string

Optional. The collection of the agent's responses.

Image

The image response message.

JSON representation
{
  "imageUri": string,
  "accessibilityText": string
}
Fields
imageUri

string

Optional. The public URI to an image file.

accessibilityText

string

A text description of the image to be used for accessibility, e.g., screen readers. Required if imageUri is set for CarouselSelect.

QuickReplies

The quick replies response message.

JSON representation
{
  "title": string,
  "quickReplies": [
    string
  ]
}
Fields
title

string

Optional. The title of the collection of quick replies.

quickReplies[]

string

Optional. The collection of quick replies.

Card

The card response message.

JSON representation
{
  "title": string,
  "subtitle": string,
  "imageUri": string,
  "buttons": [
    {
      object (Button)
    }
  ]
}
Fields
title

string

Optional. The title of the card.

subtitle

string

Optional. The subtitle of the card.

imageUri

string

Optional. The public URI to an image file for the card.

buttons[]

object (Button)

Optional. The collection of card buttons.

Button

Optional. Contains information about a button.

JSON representation
{
  "text": string,
  "postback": string
}
Fields
text

string

Optional. The text to show on the button.

postback

string

Optional. The text to send back to the Dialogflow API or a URI to open.

SimpleResponses

The collection of simple response candidates. This message in QueryResult.fulfillment_messages and WebhookResponse.fulfillment_messages should contain only one SimpleResponse.

JSON representation
{
  "simpleResponses": [
    {
      object (SimpleResponse)
    }
  ]
}
Fields
simpleResponses[]

object (SimpleResponse)

Required. The list of simple responses.

SimpleResponse

The simple response message containing speech or text.

JSON representation
{
  "textToSpeech": string,
  "ssml": string,
  "displayText": string
}
Fields
textToSpeech

string

One of textToSpeech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.

ssml

string

One of textToSpeech or ssml must be provided. Structured spoken response to the user in the SSML format. Mutually exclusive with textToSpeech.

displayText

string

Optional. The text to display.

BasicCard

The basic card message. Useful for displaying information.

JSON representation
{
  "title": string,
  "subtitle": string,
  "formattedText": string,
  "image": {
    object (Image)
  },
  "buttons": [
    {
      object (Button)
    }
  ]
}
Fields
title

string

Optional. The title of the card.

subtitle

string

Optional. The subtitle of the card.

formattedText

string

Required, unless image is present. The body text of the card.

image

object (Image)

Optional. The image for the card.

buttons[]

object (Button)

Optional. The collection of card buttons.

Button

The button object that appears at the bottom of a card.

JSON representation
{
  "title": string,
  "openUriAction": {
    object (OpenUriAction)
  }
}
Fields
title

string

Required. The title of the button.

openUriAction

object (OpenUriAction)

Required. Action to take when a user taps on the button.

OpenUriAction

Opens the given URI.

JSON representation
{
  "uri": string
}
Fields
uri

string

Required. The HTTP or HTTPS scheme URI.

Suggestions

The collection of suggestions.

JSON representation
{
  "suggestions": [
    {
      object (Suggestion)
    }
  ]
}
Fields
suggestions[]

object (Suggestion)

Required. The list of suggested replies.

Suggestion

The suggestion chip message that the user can tap to quickly post a reply to the conversation.

JSON representation
{
  "title": string
}
Fields
title

string

Required. The text shown the in the suggestion chip.

LinkOutSuggestion

The suggestion chip message that allows the user to jump out to the app or website associated with this agent.

JSON representation
{
  "destinationName": string,
  "uri": string
}
Fields
destinationName

string

Required. The name of the app or site this chip is linking to.

uri

string

Required. The URI of the app or site to open when the user taps the suggestion chip.

ListSelect

The card for presenting a list of options to select from.

JSON representation
{
  "title": string,
  "items": [
    {
      object (Item)
    }
  ],
  "subtitle": string
}
Fields
title

string

Optional. The overall title of the list.

items[]

object (Item)

Required. List items.

subtitle

string

Optional. Subtitle of the list.

Item

An item in the list.

JSON representation
{
  "info": {
    object (SelectItemInfo)
  },
  "title": string,
  "description": string,
  "image": {
    object (Image)
  }
}
Fields
info

object (SelectItemInfo)

Required. Additional information about this option.

title

string

Required. The title of the list item.

description

string

Optional. The main text describing the item.

image

object (Image)

Optional. The image to display.

SelectItemInfo

Additional info about the select item for when it is triggered in a dialog.

JSON representation
{
  "key": string,
  "synonyms": [
    string
  ]
}
Fields
key

string

Required. A unique key that will be sent back to the agent if this response is given.

synonyms[]

string

Optional. A list of synonyms that can also be used to trigger this item in dialog.

CarouselSelect

The card for presenting a carousel of options to select from.

JSON representation
{
  "items": [
    {
      object (Item)
    }
  ]
}
Fields
items[]

object (Item)

Required. Carousel items.

Item

An item in the carousel.

JSON representation
{
  "info": {
    object (SelectItemInfo)
  },
  "title": string,
  "description": string,
  "image": {
    object (Image)
  }
}
Fields
info

object (SelectItemInfo)

Required. Additional info about the option item.

title

string

Required. Title of the carousel item.

description

string

Optional. The body text of the card.

image

object (Image)

Optional. The image to display.

TelephonyPlayAudio

Plays audio from a file in Telephony Gateway.

JSON representation
{
  "audioUri": string
}
Fields
audioUri

string

Required. URI to a Google Cloud Storage object containing the audio to play, e.g., "gs://bucket/object". The object must contain a single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz.

This object must be readable by the service-<Project Number>@gcp-sa-dialogflow.iam.gserviceaccount.com service account where is the number of the Telephony Gateway project (usually the same as the Dialogflow agent project). If the Google Cloud Storage bucket is in the Telephony Gateway project, this permission is added by default when enabling the Dialogflow V2 API.

For audio from other sources, consider using the TelephonySynthesizeSpeech message with SSML.

TelephonySynthesizeSpeech

Synthesizes speech and plays back the synthesized audio to the caller in Telephony Gateway.

Telephony Gateway takes the synthesizer settings from DetectIntentResponse.output_audio_config which can either be set at request-level or can come from the agent-level synthesizer config.

JSON representation
{

  // Union field source can be only one of the following:
  "text": string,
  "ssml": string
  // End of list of possible types for union field source.
}
Fields
Union field source. Required. The source to be synthesized. source can be only one of the following:
text

string

The raw text to be synthesized.

ssml

string

The SSML to be synthesized. For more information, see SSML.

TelephonyTransferCall

Transfers the call in Telephony Gateway.

JSON representation
{
  "phoneNumber": string
}
Fields
phoneNumber

string

Required. The phone number to transfer the call to in E.164 format.

We currently only allow transferring to US numbers (+1xxxyyyzzzz).

RbmText

Rich Business Messaging (RBM) text response with suggestions.

JSON representation
{
  "text": string,
  "rbmSuggestion": [
    {
      object (RbmSuggestion)
    }
  ]
}
Fields
text

string

Required. Text sent and displayed to the user.

rbmSuggestion[]

object (RbmSuggestion)

Optional. One or more suggestions to show to the user.

RbmSuggestion

Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).

JSON representation
{

  // Union field suggestion can be only one of the following:
  "reply": {
    object (RbmSuggestedReply)
  },
  "action": {
    object (RbmSuggestedAction)
  }
  // End of list of possible types for union field suggestion.
}
Fields
Union field suggestion. Predefined suggested response or action for user to choose suggestion can be only one of the following:
reply

object (RbmSuggestedReply)

Predefined replies for user to select instead of typing

action

object (RbmSuggestedAction)

Predefined client side actions that user can choose

RbmSuggestedReply

Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response.

JSON representation
{
  "text": string,
  "postbackData": string
}
Fields
text

string

Suggested reply text.

postbackData

string

Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.

RbmSuggestedAction

Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card.

JSON representation
{
  "text": string,
  "postbackData": string,

  // Union field action can be only one of the following:
  "dial": {
    object (RbmSuggestedActionDial)
  },
  "openUrl": {
    object (RbmSuggestedActionOpenUri)
  },
  "shareLocation": {
    object (RbmSuggestedActionShareLocation)
  }
  // End of list of possible types for union field action.
}
Fields
text

string

Text to display alongside the action.

postbackData

string

Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.

Union field action. Action that needs to be triggered. action can be only one of the following:
dial

object (RbmSuggestedActionDial)

Suggested client side action: Dial a phone number

openUrl

object (RbmSuggestedActionOpenUri)

Suggested client side action: Open a URI on device

shareLocation

object (RbmSuggestedActionShareLocation)

Suggested client side action: Share user location

RbmSuggestedActionDial

Opens the user's default dialer app with the specified phone number but does not dial automatically.

JSON representation
{
  "phoneNumber": string
}
Fields
phoneNumber

string

Required. The phone number to fill in the default dialer app. This field should be in E.164 format. An example of a correctly formatted phone number: +15556767888.

RbmSuggestedActionOpenUri

Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI.

JSON representation
{
  "uri": string
}
Fields
uri

string

Required. The uri to open on the user device

RbmSuggestedActionShareLocation

This type has no fields.

Opens the device's location chooser so the user can pick a location to send back to the agent.

RbmStandaloneCard

Standalone Rich Business Messaging (RBM) rich card.

Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions.

You can group multiple rich cards into one using RbmCarouselCard but carousel cards will give you less control over the card layout.

JSON representation
{
  "cardOrientation": enum (CardOrientation),
  "thumbnailImageAlignment": enum (ThumbnailImageAlignment),
  "cardContent": {
    object (RbmCardContent)
  }
}
Fields
cardOrientation

enum (CardOrientation)

Required. Orientation of the card.

thumbnailImageAlignment

enum (ThumbnailImageAlignment)

Required if orientation is horizontal. Image preview alignment for standalone cards with horizontal layout.

cardContent

object (RbmCardContent)

Required. Card content.

CardOrientation

Orientation of the card.

Enums
CARD_ORIENTATION_UNSPECIFIED Not specified.
HORIZONTAL Horizontal layout.
VERTICAL Vertical layout.

ThumbnailImageAlignment

Thumbnail preview alignment for standalone cards with horizontal layout.

Enums
THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED Not specified.
LEFT Thumbnail preview is left-aligned.
RIGHT Thumbnail preview is right-aligned.

RbmCardContent

Rich Business Messaging (RBM) Card content

JSON representation
{
  "title": string,
  "description": string,
  "media": {
    object (RbmMedia)
  },
  "suggestions": [
    {
      object (RbmSuggestion)
    }
  ]
}
Fields
title

string

Optional. Title of the card (at most 200 bytes).

At least one of the title, description or media must be set.

description

string

Optional. Description of the card (at most 2000 bytes).

At least one of the title, description or media must be set.

media

object (RbmMedia)

Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.

suggestions[]

object (RbmSuggestion)

Optional. List of suggestions to include in the card.

RbmMedia

Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported:

Image Types

  • image/jpeg
  • image/jpg'
  • image/gif
  • image/png

Video Types

  • video/h263
  • video/m4v
  • video/mp4
  • video/mpeg
  • video/mpeg4
  • video/webm
JSON representation
{
  "fileUri": string,
  "thumbnailUri": string,
  "height": enum (Height)
}
Fields
fileUri

string

Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.

thumbnailUri

string

Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.

height

enum (Height)

Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.

Height

Media height

Enums
HEIGHT_UNSPECIFIED Not specified.
SHORT 112 DP.
MEDIUM 168 DP.
TALL 264 DP. Not available for rich card carousels when the card width is set to small.

RbmCarouselCard

Carousel Rich Business Messaging (RBM) rich card.

Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions.

If you want to show a single card with more control over the layout, please use RbmStandaloneCard instead.

JSON representation
{
  "cardWidth": enum (CardWidth),
  "cardContents": [
    {
      object (RbmCardContent)
    }
  ]
}
Fields
cardWidth

enum (CardWidth)

Required. The width of the cards in the carousel.

cardContents[]

object (RbmCardContent)

Required. The cards in the carousel. A carousel must have at least 2 cards and at most 10.

CardWidth

The width of the cards in the carousel.

Enums
CARD_WIDTH_UNSPECIFIED Not specified.
SMALL 120 DP. Note that tall media cannot be used.
MEDIUM 232 DP.

BrowseCarouselCard

Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel

JSON representation
{
  "items": [
    {
      object (BrowseCarouselCardItem)
    }
  ],
  "imageDisplayOptions": enum (ImageDisplayOptions)
}
Fields
items[]

object (BrowseCarouselCardItem)

Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.

imageDisplayOptions

enum (ImageDisplayOptions)

Optional. Settings for displaying the image. Applies to every image in items.

BrowseCarouselCardItem

Browsing carousel tile

JSON representation
{
  "openUriAction": {
    object (OpenUrlAction)
  },
  "title": string,
  "description": string,
  "image": {
    object (Image)
  },
  "footer": string
}
Fields
openUriAction

object (OpenUrlAction)

Required. Action to present to the user.

title

string

Required. Title of the carousel item. Maximum of two lines of text.

description

string

Optional. Description of the carousel item. Maximum of four lines of text.

image

object (Image)

Optional. Hero image for the carousel item.

footer

string

Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.

OpenUrlAction

Actions on Google action to open a given url.

JSON representation
{
  "url": string,
  "urlTypeHint": enum (UrlTypeHint)
}
Fields
url

string

Required. URL

urlTypeHint

enum (UrlTypeHint)

Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.

UrlTypeHint

Type of the URI.

Enums
URL_TYPE_HINT_UNSPECIFIED Unspecified
AMP_ACTION Url would be an amp action
AMP_CONTENT URL that points directly to AMP content, or to a canonical URL which refers to AMP content via .

ImageDisplayOptions

Image display options for Actions on Google. This should be used for when the image's aspect ratio does not match the image container's aspect ratio.

Enums
IMAGE_DISPLAY_OPTIONS_UNSPECIFIED Fill the gaps between the image and the image container with gray bars.
GRAY Fill the gaps between the image and the image container with gray bars.
WHITE Fill the gaps between the image and the image container with white bars.
CROPPED Image is scaled such that the image width and height match or exceed the container dimensions. This may crop the top and bottom of the image if the scaled image height is greater than the container height, or crop the left and right of the image if the scaled image width is greater than the container width. This is similar to "Zoom Mode" on a widescreen TV when playing a 4:3 video.
BLURRED_BACKGROUND Pad the gaps between image and image frame with a blurred copy of the same image.

TableCard

Table card for Actions on Google.

JSON representation
{
  "title": string,
  "subtitle": string,
  "image": {
    object (Image)
  },
  "columnProperties": [
    {
      object (ColumnProperties)
    }
  ],
  "rows": [
    {
      object (TableCardRow)
    }
  ],
  "buttons": [
    {
      object (Button)
    }
  ]
}
Fields
title

string

Required. Title of the card.

subtitle

string

Optional. Subtitle to the title.

image

object (Image)

Optional. Image which should be displayed on the card.

columnProperties[]

object (ColumnProperties)

Optional. Display properties for the columns in this table.

rows[]

object (TableCardRow)

Optional. Rows in this table of data.

buttons[]

object (Button)

Optional. List of buttons for the card.

ColumnProperties

Column properties for TableCard.

JSON representation
{
  "header": string,
  "horizontalAlignment": enum (HorizontalAlignment)
}
Fields
header

string

Required. Column heading.

horizontalAlignment

enum (HorizontalAlignment)

Optional. Defines text alignment for all cells in this column.

HorizontalAlignment

Text alignments within a cell.

Enums
HORIZONTAL_ALIGNMENT_UNSPECIFIED Text is aligned to the leading edge of the column.
LEADING Text is aligned to the leading edge of the column.
CENTER Text is centered in the column.
TRAILING Text is aligned to the trailing edge of the column.

TableCardRow

Row of TableCard.

JSON representation
{
  "cells": [
    {
      object (TableCardCell)
    }
  ],
  "dividerAfter": boolean
}
Fields
cells[]

object (TableCardCell)

Optional. List of cells that make up this row.

dividerAfter

boolean

Optional. Whether to add a visual divider after this row.

TableCardCell

Cell of TableCardRow.

JSON representation
{
  "text": string
}
Fields
text

string

Required. Text in this cell.

MediaContent

The media content card for Actions on Google.

JSON representation
{
  "mediaType": enum (ResponseMediaType),
  "mediaObjects": [
    {
      object (ResponseMediaObject)
    }
  ]
}
Fields
mediaType

enum (ResponseMediaType)

Optional. What type of media is the content (ie "audio").

mediaObjects[]

object (ResponseMediaObject)

Required. List of media objects.

ResponseMediaType

Format of response media type.

Enums
RESPONSE_MEDIA_TYPE_UNSPECIFIED Unspecified.
AUDIO Response media type is audio.

ResponseMediaObject

Response media object for media content card.

JSON representation
{
  "name": string,
  "description": string,
  "contentUrl": string,

  // Union field image can be only one of the following:
  "largeImage": {
    object (Image)
  },
  "icon": {
    object (Image)
  }
  // End of list of possible types for union field image.
}
Fields
name

string

Required. Name of media card.

description

string

Optional. Description of media card.

contentUrl

string

Required. Url where the media is stored.

Union field image. Image to show with the media card. image can be only one of the following:
largeImage

object (Image)

Optional. Image to display above media content.

icon

object (Image)

Optional. Icon to display above media content.