> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rootly.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Chat workflow actions

> Automate Google Chat space creation, Cards v2 messages, member invites, renames, archiving, and emoji reactions from Rootly incident workflow actions.

<Info>
  **Closed Beta** — The Google Chat integration is currently in closed beta. Contact [support@rootly.com](mailto:support@rootly.com) to request access.
</Info>

Workflows let you automate Google Chat actions during incidents: create spaces, send messages, post Cards v2, invite responders, manage spaces, and more. If you're unfamiliar with how Workflows work, see the [Workflows](/workflows/workflows) documentation first.

## Automation Options

<CardGroup cols={2}>
  <Card title="Smart Defaults" icon="bolt">
    Auto-create Google Chat spaces at incident start using built-in settings
  </Card>

  <Card title="Custom Workflows" icon="diagram-project">
    Build workflows with triggers, conditions, and multiple Google Chat actions
  </Card>
</CardGroup>

***

## Available Actions

| Action                                   | What It Does                                                                         |
| ---------------------------------------- | ------------------------------------------------------------------------------------ |
| **Create Google Chat Space**             | Creates a dedicated space for the incident, adds the bot, and posts an overview card |
| **Send Google Chat Message**             | Sends a text message to one or more spaces (with optional threading)                 |
| **Send Google Chat Attachments**         | Sends Cards v2 to spaces (requires service account)                                  |
| **Invite to Google Chat Space**          | Invites users to an incident space by email                                          |
| **Rename Google Chat Space**             | Changes the display name of a space                                                  |
| **Update Google Chat Space Description** | Updates the description of a space                                                   |
| **Change Google Chat Space Privacy**     | Switches a space between private and discoverable                                    |
| **Archive Google Chat Spaces**           | Deletes incident spaces when they're no longer needed                                |

***

## Create a Workflow

<Steps>
  <Step title="Open Workflows">
    Go to **Rootly > Workflows > Create Workflow**.
  </Step>

  <Step title="Choose workflow type">
    Select the workflow type that matches your use case (e.g., Incident, Retrospective, or Pulse).
  </Step>

  <Step title="Configure triggers">
    Triggers define when this workflow runs.

    | Trigger                         | When It Fires                             |
    | ------------------------------- | ----------------------------------------- |
    | **Incident Created**            | New incident opens                        |
    | **Incident Updated**            | Severity, status, or fields change        |
    | **Incident Status Changed**     | Incident moves to a specific status       |
    | **Incident Commander Assigned** | Someone takes ownership                   |
    | **Incident Resolved**           | Incident is resolved                      |
    | **Google Chat Space Created**   | The incident's Google Chat space is ready |
    | **Manual Trigger**              | Run on demand from the UI                 |
  </Step>

  <Step title="Add conditions (optional)">
    Conditions filter when the workflow should run after it's been triggered — keeping notifications focused on the incidents that matter.

    Examples:

    * Only for SEV-1 or SEV-2 incidents
    * Only for specific teams or services
    * Only for production environments
  </Step>

  <Step title="Add a Google Chat action">
    Click **Add Action** and search for **Google Chat** to see all available actions.
  </Step>
</Steps>

***

## Actions

<AccordionGroup>
  <Accordion title="Create Google Chat Space" icon="hashtag">
    Creates a dedicated Google Chat space for the incident. The bot is automatically added to the space and posts an incident overview card showing title, status, severity, start time, summary, and a "See in Rootly" button.

    This is typically the first action in an incident workflow — it gives responders a central place to coordinate.

    <ParamField body="Title" type="string">
      The space name. Supports Liquid syntax (e.g., `{{ incident.title }}`). Automatically formatted to meet Google Chat's display name requirements.
    </ParamField>

    <ParamField body="Description" type="string">
      An optional description for the space. Supports Liquid syntax.
    </ParamField>

    <ParamField body="Audience" type="string">
      Controls space discoverability:

      * **Empty** (default) — Space is private, only invited members can see it
      * **`audiences/default`** — Space is discoverable by everyone in your Google Workspace organization

      <Note>
        Discoverable spaces cannot be created for private incidents.
      </Note>
    </ParamField>

    <Note>
      If the incident already has a Google Chat space, this action skips creation to avoid duplicates.
    </Note>

    <Note>
      The overview card requires the **service account** connection. It is sent using bot identity automatically after space creation.
    </Note>
  </Accordion>

  <Accordion title="Send Google Chat Message" icon="message">
    Sends a text message to one or more Google Chat spaces. Use Liquid variables to include dynamic incident details.

    <ParamField body="Spaces" type="select">
      The space(s) to post to. Supports Liquid syntax.
    </ParamField>

    <ParamField body="Text" type="string">
      The message content. Supports Liquid variables.

      ```liquid theme={null}
      *Incident Update*

      *Title:* {{ incident.title }}
      *Severity:* {{ incident.severity }}
      *Status:* {{ incident.status }}
      *Commander:* {{ incident.commander.name | default: "Unassigned" }}

      {{ incident.summary }}
      ```
    </ParamField>

    <ParamField body="Thread Key" type="string">
      An optional thread key to group messages into a thread within the space. Messages with the same thread key appear as replies in the same thread. Supports Liquid syntax.
    </ParamField>

    <Note>
      If the message text is empty, the action will be skipped.
    </Note>

    **Common triggers:** Incident Created, Incident Updated, Status Changed
  </Accordion>

  <Accordion title="Send Google Chat Attachments" icon="rectangle-vertical-history">
    Sends Cards v2 to one or more Google Chat spaces. Use this to send richly formatted, interactive content such as structured incident summaries with action buttons.

    <ParamField body="Spaces" type="select">
      The space(s) to send the cards to. Supports Liquid syntax.
    </ParamField>

    <ParamField body="Attachments" type="string">
      A JSON payload defining the Cards v2 content. Supports Liquid syntax. Follows the [Google Chat Cards v2 schema](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards).
    </ParamField>

    <Warning>
      Cards v2 require the **service account** connection. OAuth connections cannot send cards — Google restricts card messages to bot identity.
    </Warning>
  </Accordion>

  <Accordion title="Invite to Google Chat Space" icon="user-plus">
    Invites users to the incident's Google Chat space by email. Use this to automatically add on-call responders when they're assigned a role.

    <ParamField body="Space" type="select">
      The space to invite users to. Supports Liquid syntax.
    </ParamField>

    <ParamField body="Emails" type="string">
      Comma-separated list of email addresses to invite. Supports Liquid syntax.
    </ParamField>

    **Common triggers:** Incident Created, Incident Commander Assigned
  </Accordion>

  <Accordion title="Rename Google Chat Space" icon="pen-to-square">
    Renames an existing Google Chat space. Use this to reflect status changes — for example, prefixing resolved incidents with `[RESOLVED]`.

    <ParamField body="Space" type="select">
      The space to rename. Supports Liquid syntax.
    </ParamField>

    <ParamField body="Title" type="string">
      The new display name. Supports Liquid syntax.

      ```liquid theme={null}
      [RESOLVED] {{ incident.title }}
      ```
    </ParamField>

    **Common trigger:** Incident Resolved
  </Accordion>

  <Accordion title="Update Google Chat Space Description" icon="align-left">
    Updates the description of a Google Chat space. Use this to keep the space description in sync with the incident summary as it evolves.

    <ParamField body="Space" type="select">
      The space to update. Supports Liquid syntax.
    </ParamField>

    <ParamField body="Description" type="string">
      The new description. Supports Liquid syntax.
    </ParamField>

    **Common trigger:** Incident Updated
  </Accordion>

  <Accordion title="Change Google Chat Space Privacy" icon="lock">
    Switches a space between private and discoverable. Use this to open up a space to the broader organization during a major incident, or lock it down afterward.

    <ParamField body="Space" type="select">
      The space to update. Supports Liquid syntax.
    </ParamField>

    <ParamField body="Audience" type="string">
      * **Empty** — Makes the space private (invited members only)
      * **`audiences/default`** — Makes the space discoverable organization-wide
    </ParamField>

    <Warning>
      Setting a space to discoverable will also update the incident's private flag. You cannot make a private incident's space discoverable — change the incident visibility first.
    </Warning>
  </Accordion>

  <Accordion title="Archive Google Chat Spaces" icon="box-archive">
    Deletes the incident's Google Chat space when it's no longer needed. Keeps your workspace clean after incidents are resolved.

    <ParamField body="Spaces" type="select">
      The space(s) to delete. Supports Liquid syntax.
    </ParamField>

    <Note>
      Google Chat does not support archiving spaces — this action permanently deletes the space. Ensure your retention requirements are met before using this action.
    </Note>

    **Common trigger:** Incident Status Changed to "Closed"
  </Accordion>
</AccordionGroup>

***

## Slash Commands

When the Rootly bot is added to a Google Chat space, team members can use slash commands to manage incidents, alerts, and on-call directly from chat.

### Incident Commands

| Command                   | Description                                  |
| ------------------------- | -------------------------------------------- |
| `/rootly declare`         | Declare a new incident (opens a form dialog) |
| `/rootly update`          | Update incident details                      |
| `/rootly status`          | View current incident status                 |
| `/rootly resolve`         | Resolve the incident                         |
| `/rootly mitigate`        | Mark incident as mitigated                   |
| `/rootly cancel`          | Cancel the incident                          |
| `/rootly ack`             | Acknowledge the incident                     |
| `/rootly note <message>`  | Add a timeline event                         |
| `/rootly summary <text>`  | Update incident summary                      |
| `/rootly severity <name>` | Set incident severity                        |
| `/rootly list`            | List active incidents                        |

### On-Call & Alerting Commands

| Command            | Description                                                  |
| ------------------ | ------------------------------------------------------------ |
| `/rootly alert`    | Create a new alert and page responders (opens a form dialog) |
| `/rootly oncall`   | Show who's currently on-call across your schedules           |
| `/rootly escalate` | Escalate — create an alert and page the escalation policy    |
| `/rootly override` | Create a shift override (opens a form dialog)                |

### Utility Commands

| Command        | Description                 |
| -------------- | --------------------------- |
| `/rootly help` | Show all available commands |

<Note>
  Slash commands work with both `/rootly` and `/incident` prefixes.
</Note>

The `declare`, `update`, `alert`, `escalate`, and `override` commands open dynamic form dialogs with the same configurable fields available in Slack and the web UI, including custom fields.

***

## Emoji Reactions

Rootly can convert emoji reactions on messages in incident spaces into timeline events, follow-ups, or tasks. This lets responders quickly capture important information without leaving the conversation.

| Default Emoji     | Action                               |
| ----------------- | ------------------------------------ |
| Pin or star emoji | Adds the message as a timeline event |
| Clipboard emoji   | Creates a follow-up action item      |
| Checkmark emoji   | Creates a task action item           |

Rootly responds with a confirmation emoji (e.g., ✅) when it processes a reaction.

<Tip>
  Customize which emojis trigger each action in **Configuration > Integrations > Google Chat > Settings**.
</Tip>

***

## On-Call & Alerting

Google Chat spaces can be used as escalation policy targets, making Google Chat a first-class on-call surface alongside Slack.

### Escalation Policy Targets

Add Google Chat spaces as notification targets on escalation policy levels. When an alert fires, Rootly posts an alert card to the configured space with action buttons.

To configure:

1. Go to **On-Call > Escalation Policies**
2. Edit or create a policy level
3. Select a Google Chat space as a notification target

### Alert Cards

When an alert is sent to a Google Chat space, Rootly posts an interactive card with action buttons that change based on alert status:

| Button            | Action                            |
| ----------------- | --------------------------------- |
| **Acknowledge**   | Acknowledge the alert             |
| **Resolve**       | Resolve the alert                 |
| **Escalate**      | Escalate to the next policy level |
| **Mark as Noise** | Mark the alert as noise           |
| **Snooze**        | Snooze the alert temporarily      |

Cards update automatically as the alert status changes — buttons reflect the current available actions.

### Shift Notifications

When configured, Rootly sends notifications to Google Chat spaces for on-call events:

* **Shift start** — Notifies when an on-call shift begins
* **Shift override** — Notifies when someone takes over or creates an override
* **Coverage request** — Posts a card with a "Take the Shift" button when someone requests coverage

Enable shift notifications in **On-Call > Schedules > Edit > Notifications**.

### Additional Alert Spaces

Configure extra Google Chat spaces to receive alert broadcasts in **Configuration > Integrations > Google Chat > Settings**. This lets you send alerts to shared spaces in addition to the escalation policy targets.

***

## Lifecycle Notifications

When connected via service account, Rootly automatically posts notifications to incident spaces for key events:

* **Role assigned** — When a responder is assigned a role on the incident
* **Action item added** — When a follow-up or task is created
* **Meeting recording** — When a recording session starts or completes (includes duration and transcript link)
* **Retrospective published** — When the post-incident review is published

Each notification includes a "View in Rootly" button for quick access.

***

## Liquid Variables

<Tip>
  Use the [Liquid Variable Explorer](https://rootly.com/account/help/liquid-explorer) to test variables with real incident data.
</Tip>

### Incident Variables

| Variable                         | Description                    |
| -------------------------------- | ------------------------------ |
| `{{ incident.title }}`           | Incident title                 |
| `{{ incident.summary }}`         | Incident summary               |
| `{{ incident.severity }}`        | Severity level (e.g., "SEV1")  |
| `{{ incident.status }}`          | Current status                 |
| `{{ incident.started_at }}`      | When the incident started      |
| `{{ incident.commander.name }}`  | Incident commander name        |
| `{{ incident.commander.email }}` | Incident commander email       |
| `{{ incident.url }}`             | Link to the incident in Rootly |

### Google Chat Variables

| Variable                                     | Description                                                                                                                                    |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `{{ incident.google_chat_space_id }}`        | ID of the incident's Google Chat space                                                                                                         |
| `{{ incident.google_chat_space_name }}`      | Full resource name of the space (e.g., `spaces/AAAA...`)                                                                                       |
| `{{ incident.google_chat_space_url }}`       | URL to the Google Chat space                                                                                                                   |
| `{{ incident.google_chat_space_short_url }}` | Shortened URL to the space                                                                                                                     |
| `{{ incident.google_chat_space_archived }}`  | Whether the space has been deleted (Google Chat does not support archiving — this flag indicates the space was removed via the Archive action) |
| `{{ incident.google_chat_space_domain_id }}` | Google Workspace domain ID of the space                                                                                                        |
