# Google Groups (/integrations/google_groups)





{/* MANUAL-CONTENT-START:intro */}

Use [Google Groups](https://groups.google.com) to manage Google Workspace groups and membership through the Admin SDK Directory API. Create, read, update, or delete groups; manage aliases; add, remove, or update members with `OWNER`, `MANAGER`, or `MEMBER` roles; and check membership.

Connect an account with the required Workspace administrative permissions. **Get Settings** and **Update Settings** also use the Groups Settings API, which requires [`https://www.googleapis.com/auth/apps.groups.settings`](https://developers.google.com/workspace/admin/groups-settings/auth). Sim's current Google Groups OAuth connection requests Directory API scopes only, so it does not provide the scope needed for those settings actions.

{/* MANUAL-CONTENT-END */}

## OAuth scopes [#oauth-scopes]

Sim requests these scopes when someone connects a Google Groups account. For a self-hosted deployment, register your own app with the provider using the settings below. See [Integrations and OAuth](/platform/self-hosting/integrations-oauth) for setup.

| Setting | Value |
| - | - |
| Redirect URI | `<NEXT_PUBLIC_APP_URL>/api/auth/oauth2/callback/google-groups` |
| Environment variables | `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` |

| Scope | Description |
| - | - |
| `https://www.googleapis.com/auth/userinfo.email` | View email address |
| `https://www.googleapis.com/auth/userinfo.profile` | View basic profile info |
| `https://www.googleapis.com/auth/admin.directory.group` | Manage Google Workspace groups |
| `https://www.googleapis.com/auth/admin.directory.group.member` | Manage Google Workspace group memberships |

## Use the block [#usage-instructions]

Connect to Google Workspace to create, update, and manage groups and their members using the Admin SDK Directory API.

## Actions [#actions]

### Google Groups List Groups [#google-groups-list-groups]

List all groups in a Google Workspace domain

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `customer` | string | No | Customer ID or "my\_customer" for the authenticated user's domain |
  | `domain` | string | No | Domain name to filter groups by |
  | `maxResults` | number | No | Maximum number of results to return (1-200). Example: 50 |
  | `pageToken` | string | No | Token for fetching the next page of results |
  | `query` | string | No | Search query to filter groups (e.g., "email:admin\*") |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `groups` | json | Array of group objects |
  | `nextPageToken` | string | Token for fetching next page of results |
</ReferenceDetails>

### Google Groups Get Group [#google-groups-get-group]

Get details of a specific Google Group by email or group ID

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `group` | json | Group object |
</ReferenceDetails>

### Google Groups Create Group [#google-groups-create-group]

Create a new Google Group in the domain

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `email` | string | Yes | Email address for the new group (e.g., [team@example.com](mailto:team@example.com)) |
  | `name` | string | Yes | Display name for the group (e.g., Engineering Team) |
  | `description` | string | No | Description of the group |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `group` | json | Created group object |
</ReferenceDetails>

### Google Groups Update Group [#google-groups-update-group]

Update an existing Google Group

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `name` | string | No | New display name for the group (e.g., Engineering Team) |
  | `description` | string | No | New description for the group |
  | `email` | string | No | New email address for the group (e.g., [newteam@example.com](mailto:newteam@example.com)) |

  #### Output [#output-3]

  | Parameter | Type | Description |
  | - | - | - |
  | `group` | json | Updated group object |
</ReferenceDetails>

### Google Groups Delete Group [#google-groups-delete-group]

Delete a Google Group

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier to delete. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |

  #### Output [#output-4]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success message |
</ReferenceDetails>

### Google Groups List Members [#google-groups-list-members]

List all members of a Google Group

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `maxResults` | number | No | Maximum number of results to return (1-200). Example: 50 |
  | `pageToken` | string | No | Token for fetching the next page of results |
  | `roles` | string | No | Filter by roles (comma-separated: OWNER, MANAGER, MEMBER) |

  #### Output [#output-5]

  | Parameter | Type | Description |
  | - | - | - |
  | `members` | json | Array of member objects |
  | `nextPageToken` | string | Token for fetching next page of results |
</ReferenceDetails>

### Google Groups Get Member [#google-groups-get-member]

Get details of a specific member in a Google Group

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `memberKey` | string | Yes | Member identifier. Can be the member email address (e.g., [user@example.com](mailto:user@example.com)) or the unique member ID |

  #### Output [#output-6]

  | Parameter | Type | Description |
  | - | - | - |
  | `member` | json | Member object |
</ReferenceDetails>

### Google Groups Add Member [#google-groups-add-member]

Add a new member to a Google Group

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `email` | string | Yes | Email address of the member to add (e.g., [user@example.com](mailto:user@example.com)) |
  | `role` | string | No | Role for the member: MEMBER, MANAGER, or OWNER. Defaults to MEMBER |

  #### Output [#output-7]

  | Parameter | Type | Description |
  | - | - | - |
  | `member` | json | Added member object |
</ReferenceDetails>

### Google Groups Remove Member [#google-groups-remove-member]

Remove a member from a Google Group

<ReferenceDetails>
  #### Input [#input-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `memberKey` | string | Yes | Member identifier to remove. Can be the member email address (e.g., [user@example.com](mailto:user@example.com)) or the unique member ID |

  #### Output [#output-8]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success message |
</ReferenceDetails>

### Google Groups Update Member [#google-groups-update-member]

Update a member's role in a Google Group (promote or demote)

<ReferenceDetails>
  #### Input [#input-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `memberKey` | string | Yes | Member identifier. Can be the member email address (e.g., [user@example.com](mailto:user@example.com)) or the unique member ID |
  | `role` | string | Yes | New role for the member: MEMBER, MANAGER, or OWNER |

  #### Output [#output-9]

  | Parameter | Type | Description |
  | - | - | - |
  | `member` | json | Updated member object |
</ReferenceDetails>

### Google Groups Has Member [#google-groups-has-member]

Check if a user is a member of a Google Group

<ReferenceDetails>
  #### Input [#input-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `memberKey` | string | Yes | Member identifier to check. Can be the member email address (e.g., [user@example.com](mailto:user@example.com)) or the unique member ID |

  #### Output [#output-10]

  | Parameter | Type | Description |
  | - | - | - |
  | `isMember` | boolean | Whether the user is a member of the group |
</ReferenceDetails>

### Google Groups List Aliases [#google-groups-list-aliases]

List all email aliases for a Google Group

<ReferenceDetails>
  #### Input [#input-11]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |

  #### Output [#output-11]

  | Parameter | Type | Description |
  | - | - | - |
  | `aliases` | array | List of email aliases for the group |
  | ↳ `id` | string | Unique group identifier |
  | ↳ `primaryEmail` | string | Group's primary email address |
  | ↳ `alias` | string | Alias email address |
  | ↳ `kind` | string | API resource type |
  | ↳ `etag` | string | Resource version identifier |
</ReferenceDetails>

### Google Groups Add Alias [#google-groups-add-alias]

Add an email alias to a Google Group

<ReferenceDetails>
  #### Input [#input-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `alias` | string | Yes | The email alias to add to the group |

  #### Output [#output-12]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Unique group identifier |
  | `primaryEmail` | string | Group's primary email address |
  | `alias` | string | The alias that was added |
  | `kind` | string | API resource type |
  | `etag` | string | Resource version identifier |
</ReferenceDetails>

### Google Groups Remove Alias [#google-groups-remove-alias]

Remove an email alias from a Google Group

<ReferenceDetails>
  #### Input [#input-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupKey` | string | Yes | Group identifier. Can be the group email address (e.g., [team@example.com](mailto:team@example.com)) or the unique group ID |
  | `alias` | string | Yes | The email alias to remove from the group |

  #### Output [#output-13]

  | Parameter | Type | Description |
  | - | - | - |
  | `deleted` | boolean | Whether the alias was successfully deleted |
</ReferenceDetails>

### Google Groups Get Settings [#google-groups-get-settings]

Get the settings for a Google Group including access permissions, moderation, and posting options

<ReferenceDetails>
  #### Input [#input-14]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupEmail` | string | Yes | The email address of the group (e.g., [team@example.com](mailto:team@example.com)) |

  #### Output [#output-14]

  | Parameter | Type | Description |
  | - | - | - |
  | `email` | string | The group's email address |
  | `name` | string | The group name (max 75 characters) |
  | `description` | string | The group description (max 4096 characters) |
  | `whoCanJoin` | string | Who can join the group (ANYONE\_CAN\_JOIN, ALL\_IN\_DOMAIN\_CAN\_JOIN, INVITED\_CAN\_JOIN, CAN\_REQUEST\_TO\_JOIN) |
  | `whoCanViewMembership` | string | Who can view group membership |
  | `whoCanViewGroup` | string | Who can view group messages |
  | `whoCanPostMessage` | string | Who can post messages to the group |
  | `allowExternalMembers` | string | Whether external users can be members |
  | `allowWebPosting` | string | Whether web posting is allowed |
  | `primaryLanguage` | string | The group's primary language |
  | `isArchived` | string | Whether messages are archived |
  | `archiveOnly` | string | Whether the group is archive-only (inactive) |
  | `messageModerationLevel` | string | Message moderation level |
  | `spamModerationLevel` | string | Spam handling level (ALLOW, MODERATE, SILENTLY\_MODERATE, REJECT) |
  | `replyTo` | string | Default reply destination |
  | `customReplyTo` | string | Custom email for replies |
  | `includeCustomFooter` | string | Whether to include custom footer |
  | `customFooterText` | string | Custom footer text (max 1000 characters) |
  | `sendMessageDenyNotification` | string | Whether to send rejection notifications |
  | `defaultMessageDenyNotificationText` | string | Default rejection message text |
  | `membersCanPostAsTheGroup` | string | Whether members can post as the group |
  | `includeInGlobalAddressList` | string | Whether included in Global Address List |
  | `whoCanLeaveGroup` | string | Who can leave the group |
  | `whoCanContactOwner` | string | Who can contact the group owner |
  | `favoriteRepliesOnTop` | string | Whether favorite replies appear at top |
  | `whoCanApproveMembers` | string | Who can approve new members |
  | `whoCanBanUsers` | string | Who can ban users |
  | `whoCanModerateMembers` | string | Who can manage members |
  | `whoCanModerateContent` | string | Who can moderate content |
  | `whoCanAssistContent` | string | Who can assist with content metadata |
  | `enableCollaborativeInbox` | string | Whether collaborative inbox is enabled |
  | `whoCanDiscoverGroup` | string | Who can discover the group |
  | `defaultSender` | string | Default sender identity (DEFAULT\_SELF or GROUP) |
</ReferenceDetails>

### Google Groups Update Settings [#google-groups-update-settings]

Update the settings for a Google Group including access permissions, moderation, and posting options

<ReferenceDetails>
  #### Input [#input-15]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `groupEmail` | string | Yes | The email address of the group (e.g., [team@example.com](mailto:team@example.com)) |
  | `name` | string | No | The group name (max 75 characters) |
  | `description` | string | No | The group description (max 4096 characters) |
  | `whoCanJoin` | string | No | Who can join: ANYONE\_CAN\_JOIN, ALL\_IN\_DOMAIN\_CAN\_JOIN, INVITED\_CAN\_JOIN, CAN\_REQUEST\_TO\_JOIN |
  | `whoCanViewMembership` | string | No | Who can view membership: ALL\_IN\_DOMAIN\_CAN\_VIEW, ALL\_MEMBERS\_CAN\_VIEW, ALL\_MANAGERS\_CAN\_VIEW |
  | `whoCanViewGroup` | string | No | Who can view group messages: ANYONE\_CAN\_VIEW, ALL\_IN\_DOMAIN\_CAN\_VIEW, ALL\_MEMBERS\_CAN\_VIEW, ALL\_MANAGERS\_CAN\_VIEW, ALL\_OWNERS\_CAN\_VIEW |
  | `whoCanPostMessage` | string | No | Who can post: NONE\_CAN\_POST, ALL\_MANAGERS\_CAN\_POST, ALL\_MEMBERS\_CAN\_POST, ALL\_OWNERS\_CAN\_POST, ALL\_IN\_DOMAIN\_CAN\_POST, ANYONE\_CAN\_POST |
  | `allowExternalMembers` | string | No | Whether external users can be members: true or false |
  | `allowWebPosting` | string | No | Whether web posting is allowed: true or false |
  | `primaryLanguage` | string | No | The group's primary language (e.g., en) |
  | `isArchived` | string | No | Whether messages are archived: true or false |
  | `archiveOnly` | string | No | Whether the group is archive-only (inactive): true or false |
  | `messageModerationLevel` | string | No | Message moderation: MODERATE\_ALL\_MESSAGES, MODERATE\_NON\_MEMBERS, MODERATE\_NEW\_MEMBERS, MODERATE\_NONE |
  | `spamModerationLevel` | string | No | Spam handling: ALLOW, MODERATE, SILENTLY\_MODERATE, REJECT |
  | `replyTo` | string | No | Default reply: REPLY\_TO\_CUSTOM, REPLY\_TO\_SENDER, REPLY\_TO\_LIST, REPLY\_TO\_OWNER, REPLY\_TO\_IGNORE, REPLY\_TO\_MANAGERS |
  | `customReplyTo` | string | No | Custom email for replies (when replyTo is REPLY\_TO\_CUSTOM) |
  | `includeCustomFooter` | string | No | Whether to include custom footer: true or false |
  | `customFooterText` | string | No | Custom footer text (max 1000 characters) |
  | `sendMessageDenyNotification` | string | No | Whether to send rejection notifications: true or false |
  | `defaultMessageDenyNotificationText` | string | No | Default rejection message text |
  | `membersCanPostAsTheGroup` | string | No | Whether members can post as the group: true or false |
  | `includeInGlobalAddressList` | string | No | Whether included in Global Address List: true or false |
  | `whoCanLeaveGroup` | string | No | Who can leave: ALL\_MANAGERS\_CAN\_LEAVE, ALL\_MEMBERS\_CAN\_LEAVE, NONE\_CAN\_LEAVE |
  | `whoCanContactOwner` | string | No | Who can contact owner: ALL\_IN\_DOMAIN\_CAN\_CONTACT, ALL\_MANAGERS\_CAN\_CONTACT, ALL\_MEMBERS\_CAN\_CONTACT, ANYONE\_CAN\_CONTACT |
  | `favoriteRepliesOnTop` | string | No | Whether favorite replies appear at top: true or false |
  | `whoCanApproveMembers` | string | No | Who can approve members: ALL\_OWNERS\_CAN\_APPROVE, ALL\_MANAGERS\_CAN\_APPROVE, ALL\_MEMBERS\_CAN\_APPROVE, NONE\_CAN\_APPROVE |
  | `whoCanBanUsers` | string | No | Who can ban users: ALL\_MEMBERS, OWNERS\_AND\_MANAGERS, OWNERS\_ONLY, NONE |
  | `whoCanModerateMembers` | string | No | Who can manage members: OWNERS\_ONLY, OWNERS\_AND\_MANAGERS, ALL\_MEMBERS, NONE |
  | `whoCanModerateContent` | string | No | Who can moderate content: OWNERS\_ONLY, OWNERS\_AND\_MANAGERS, ALL\_MEMBERS, NONE |
  | `whoCanAssistContent` | string | No | Who can assist with content metadata: OWNERS\_ONLY, OWNERS\_AND\_MANAGERS, ALL\_MEMBERS, NONE |
  | `enableCollaborativeInbox` | string | No | Whether collaborative inbox is enabled: true or false |
  | `whoCanDiscoverGroup` | string | No | Who can discover: ANYONE\_CAN\_DISCOVER, ALL\_IN\_DOMAIN\_CAN\_DISCOVER, ALL\_MEMBERS\_CAN\_DISCOVER |
  | `defaultSender` | string | No | Default sender: DEFAULT\_SELF or GROUP |

  #### Output [#output-15]

  | Parameter | Type | Description |
  | - | - | - |
  | `email` | string | The group's email address |
  | `name` | string | The group name |
  | `description` | string | The group description |
  | `whoCanJoin` | string | Who can join the group |
  | `whoCanViewMembership` | string | Who can view group membership |
  | `whoCanViewGroup` | string | Who can view group messages |
  | `whoCanPostMessage` | string | Who can post messages to the group |
  | `allowExternalMembers` | string | Whether external users can be members |
  | `allowWebPosting` | string | Whether web posting is allowed |
  | `primaryLanguage` | string | The group's primary language |
  | `isArchived` | string | Whether messages are archived |
  | `archiveOnly` | string | Whether the group is archive-only |
  | `messageModerationLevel` | string | Message moderation level |
  | `spamModerationLevel` | string | Spam handling level |
  | `replyTo` | string | Default reply destination |
  | `customReplyTo` | string | Custom email for replies |
  | `includeCustomFooter` | string | Whether to include custom footer |
  | `customFooterText` | string | Custom footer text |
  | `sendMessageDenyNotification` | string | Whether to send rejection notifications |
  | `defaultMessageDenyNotificationText` | string | Default rejection message text |
  | `membersCanPostAsTheGroup` | string | Whether members can post as the group |
  | `includeInGlobalAddressList` | string | Whether included in Global Address List |
  | `whoCanLeaveGroup` | string | Who can leave the group |
  | `whoCanContactOwner` | string | Who can contact the group owner |
  | `favoriteRepliesOnTop` | string | Whether favorite replies appear at top |
  | `whoCanApproveMembers` | string | Who can approve new members |
  | `whoCanBanUsers` | string | Who can ban users |
  | `whoCanModerateMembers` | string | Who can manage members |
  | `whoCanModerateContent` | string | Who can moderate content |
  | `whoCanAssistContent` | string | Who can assist with content metadata |
  | `enableCollaborativeInbox` | string | Whether collaborative inbox is enabled |
  | `whoCanDiscoverGroup` | string | Who can discover the group |
  | `defaultSender` | string | Default sender identity |
</ReferenceDetails>
