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.
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 equivalentgcloud 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.
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.
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.
Allow service account key creation
The connector authenticates with a JSON key, so your organization must permit key creation on this service account. Theconstraints/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:
Grant the key admin role to whoever creates the key:
roles/orgpolicy.policyAdmin) can add a project-level exception. Save this as policy.yaml:
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.
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.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.
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.- Read-only
- Read/write
Paste this comma-separated list into the OAuth Scopes field:
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.
Configure the Google Workspace connector
- Cloud-hosted
- Self-hosted
Follow these instructions to use a built-in, no-code connector hosted by C1.Done. Your Google Workspace connector is now pulling access data into 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.
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.
5
Optional. Limit which accounts will be pulled into C1 or configure merge matching. You can change both later.
6
Click Create 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.