Authorize Google Chat apps to import data
Stay organized with collections
Save and categorize content based on your preferences.
With the Google Chat API, apps can import data from other messaging platforms into
Google Chat by using import mode spaces. For more information, see
Import message data to Google Chat from another service.
To read and write resources in import mode spaces, you must
authenticate Chat apps with a service account.
Grant the service account the following Chat API authorization scope
by an administrator: https://www.googleapis.com/auth/chat.import
.
Only Google Workspace domain administrators can grant this OAuth scope to
service accounts through
domain-wide delegation.
Every domain that a Chat app creates import mode spaces
in must have this OAuth scope. After the service account has been delegated
domain-wide authority for this scope, Chat apps can access import
mode spaces by
impersonating a user account.
In some scenarios, the user account for impersonation might no longer be
available. In these cases, the Chat app can use their
service account credentials as a fallback. For example, if you delete a user
account that was used during message creation, the
Chat app can use their own service account credentials
to create a message containing the same contents. Chat apps can
access import mode spaces as an app using service account credentials with the
following OAuth scope: https://www.googleapis.com/auth/chat.bot
.
No other Google Chat API scopes
are required when importing resources into an import mode space.
Chat apps can only import content into the import mode spaces
that they create, and not into the import mode spaces created by other apps.
The following table lists the resource methods that Chat apps can
call in import mode spaces, and what kind of authentication they support:
Resource method |
User impersonation supported |
Service account credentials supported |
spaces.create
|
Yes |
No |
spaces.get
|
No |
Yes |
spaces.update
|
Yes |
No |
spaces.delete
|
Yes |
No |
spaces.completeImport
|
Yes |
No |
spaces.messages.create
|
Yes |
Yes |
spaces.messages.delete
|
Yes |
Yes |
spaces.messages.get
|
No |
Yes |
spaces.messages.list
|
Yes |
No |
spaces.messages.update
|
Yes |
Yes |
spaces.messages.reactions.create
|
Yes |
No |
spaces.messages.reactions.delete
|
Yes |
No |
spaces.members.create
|
Yes |
No |
spaces.members.delete
|
Yes |
No |
spaces.members.list
|
Yes |
No |
media.upload
|
Yes |
No |
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[null,null,["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eGoogle Chat API allows importing data from other platforms into Google Chat using import mode spaces.\u003c/p\u003e\n"],["\u003cp\u003eChat apps require specific authentication and authorization to read and write resources in these spaces, needing domain administrator approval.\u003c/p\u003e\n"],["\u003cp\u003eApps can impersonate user accounts or utilize their service account credentials for specific actions within import mode spaces.\u003c/p\u003e\n"],["\u003cp\u003eImport mode spaces support various resource methods with differing authentication requirements, as detailed in the provided table.\u003c/p\u003e\n"],["\u003cp\u003eChat apps can only import content into spaces they create and not into spaces created by other apps.\u003c/p\u003e\n"]]],["Apps use the Google Chat API's import mode to bring data from other platforms into Google Chat. This requires authentication with a service account granted the `https://www.googleapis.com/auth/chat.import` scope via domain-wide delegation by a Google Workspace admin. Apps can impersonate user accounts or use service account credentials (`https://www.googleapis.com/auth/chat.bot`). Only specific resource methods are supported in import mode spaces. Import mode is exclusive, meaning apps can only modify spaces they create.\n"],null,["# Authorize Google Chat apps to import data\n\nWith the Google Chat API, apps can import data from other messaging platforms into\nGoogle Chat by using *import mode* spaces. For more information, see\n[Import message data to Google Chat from another service](https://support.google.com/a/answer/13465849).\n\nTo read and write resources in import mode spaces, you must\n[authenticate Chat apps with a service account](/workspace/chat/authenticate-authorize-chat-app).\nGrant the service account the following Chat API authorization scope\nby an administrator: `https://www.googleapis.com/auth/chat.import`.\n\nOnly Google Workspace domain administrators can grant this OAuth scope to\nservice accounts through\n[domain-wide delegation](/identity/protocols/oauth2/service-account#delegatingauthority).\nEvery domain that a Chat app creates import mode spaces\nin must have this OAuth scope. After the service account has been delegated\ndomain-wide authority for this scope, Chat apps can access import\nmode spaces by\n[impersonating a user account](/identity/protocols/oauth2/service-account#authorizingrequests).\n\nIn some scenarios, the user account for impersonation might no longer be\navailable. In these cases, the Chat app can use their\nservice account credentials as a fallback. For example, if you delete a user\naccount that was used during message creation, the\nChat app can use their own service account credentials\nto create a message containing the same contents. Chat apps can\naccess import mode spaces as an app using service account credentials with the\nfollowing OAuth scope: `https://www.googleapis.com/auth/chat.bot`.\n\nNo other [Google Chat API scopes](/workspace/chat/authenticate-authorize#scopes)\nare required when importing resources into an import mode space.\nChat apps can only import content into the import mode spaces\nthat they create, and not into the import mode spaces created by other apps.\n\nThe following table lists the resource methods that Chat apps can\ncall in import mode spaces, and what kind of authentication they support:\n\n| Resource method | User impersonation supported | Service account credentials supported |\n|------------------------------------|------------------------------|---------------------------------------|\n| `spaces.create` | Yes | No |\n| `spaces.get` | No | Yes |\n| `spaces.update` | Yes | No |\n| `spaces.delete` | Yes | No |\n| `spaces.completeImport` | Yes | No |\n| `spaces.messages.create` | Yes | Yes |\n| `spaces.messages.delete` | Yes | Yes |\n| `spaces.messages.get` | No | Yes |\n| `spaces.messages.list` | Yes | No |\n| `spaces.messages.update` | Yes | Yes |\n| `spaces.messages.reactions.create` | Yes | No |\n| `spaces.messages.reactions.delete` | Yes | No |\n| `spaces.members.create` | Yes | No |\n| `spaces.members.delete` | Yes | No |\n| `spaces.members.list` | Yes | No |\n| `media.upload` | Yes | No |\n\nRelated topics\n--------------\n\n- To learn more about authentication and authorization, see [Authenticate and authorize Google Chat apps and API requests](/workspace/chat/authenticate-authorize).\n- To learn how to set up a service account to access the Google Chat API, see [Authenticate as a Google Chat app](/workspace/chat/authenticate-authorize-chat-app).\n- To learn how to start importing resources using import mode spaces, see [Import data to Google Chat](/workspace/chat/import-data)."]]