Skip to main content
This is an updated and improved version of the Google Workspace integration! If you’re setting up a Google Workspace connector with C1 for the first time, you’re in the right place.

Capabilities

The Google Workspace connector supports automatic account provisioning and deprovisioning.

Connector actions

Connector actions are custom capabilities that extend C1 automations with app-specific operations. You can use connector actions in the Perform connector action automation step.

Before you begin

This connector authenticates with a service account and domain-wide delegation, not per-user OAuth. Every call reaches Google as one service account impersonating a Workspace super admin. You need:
  • Google Cloud console access to a project where you can enable APIs and create a service account: project Owner, or Editor plus the ability to manage service accounts.
  • Permission to create a service account key (iam.serviceAccountKeys.create), granted by the Service Account Key Admin role (roles/iam.serviceAccountKeyAdmin). See Allow service account key creation.
  • A Google Workspace super admin to authorize domain-wide delegation and to act as the impersonated administrator.
  • Either the Connector Administrator or Super Administrator role in C1.
Check your organization’s key policy first. Google organizations created on or after May 3, 2024 block service account key creation by default. The connector requires a JSON key, so confirm you can create one before you start. See Allow service account key creation.

What the Google Cloud project provides

Domain-wide delegation is configured in the Google Admin console, not in Google Cloud. Granting the service account a Google Cloud IAM role does not give it access to Workspace data, and no project role is required for this connector.

Set up the Google Cloud project

This part happens entirely in Google Cloud and needs the Google Cloud permissions listed in Before you begin. The Workspace super admin isn’t needed until Grant domain-wide delegation in Google Workspace. Each section below gives the Google Cloud console steps and the equivalent gcloud commands. Use whichever you prefer. To use the CLI, install the gcloud CLI and run gcloud auth login first.

Create or select a project

Create a new Google Cloud project dedicated to this connector, or select an existing one.
1
Sign in to https://console.cloud.google.com with an account that can create projects, enable APIs, and manage service accounts.
2
In the toolbar, open the project select dropdown and click NEW PROJECT.
3
Create a new project for your organization:
  • Project Name: Choose a name, such as “C1 Integration”
  • Organization/Location: Choose the appropriate Organization/Location
4
After the project is created, make sure the correct project is selected in the dropdown in the toolbar at the top of the page.
From the command line:
The Workspace APIs this connector uses don’t require a billing account.

Enable the APIs

Enable the Admin SDK API, plus the Cloud Identity API and, if you use group settings, the Groups Settings API.
The Admin SDK API covers the Directory, Reports, and Data Transfer APIs. Enabling it once is enough. There is no separate Data Transfer API to enable, even though the connector requests the admin.datatransfer scope.
1
In the navigation menu, navigate to APIs & Services > Library.
2
Search for and select the Admin SDK API, then click Enable.
3
Repeat for the Cloud Identity API.
4
Optional. If you want to use the group settings connector action, repeat for the Groups Settings API.
From the command line:
To confirm which APIs are enabled on the project:

Create a service account

Create the service account C1 will authenticate as.
1
In the navigation menu, navigate to APIs & Services > Credentials.
2
Select CREATE CREDENTIALS > Service Account.
3
Under Service account details, fill in the following:
  • Service account name: C1 Integration
  • Service account description: for example, “Service account for C1 Google Workspace Integration”
  • Click CREATE AND CONTINUE
4
Under Grant this service account access to a project, click CONTINUE without selecting a role. The connector’s access comes from domain-wide delegation, so no project role is required.
5
Leave Grant users access to this service account blank.
6
Click DONE.
From the command line:
Earlier versions of this guide granted the service account the Editor role. That role is not needed and grants broad access to your Google Cloud project. If you already granted it, you can safely remove it.

Allow service account key creation

The connector authenticates with a JSON key, so your organization must permit key creation on this service account. The constraints/iam.disableServiceAccountKeyCreation organization policy blocks key creation. Google enforces this policy by default for organizations created on or after May 3, 2024, so new organizations hit it unless an administrator grants an exception. If the policy blocks you, key creation fails with:
In the console, the ADD KEY option is unavailable and Google reports that service account key creation is disabled. Permissions to check: Grant the key admin role to whoever creates the key:
Check whether the organization policy is enforced on your project:
If it is enforced, a user with the Organization Policy Administrator role (roles/orgpolicy.policyAdmin) can add a project-level exception. Save this as policy.yaml:
Then apply it:
This exception applies only to the project you name. Enforcement elsewhere in your organization is unchanged. If your organization manages exceptions with tags rather than per-project policies, see Google’s Organization policies and tags documentation.
Google recommends against long-lived service account keys and prefers Workload Identity Federation where it’s available. This connector requires a JSON key, so treat it as a sensitive credential: store it in a secrets manager, never commit it to source control, and rotate it on a schedule. See Google’s best practices for managing service account keys.

Create the key and get the unique ID

Generate the service account’s JSON key and record its numeric unique ID, which domain-wide delegation requires.
1
Navigate back to APIs & Services > Credentials and select the service account you just created.
2
Click the service account’s email address. Locate and save the Unique ID, a numeric string such as 108123456789012345678. The service account’s details page also shows this value as the OAuth 2 Client ID.
Do not confuse the Unique ID with the service account’s email address. Domain-wide delegation requires the numeric ID.
3
On the Service account details page, click KEYS.
4
Click ADD KEY > Create new key.
5
Choose JSON and click CREATE.
6
Keep the downloaded file somewhere safe. Google does not let you download it again.
From the command line:
Retrieve the numeric unique ID you’ll use for domain-wide delegation:
To review the keys that exist on the service account:

Grant domain-wide delegation in Google Workspace

Domain-wide delegation authorizes the service account to call Workspace APIs on behalf of your organization. Configure it in the Google Admin console.
1
Go to https://admin.google.com as a SUPER ADMIN.
2
In the navigation menu, select Security > Access and data control > API Controls.
3
Click MANAGE DOMAIN WIDE DELEGATION.
4
Click Add new and fill out the form:
  • Client ID: The service account’s Unique ID
  • OAuth Scopes: Copy and paste in the relevant scopes from OAuth scopes below
5
Click AUTHORIZE.

OAuth scopes

Choose one of the two sets below. Read-only access lets C1 sync access data. Read/write access lets C1 sync access data and provision access.
Paste this comma-separated list into the OAuth Scopes field:
The write scopes let C1 provision and deprovision access. If you don’t want C1 to perform these tasks, use the read-only scope set. Read-only still syncs users, groups, and roles, so it’s sufficient when you use Google Workspace as your directory and run access reviews.

Find your customer ID and primary domain

The connector configuration needs your Google Workspace customer ID and primary domain, both available in the Admin console.
1
In the Google Admin console, select Account > Account Settings.
2
Copy the Customer ID from this page.
3
In the navigation panel on the left, click Account > Domains.
4
Click Manage Domains. Locate and copy the domain labeled as the Primary Domain in the Type column.
Done. Next, move on to the connector configuration instructions.

Configure the Google Workspace connector

This task requires either the Connector Administrator or Super Administrator role in C1.
Follow these instructions to use a built-in, no-code connector hosted by C1.
1
In C1, navigate to Integrations > Connectors and click Add connector.
2
Search for Google Workspace v2 and click Add.
3
Choose how to set up the new Google Workspace connector:
  • Add the connector to a currently unmanaged app (select from the list of apps that were discovered in your identity, SSO, or federation provider that aren’t yet managed with C1)
  • Add the connector to a managed app (select from the list of existing managed apps)
  • Create a new managed app
4
Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of C1 users. Setting multiple owners is allowed.
5
Click Next.
  • If you are the connector owner, go on to the next step.
  • If someone else is the connector owner, you can stop here. C1 will notify the connector owner by email that their help is needed to complete the setup process.
6
Find the Settings area of the page and click Edit.
7
In the Customer ID field, enter the Google Workspace customer ID.
8
Optional. If you want to limit which domains C1 syncs, in the Domain field, enter your primary domain. If you leave this field blank, C1 will sync all available domains.
9
In the Administrator email field, enter the email address of a Google Workspace super admin. The service account impersonates this user.
10
In the Credentials (JSON) area, click Choose file and upload the file.
11
Click Save.
12
The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.
Done. Your Google Workspace connector is now pulling access data into C1.

Set Google Workspace as your C1 directory

If Google Workspace is your source of truth for who works at your company, designate the connector’s app as your directory. C1 then creates a C1 user for each Workspace account it syncs, and accounts from your other connectors attach to those users.
Importing users and groups doesn’t require provisioning. If all you want is a directory and access reviews, the read-only scope set in OAuth scopes is sufficient, and the service account still needs no Google Cloud IAM role.
1
Wait for the connector’s first sync to finish. An app becomes available to select only after it has synced at least once.
2
In C1, navigate to Directory > Directory sources.
3
On the Directories tab, click Add directory data source.
4
Select the app your Google Workspace connector is attached to.
6
Click Create directory.
For how directory accounts become C1 users, and how accounts from non-directory apps find an owner, see Connect a directory.

What’s next?

If Google Workspace is your company’s identity provider (meaning that it is used to SSO into other software), the integration sync will automatically create applications in C1 for all of your SCIMed software. Before you move on, review the Create applications page for important information about how to set up integrations with the SCIMed apps.

Troubleshooting the Google Workspace integration

When adding permissions to my Google Workspace API Client permissions I get authorization errors

Example error: error using connector deprovision [attempt #3]: error: delete resource failed: googleapi: Error 403: Request had insufficient authentication scopes. Details: [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "googleapis.com", "metadata": { "method": "ccc.hosted.frontend.directory.v1.DirectoryUsers.Update", "service": "admin.googleapis.com" }, "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT" } ] More details: Reason: insufficientPermissions, Message: Insufficient Permission To resolve this issue: Remove the Google Workspace API Client, then re-add with the correct permissions.
1
Copy the Client ID.
2
Delete the API Client.
3
Add a new Client ID.
4
Re-add the relevant scopes from OAuth scopes.