Search all guides

Reference · Tools

Google Workspace Admin integration

Manage users, groups, and ChromeOS devices in a Google Workspace

Action Productivity v1.0.0

The Google Workspace Admin node connects to the Admin SDK Directory API to create and update user accounts, manage group memberships, and administer ChromeOS devices in your domain. Use it to automate onboarding workflows that provision a new user, assign them to the right groups, and enroll their device — all in a single flow.

Works as
Action
Tool name
google_gsuite_admin
Operations
7 — Add to Group , Create , Delete , Get , Get Many and 2 more
Parameters
43
Outputs
Output, Error
Credentials
googleGSuiteAdminOAuth2Api
Official docs
Google Workspace Admin docs developers.google.com

What you can build with Google Workspace Admin

  • Create a new user account in the Google Workspace domain.
  • List all users in the domain with their profiles.
  • Add a user to a Google Workspace group.
  • Suspend or reactivate a ChromeOS device.
  • Update a user name, organisational unit or password.

Overview

Manage users, groups, and ChromeOS devices in a Google Workspace (formerly G Suite) domain via the Admin SDK Directory API.

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Google Workspace Admin OAuth2 API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
ChromeOS DevicechromeOsDevice
Groupgroup
Useruser

Operations

User (user)

OperationValueDescription
Add to GroupaddToGroupAdd a user to a group.
CreatecreateCreate a new user in the domain.
DeletedeleteDelete a user.
GetgetRetrieve a single user.
Get ManygetAllRetrieve many users.
Remove From GroupremoveFromGroupRemove a user from a group.
UpdateupdateUpdate an existing user.

Group (group)

OperationValueDescription
CreatecreateCreate a new group.
DeletedeleteDelete a group.
GetgetRetrieve a single group.
Get ManygetAllRetrieve many groups.
UpdateupdateUpdate an existing group.

ChromeOS Device (chromeOsDevice)

OperationValueDescription
Change StatuschangeStatusEnable or disable a ChromeOS device.
GetgetRetrieve a single ChromeOS device.
Get ManygetAllRetrieve many ChromeOS devices.
UpdateupdateUpdate a ChromeOS device’s properties.

Parameters

Add to Group takes no parameters of its own — see All Operations. Create takes no parameters of its own — see All Operations. Delete takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Remove From Group takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations. Create takes no parameters of its own — see All Operations. Delete takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations. Change Status takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations. Add to Group takes no parameters of its own — see All Operations. Create takes no parameters of its own — see All Operations. Delete takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Remove From Group takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations. Create takes no parameters of its own — see All Operations. Delete takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations. Change Status takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations. Add to Group takes no parameters of its own — see All Operations. Create takes no parameters of its own — see All Operations. Delete takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Remove From Group takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations. Create takes no parameters of its own — see All Operations. Delete takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations. Change Status takes no parameters of its own — see All Operations. Get takes no parameters of its own — see All Operations. Get Many takes no parameters of its own — see All Operations. Update takes no parameters of its own — see All Operations.

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNo(current default)Authentication method to use.
Options: the authentication choices available to your workspace — pick one from the dropdown.
Google AccountcredentialNo—Connect or select your Google account. (shown when Authentication is oAuth2)
Service Account EmailstringYes—The email address of the Google service account. (shown when Authentication is serviceAccount)
Private KeystringYes—The private key from the service account JSON key file. (shown when Authentication is serviceAccount)
UserstringYes—User email address or unique ID
Group (groupId)stringYes—Group email address or unique ID
First NamestringYes—
Last NamestringYes—
PasswordstringYes—Minimum 8 characters, maximum 100 characters.
UsernamestringYes—The local part of the new user’s primary email (before the @).
DomainstringYes—The domain for the new user’s primary email address.
Additional Fields (additionalFields)collectionNo{}
Options: directorySyncAdmin
— Change Password at Next LoginbooleanNofalse
— PhonesarrayNo[]Array of phone objects: [{ type, value, primary }]
— Secondary EmailsarrayNo[]Array of email objects: [{ type, address }]
— RolesmultiOptionsNo[]
Options: directorySyncAdmin, groupsAdmin, groupsEditor, groupsReader, helpDeskAdmin, inventoryReportingAdmin, mobileAdmin, servicesAdmin, storageAdmin, superAdmin, userManagement
— Custom FieldsarrayNo[]Array of { schemaName, fieldName, value } objects.
Output (output)optionsYessimplified
Options: simplified, raw, select
FieldsmultiOptionsNo[]
Options: creationTime, isAdmin, kind, lastLoginTime, name, primaryEmail, suspended
Custom FieldsoptionsYesbasicHow much of the user record to return: ‘basic’ omits custom schema fields, ‘custom’ returns only the schemas named in Custom Schema Names or IDs, ‘full’ returns every field including all custom schemas.
Options: basic, custom, full
Custom Schema Names or IDsmultiOptionsNo[]Comma-separated schema names whose fields are fetched.
Return All (returnAll)booleanNofalse
Limit (limit)numberNo100Max number of results to return (1-500).
Filter (filter)collectionNo{}
— CustomerstringNo—
— DomainstringNo—
— QuerystringNo—
— Show DeletedbooleanNofalse
Sort (sort)fixedCollectionNo{}
Options: email, annotatedLocation
— Order ByoptionsNo—
Options: email, familyName, givenName
— Sort OrderoptionsNoASCENDING
Options: ASCENDING, DESCENDING
Update Fields (updateFields)collectionNo{}
Options: directorySyncAdmin
— Change Password at Next LoginbooleanNofalse
— First NamestringNo—
— Last NamestringNo—
— PasswordstringNo—
— Primary EmailstringNo—
— PhonesarrayNo[]Array of phone objects: [{ type, value, primary }]
— Secondary EmailsarrayNo[]Array of email objects: [{ type, address }]
— SuspendbooleanNofalse
— RolesmultiOptionsNo[]
Options: directorySyncAdmin, groupsAdmin, groupsEditor, groupsReader, helpDeskAdmin, inventoryReportingAdmin, mobileAdmin, servicesAdmin, storageAdmin, superAdmin, userManagement
— Custom FieldsarrayNo[]Array of { schemaName, fieldName, value } objects.
Group (groupId)stringYes—Group email address or unique ID
Group NamestringNo—
Group EmailstringYes—
Additional Fields (additionalFields)collectionNo{}
Options: directorySyncAdmin
— DescriptionstringNo—
Return All (returnAll)booleanNofalse
Limit (limit)numberNo100
Filter (filter)collectionNo{}
— CustomerstringNo—
— DomainstringNo—
— QuerystringNo—
— User IDstringNo—Email or ID of a user; returns groups they belong to.
Sort (sort)fixedCollectionNo{}
Options: email, annotatedLocation
— Order ByoptionsNoemail
Options: email
— Sort OrderoptionsNoASCENDING
Options: ASCENDING, DESCENDING
Update Fields (updateFields)collectionNo{}
Options: directorySyncAdmin
— DescriptionstringNo—
— EmailstringNo—
— NamestringNo—
Device IDstringYes—
Output (deviceProjection)optionsYesbasicHow much of the ChromeOS device record to return: ‘basic’ returns the common identity and status fields, ‘full’ adds the detailed hardware, recent-users and activity reports. ChromeOS devices have no custom schemas.
Options: basic, full
Return All (returnAll)booleanNofalse
Limit (limit)numberNo100
Include ChildrenbooleanNofalseInclude devices from child organizational units.
Filter (filter)collectionNo{}
— Organizational Unit PathstringNo—
— QuerystringNo—
Sort (sort)fixedCollectionNo{}
Options: email, annotatedLocation
— Order ByoptionsNo—
Options: annotatedLocation, annotatedUser, lastSync, notes, serialNumber, status
— Sort OrderoptionsNo—
Options: ascending, descending
Update Fields (updateOptions)collectionNo{}
— Move to Organizational Unit PathstringNo—
— Annotated UserstringNo—
— Annotated LocationstringNo—
— Annotated Asset IDstringNo—
— NotesstringNo—
StatusoptionsYesreenable
Options: reenable, disable

Output Data

The API result becomes the output item’s JSON. Unlike most connector nodes this one does not pass the incoming item’s fields through and does not forward binary data — reference upstream values before this node, or re-attach them afterwards with a Merge or Edit Fields node.

User: Get Many, Group: Get Many and ChromeOS Device: Get Many fan out: they emit one output item per record. A listing that matches nothing emits no output item at all for that input item, so the branch goes quiet rather than producing an empty result. Every other operation emits exactly one output item per input item.

With error handling set to continue, a failed item is not dropped — it leaves through the Output port carrying error, resource and operation instead of a record. Check for error before treating an item as a result, or use errorPort to keep failures on their own branch.

Resource: OperationOutput item JSON
User: Add to Groupadded: true
User: Remove From Groupremoved: true
User: Deletedeleted: true
User: Create, User: UpdateThe user record returned by the API
User: Get, User: Get ManyWith Output simplified: kind, id, primaryEmail, name, isAdmin, lastLoginTime, creationTime, suspended. With raw or select: the record as the API returns it
Group: Create, Group: Get, Group: UpdateThe group record returned by the API
Group: Get ManyOne item per group record
Group: Deletesuccess: true
ChromeOS Device: Get, ChromeOS Device: UpdateThe device record returned by the API
ChromeOS Device: Get ManyOne item per device record
ChromeOS Device: Change Statussuccess: true and action, echoing the status you applied

Reference the result downstream by expression, e.g. {{ $json.id }}.

Example Configuration

Create a new user in the domain:

{
  "type": "google_gsuite_admin",
  "parameters": {
    "resource": "user",
    "operation": "create",
    "username": "john.doe",
    "firstName": "John",
    "lastName": "Doe",
    "password": "SecurePass123!",
    "domain": "company.com",
    "additionalFields": {
      "changePasswordAtNextLogin": true,
      "phones": [{ "value": "+1-555-0123", "type": "work" }]
    }
  }
}

List users in one domain, sorted by email:

{
  "type": "google_gsuite_admin",
  "parameters": {
    "resource": "user",
    "operation": "getAll",
    "returnAll": false,
    "limit": 50,
    "filter": {
      "domain": "company.com",
      "query": "orgUnitPath=/Engineering"
    },
    "sort": {
      "sortRules": {
        "orderBy": "email",
        "sortOrder": "ASCENDING"
      }
    },
    "projection": "full",
    "output": "simplified"
  }
}

Create a group:

{
  "type": "google_gsuite_admin",
  "parameters": {
    "resource": "group",
    "operation": "create",
    "name": "Engineering Team",
    "email": "engineering@company.com",
    "additionalFields": {
      "description": "Main engineering collaboration group"
    }
  }
}

Re-assign a ChromeOS device and record where it lives:

{
  "type": "google_gsuite_admin",
  "parameters": {
    "resource": "chromeOsDevice",
    "operation": "update",
    "deviceId": "device123456",
    "updateOptions": {
      "orgUnitPath": "/Engineering/Hardware",
      "annotatedUser": "john.doe@company.com",
      "annotatedLocation": "Building A, Floor 2, Desk 15",
      "annotatedAssetId": "HWENG-001",
      "notes": "Assigned to new hire in hardware team"
    }
  }
}

Add a user to a group:

{
  "type": "google_gsuite_admin",
  "parameters": {
    "resource": "user",
    "operation": "addToGroup",
    "userId": "john.doe@company.com",
    "groupId": "engineering@company.com"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage users, groups, and ChromeOS devices in a Google Workspace domain via the Admin SDK Directory API. Use when you need to create or update user accounts, manage group memberships, or administer ChromeOS devices. Returns user profiles, group details, or device information.

Error Prevention

  • Always specify resource first to determine available operations
  • Ensure userId/groupId/deviceId are provided for non-create operations
  • Use proper email formats for user and group identifiers
  • Validate organizational unit paths start with ”/”

Frequently asked questions

What credentials do I need to connect this node?

You need a `googleGSuiteAdminOAuth2Api` OAuth2 credential configured in BusyBot. This requires a Google Cloud project with the Admin SDK API enabled, and the OAuth consent screen scoped with admin directory permissions. The authenticating account must be a super admin or delegated admin in your Google Workspace domain.

What is the right order to fill in the node's parameters?

Always set the `resource` parameter first — it controls which operations become available (User, Group, or ChromeOS Device). Once a resource is selected, the relevant operation fields appear. If you configure other parameters before choosing a resource, you may not see the fields you need.

Which identifier should I use for users and groups — an ID or an email address?

Both are accepted, but email format is the most readable and least error-prone option. For users, provide the full primary email address (e.g. `jane@example.com`). For groups, use the group's email address. Either way, the value must be provided for every operation except create — omitting it will cause an error.

What format does an organizational unit path need to be in?

Organizational unit paths must begin with a forward slash, for example `/Sales/West` rather than `Sales/West`. Omitting the leading slash is a common mistake that causes the API to reject the request when creating or moving users into an OU.

What does this node return, and how do I use the output in later steps?

The node outputs on the `main` channel and returns structured data matching the resource type: a user profile object for User operations, group details for Group operations, or device information for ChromeOS Device operations. Downstream nodes can reference these fields directly — for example, pulling the newly created user's `primaryEmail` to send a welcome message.

Build with Google Workspace Admin

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need googleGSuiteAdminOAuth2Api credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.