Cómo suscribirse a eventos de Google Chat

En esta página, se describen los eventos de Chat a los que una app de Chat puede suscribirse con la API de Google Workspace Events. Después de decidir qué tipos de eventos necesitas, crea una suscripción para comenzar a recibir eventos de Chat.

Además de suscribirte a los eventos, también puedes consultar los eventos llamando a la API de Google Chat. Llamar a la API de Chat te permite recuperar eventos de forma periódica o ponerte al día con los eventos que podrías haber perdido de una suscripción debido a una interrupción. Para obtener información sobre las formas en que puedes recibir eventos de Chat y responder a ellos, consulta Trabaja con eventos de Chat en la documentación de Chat.

Eventos de Chat admitidos

Las suscripciones a Google Workspace te permiten recibir eventos sobre los siguientes tipos de cambios en Chat:

Recursos que puedes supervisar para detectar eventos

Para recibir eventos, debes especificar un recurso de Chat para supervisar, que se denomina recurso de destino de la suscripción.

La API de Google Workspace Events admite los siguientes recursos de destino para Chat:

Recurso objetivo Formato Limitaciones
Espacio

//chat.googleapis.com/spaces/SPACE

donde SPACE es el ID en el nombre del recurso del recurso space de la API de Chat. Puedes obtener el ID de la URL del espacio o con el método spaces.list().

El usuario o la app de Chat que autoriza la suscripción debe ser miembro del espacio a través de su cuenta de Google Workspace o de Google. Formatos compatibles:
Todos los espacios de un usuario

//chat.googleapis.com/spaces/-

La suscripción solo recibe eventos de los espacios en los que el usuario es miembro a través de su cuenta de Google Workspace o de Google. Solo admite la autenticación de usuarios.
Usuario

//cloudidentity.googleapis.com/users/USER

donde USER es el ID en el nombre del recurso del recurso user de la API de Chat. Para obtener más información, consulta Cómo identificar y especificar usuarios de Google Chat.

La suscripción solo recibe eventos sobre el usuario que la autorizó. Un usuario no puede autorizar una suscripción en nombre de otros usuarios. Solo admite la autenticación de usuarios.

Cliente ( Versión preliminar para desarrolladores)

//admin.googleapis.com/customers/CUSTOMER

donde CUSTOMER es el ID del cliente. También puedes usar el alias my_customer para el dominio del cliente de la app de Chat.

La suscripción recibe eventos para todos los espacios y usuarios que administra el dominio del cliente. Solo admite la autenticación de la app con la aprobación del administrador.

Tipos de eventos para crear suscripciones

Cuando crees una suscripción, usa el campo eventTypes[] para especificar qué tipos de eventos deseas recibir. Los tipos de eventos se formatean según la especificación de CloudEvents, como google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Por ejemplo, para recibir eventos sobre los usuarios que se unen a un espacio de Chat, especifica el espacio como el recurso de destino y el tipo de evento como google.workspace.chat.membership.v1.created. Para recibir eventos sobre un usuario determinado que se une a cualquier espacio, especifica al usuario como el recurso de destino y el tipo de evento como google.workspace.chat.membership.v1.created. Para obtener más información sobre cómo funcionan los eventos, consulta Estructura de los eventos de Google Workspace.

En la siguiente tabla, se muestran los tipos de eventos admitidos para las suscripciones a espacios y a usuarios. Para obtener información sobre las excepciones relacionadas con lo que activa un evento, consulta Limitaciones.

Tipo de evento Formato Datos de recursos
Suscripciones a espacios  
Se publica un mensaje.

google.workspace.chat.message.v1.created

space.message

Se actualiza un mensaje.

google.workspace.chat.message.v1.updated

space.message

Se borró un mensaje.

google.workspace.chat.message.v1.deleted

space.message

Se crea una reacción.

google.workspace.chat.reaction.v1.created

space.message.reaction

Se borra una reacción.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Se agrega un miembro al espacio.

google.workspace.chat.membership.v1.created

space.membership

Se actualizó un miembro en el espacio.

google.workspace.chat.membership.v1.updated

space.membership

Se quita un miembro del espacio.

google.workspace.chat.membership.v1.deleted

space.membership

Se actualizó el espacio.

google.workspace.chat.space.v1.updated

space

Se borró el espacio.

google.workspace.chat.space.v1.deleted

space

Suscripciones a usuarios  
El usuario se convierte en miembro de un espacio.

No todos los miembros nuevos activan eventos. Para obtener más información, consulta Limitaciones.

google.workspace.chat.membership.v1.created

space.membership

Se actualizó la membresía del usuario a un espacio.

google.workspace.chat.membership.v1.updated

space.membership

Se quita al usuario como miembro directo de un espacio.

google.workspace.chat.membership.v1.deleted

space.membership

Se actualiza el estado de lectura del espacio del usuario.

google.workspace.chat.spaceReadState.v1.updated

spaceReadState

Se actualiza el estado de lectura del subproceso del usuario.

google.workspace.chat.threadReadState.v1.updated

threadReadState

Suscripciones para clientes ( Versión preliminar para desarrolladores)  
Se produce un evento en cualquier espacio, mensaje, reacción, membresía o estado de lectura del usuario dentro de tu organización de Google Workspace.

Admite todos los tipos de eventos que se indican para las suscripciones de espacio y de usuario.

Depende del tipo de evento (por ejemplo, space, space.message, space.membership o spaceReadState).

Tipos de eventos por lotes (solo salida)

Además de recibir los tipos de eventos a los que te suscribas, es posible que tu app de Chat también reciba eventos por lotes. Un evento por lotes es un evento que representa muchos eventos del mismo tipo que ocurren en un período corto. La carga útil de un evento por lotes contiene una lista de todos los recursos modificados.

Por ejemplo, si un usuario agrega 20 usuarios a un espacio al mismo tiempo, es posible que tu app de Chat reciba un evento por lotes (google.workspace.chat.membership.v1.batchCreated). La carga útil del evento contiene una lista de todos los recursos Membership nuevos que se crearon cuando el usuario agregó a los miembros al espacio.

Recibirás un evento por lotes para cualquier tipo de evento al que te suscribas, por lo que no es necesario que especifiques eventos por lotes cuando crees una suscripción. Por ejemplo, si te suscribes a reacciones nuevas (google.workspace.chat.reaction.v1.created), tu app de Chat se configura automáticamente para recibir eventos de reacciones por lotes (google.workspace.chat.reaction.v1.batchCreated).

En la siguiente tabla, se muestran los posibles eventos por lotes para una suscripción:

Tipo de evento por lotes Formato
Se publican varios mensajes.

google.workspace.chat.message.v1.batchCreated

Se actualizaron varios mensajes.

google.workspace.chat.message.v1.batchUpdated

Se borran varios mensajes.

google.workspace.chat.message.v1.batchDeleted

Se crean varias reacciones.

google.workspace.chat.reaction.v1.batchCreated

Se borraron varias reacciones.

google.workspace.chat.reaction.v1.batchDeleted

Se agregaron varios miembros al espacio suscrito o el usuario suscrito se agregó a varios espacios.

google.workspace.chat.membership.v1.batchCreated

Se actualizan varias membresías en el espacio suscrito o para el usuario suscrito.

google.workspace.chat.membership.v1.batchUpdated

Se quitaron varios miembros del espacio suscrito, o bien se quitó al usuario suscrito de varios espacios.

google.workspace.chat.membership.v1.batchDeleted

El espacio tiene varias actualizaciones.

google.workspace.chat.space.v1.batchUpdated

Se actualizan varios estados de lectura del espacio para el usuario suscrito.

google.workspace.chat.spaceReadState.v1.batchUpdated

Se actualizan varios estados de lectura de subprocesos para el usuario suscrito.

google.workspace.chat.threadReadState.v1.batchUpdated

Datos de eventos

En esta sección, se describen los datos de eventos y los ejemplos de cargas útiles para los eventos en Chat.

Cuando tu suscripción a Google Workspace recibe un evento de Chat, el campo data contiene la carga útil del evento. Esta carga útil contiene información sobre el recurso de Google Workspace que cambió. Por ejemplo, si te suscribiste a los eventos de membresía en un espacio, la carga útil de estos eventos contiene información sobre el recurso spaces.membership que cambió.

Datos de recursos en la carga útil del evento

Cuando creas una suscripción, puedes especificar si deseas que la carga útil incluya detalles sobre el recurso o solo su nombre. Por ejemplo, si deseas recibir eventos sobre los miembros de un espacio de Chat, especifica qué campos de un recurso de membresía deseas recibir en la carga útil del evento.

En la siguiente tabla, se proporcionan ejemplos de cargas útiles de JSON para una suscripción al espacio de chat spaces/AAAABBBBBB. Para cada evento que recibe la suscripción, la carga útil aparece en el campo data del evento:

Ejemplo Tipo de evento Carga útil de JSON

Un usuario publica un mensaje en el espacio que dice "Hola mundo".

google.workspace.chat.message.v1.created

Incluye datos de recursos:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID",
        "sender":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/SPACE_ID/threads/THREAD_ID"
        },
        "space":
        {
            "name": "spaces/SPACE_ID"
        },
        "argumentText": "Hello world"
    }
}
      

Excluye los datos de recursos:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID"
    }
}
      
Un usuario se convierte en administrador del espacio.

google.workspace.chat.membership.v1.updated

Incluye datos de recursos:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID",
        "state": "JOINED",
        "member":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      

Excluye los datos de recursos:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID"
    }
}
      
Un usuario actualiza la descripción del espacio a "Equipo de ventas de Cymbal Labs". google.workspace.chat.space.v1.updated

Incluye datos de recursos:

{
    "space":
    {
        "name": "spaces/SPACE_ID",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      

Excluye los datos de recursos:

{
    "space":
    {
        "name": "spaces/SPACE_ID"
    }
}
      
Se agregaron dos usuarios de Chat al espacio al mismo tiempo. google.workspace.chat.membership.v1.batchCreated

Incluye datos de recursos:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      

Excluye los datos de recursos:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Un usuario reacciona a un mensaje con el emoji 😊. google.workspace.chat.reaction.v1.created

Incluye datos de recursos:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        "user":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      

Excluye los datos de recursos:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
    }
}
      
Los usuarios reaccionan a un mensaje con los emojis 😊 y 😸. google.workspace.chat.reaction.v1.batchCreated

Incluye datos de recursos:

{
    "reactions": [
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      

Excluye los datos de recursos:

{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
        },
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        }
      }
    ]
}
      
Un usuario visita un espacio no leído, lo que actualiza su estado de lectura del espacio. google.workspace.chat.spaceReadState.v1.updated

Incluye datos de recursos:

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState",
    "lastReadTime": "2026-04-14T14:03:46.431760Z"
  }
}
      

Excluye los datos de recursos:

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState"
  }
}
      
Un usuario lee un mensaje en un hilo, lo que actualiza el estado de lectura del hilo. google.workspace.chat.threadReadState.v1.updated

Incluye datos de recursos:

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState",
    "lastReadTime": "2026-04-14T14:03:46.431760Z"
  }
}
      

Excluye los datos de recursos:

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState"
  }
}
      
Un usuario está disponible en Chat. google.workspace.chat.availability.v1.updated

Incluye datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "ACTIVE"
    }
}
      

Excluye los datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Un usuario se vuelve inactivo en Chat. google.workspace.chat.availability.v1.updated

Incluye datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "IDLE",
    }
}
      

Excluye los datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Un usuario establece su disponibilidad en Away en Chat. google.workspace.chat.availability.v1.updated

Incluye datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "AWAY",
    }
}
      

Excluye los datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Un usuario establece su disponibilidad en Do not disturb en Chat. google.workspace.chat.availability.v1.updated

Incluye datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "DO_NOT_DISTURB",
        "doNotDisturbMetadata": {
          "expirationTime": "2026-03-24T18:36:31.337Z"
        }
    }
}
      

Excluye los datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Un usuario establece un estado personalizado en Chat. google.workspace.chat.availability.v1.updated

Incluye datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "ACTIVE",
        "customStatus": {
          "text": "Be right back",
          "emoji": {
            "unicode": "👟"
          },
          "expireTime": "2026-03-24T18:38:05.583655Z"
        }
    }
}
      

Excluye los datos de recursos:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      

Limitaciones y comportamientos de entrega

Limitaciones generales

  • Para recibir eventos de membresía, el usuario o la app de Chat deben ser miembros directos del espacio. Si se agregaron, actualizaron o quitaron indirectamente de un espacio a través de un Grupo de Google, la suscripción no recibirá esos eventos de membresía. Para comprender cómo funcionan las membresías de los Grupos de Google, consulta Cómo agregar un Grupo de Google a un espacio.

Suscripciones de usuarios

  • En el caso de las suscripciones a usuarios, los eventos sobre miembros nuevos en mensajes directos o chats en grupo sin nombre (google.workspace.chat.membership.v1.created) solo se activan después de que se publica el primer mensaje.

Suscripciones de clientes ( Versión preliminar para desarrolladores)

En el caso de las suscripciones de clientes, se aplican las siguientes limitaciones:

  • La organización de Google Workspace debe tener al menos una licencia de SKU de Enterprise. Ten en cuenta que este requisito no se aplica estrictamente durante la etapa del Programa de versión preliminar para desarrolladores, pero se aplicará en el futuro (se anunciará por separado).
  • Una app de Chat solo puede crear una suscripción del cliente para una organización de Google Workspace determinada. Una organización de Google Workspace puede tener hasta cinco suscripciones de clientes en total (creadas por diferentes apps de Chat).

En el caso de las suscripciones de clientes, la entrega de eventos sigue estas reglas generales:

  • Eventos de espacios: Se entregan solo si el evento ocurre en un espacio administrado por tu organización de Google Workspace.
  • Eventos de usuario: Se entregan solo si el evento ocurre para un usuario que pertenece a tu organización de Google Workspace.

La única excepción a estas reglas son los eventos de membresía. Tu suscripción puede recibir eventos de membresía de espacios administrados por tu organización y de espacios administrados por organizaciones externas, pero la forma en que se entregan depende de qué organización administre el espacio:

Espacios administrados por tu organización de Google Workspace

Si se produce un cambio en la membresía de un espacio administrado por la organización de Google Workspace, se entrega como un evento del espacio.

El nombre del recurso de un evento de espacio usa el siguiente formato:

spaces/{spaceId}/spaceEvents/{spaceEventId}

Espacios administrados por organizaciones externas

Si la membresía de un usuario administrado por tu organización de Google Workspace cambia en un espacio administrado por una organización externa (por ejemplo, un espacio externo con nombre o un mensaje directo creado por un usuario externo), tu suscripción recibe este evento como un evento de usuario.

El nombre del recurso de un evento de usuario usa el siguiente formato:

users/{userId}/userEvents/{userEventId}