-
1
Decide which Workspace surfaces you actually need before touching OAuth
Google Workspace exposes four integration surfaces to a CRM: Gmail, Calendar, Drive, and identity through Google SSO. You do not have to turn them all on at once, and you probably should not. Start with the surfaces your sales motion depends on. If reps live in Gmail and close deals over email threads, Gmail sync is non-negotiable. If every deal has a customer meeting, Calendar sync comes next. Drive attachments matter most for teams who send proposals, signed contracts, or technical scoping docs. SSO is a security and lifecycle question, not a productivity one, and belongs in a separate decision. Write down which teams need which surfaces before you request a single OAuth scope. The point is to avoid asking users to approve consent screens for data your CRM will never read. Overbroad scopes get flagged in security reviews, slow down enterprise rollouts, and give auditors a reason to pause the project right when it is picking up steam.
- List the four surfaces (Gmail, Calendar, Drive, SSO) and mark which teams need each one
- Note any surface where you only need read access, not read and write; narrower scopes clear security review faster
- Capture the data retention policy for each surface so you can configure it in the CRM before the first sync fires
- Share the scope list with your security team and get written sign-off before building anything
Tip: If you cannot name the business outcome a scope unlocks, do not request the scope. Every unused permission becomes a security finding later.
-
2
Install the CRM integration and approve OAuth scopes in the admin console
Google Workspace uses OAuth 2.0 for every CRM integration, which means a super admin has to approve the app and its scopes before any user can connect. Open the Google Admin console, go to Security, then API Controls, then App access control. Find your CRM in the connected apps list, or add it by its OAuth client ID. Mark the app Trusted so users do not get an unverified-app warning on their first connection. Approve only the scopes you decided on in the previous step. Google splits scopes into non-sensitive, sensitive, and restricted tiers. Gmail read, Calendar read-write, and Drive file-level access are typically sensitive. Full Gmail access and full Drive access are restricted and require a Google-reviewed security assessment, which can take six to twelve weeks. Most CRMs offer narrower scope sets precisely to avoid that review. Pick the narrower option whenever your workflow allows it.
- Open Admin console → Security → API Controls → App access control
- Add the CRM app by OAuth client ID and mark it Trusted
- Approve only the scopes from your written list; reject anything beyond it
- Document the approval date and the admin who approved so the audit trail is clean
Tip: Restricted scopes are not forbidden, but they add six to twelve weeks for security assessment. Design around them when you can.
-
3
Configure Gmail sync direction, filters, and the shared-mailbox rules
Gmail sync is the single highest-value surface in this integration, and also the one most likely to generate noise if you configure it carelessly. Decide first whether you want one-way sync, where Gmail messages flow into the CRM and no CRM writes land in Gmail, or two-way sync, where messages sent from the CRM also appear in the rep inbox. Two-way is more useful for reps but requires send-on-behalf scopes and a careful read of your organization-wide DLP rules. Next, decide how messages map to records. Most CRMs match on the sender and recipient email domain and attach the thread to the matching contact and opportunity. Internal threads, system notifications, and personal messages should never land on a customer record. Build a filter that excludes your own corporate domain and a short list of noisy senders like calendar invites, newsletter platforms, and billing systems. Finally, decide what happens to shared mailboxes like sales@ and support@. Shared inboxes often need their own sync configuration with a different retention policy and visibility scope than individual rep inboxes.
- Pick one-way or two-way sync and document the reason
- Match messages to records on sender and recipient domain, not free-text name parsing
- Exclude your own corporate domain and noisy automated senders from CRM logging
- Give shared inboxes their own sync config with separate retention and visibility rules
- Set a maximum thread length (typically 50 messages) so pathologically long threads do not blow up record size
Tip: Sync direction is a one-way door for your users. Flipping it later means a change-management conversation with every rep. Pick carefully.
-
4
Set up Calendar sync with the right event visibility and ownership rules
Calendar sync should answer two questions on every event: does it belong to a CRM record, and who should see it inside the CRM. Match events to records the same way you matched Gmail threads: by attendee email domain. An event with three attendees from the same customer domain and two from your company is almost certainly a customer meeting and belongs on the opportunity. An event with only internal attendees is a team meeting and should not appear on any customer record. Decide what to do with private events. The cleanest policy is to respect the Google visibility flag: events marked private in Google stay private in the CRM, with only the organizer and time blocked out, no title or attendee list. Decide what happens to recurring events. A weekly check-in with a customer should log every instance against the record, but you probably do not want ninety meeting rows in six months. Compact recurring events into a single thread view with a count, or log only the first and last instance plus any instance where notes were added. Finally, give Calendar sync a bidirectional path. Reps who book meetings from inside the CRM expect that event to appear in Google Calendar with the right title, attendees, and conference link.
- Match events to records by attendee email domain
- Respect Google private-event visibility and surface only time plus organizer in the CRM
- Compact recurring events into a single thread view with a count
- Configure bidirectional sync so CRM-booked meetings appear in Google Calendar with conference links attached
Tip: Attach the Google Meet or Zoom link to the CRM meeting record on creation. Reps should never have to copy a link across tabs.
-
5
Wire up Drive attachments with a predictable folder structure
Drive integration can mean two very different things. The first and most common is per-record attachment, where a document uploaded to a CRM record is stored in Drive and referenced back from the record. The second is folder sync, where a shared Drive folder structure mirrors the account and opportunity hierarchy in the CRM. Per-record attachment is simpler to roll out and the right starting point for most teams. Create a top-level shared drive called something like CRM Attachments, then let the integration create a subfolder per account using the account ID or slug. Store opportunity documents in an opportunity subfolder underneath. Avoid folder structures based on rep names or regions; those break the moment a rep leaves or a territory changes. Set the default sharing policy to internal-only, with explicit per-document shares when a customer needs access. For CRMs that support Drive link previews, enable them so reps can see a thumbnail of the attached document without clicking out. For organizations with strong classification policies, apply Google Workspace labels on upload so DLP and retention rules fire automatically.
- Create a top-level shared drive called CRM Attachments owned by a service account, not a human
- Nest account subfolders under the shared drive using the stable account ID or slug, never rep name
- Nest opportunity subfolders under each account subfolder
- Set default sharing to internal-only and require explicit per-document shares for external access
- Apply Google Workspace labels on upload if your organization has DLP or retention classification
Tip: Own the shared drive from a service account, not a person. When the person leaves, the drive does not vanish with them.
-
6
Enable Google SSO through SAML or OIDC and plan the lifecycle hooks
Google SSO is the right default identity path for any team already running Google Workspace. Your CRM will typically support both SAML 2.0 and OIDC, and either works with Google Workspace. SAML is better understood by enterprise security teams and gets through security review faster. OIDC is simpler to configure and easier to debug. Pick based on which review you need to survive first. Configure Google as the identity provider in the admin console, download the metadata XML or the discovery document, and paste it into your CRM identity settings. Decide which users get provisioned automatically. If you want just-in-time provisioning, every user who successfully authenticates against Google will get a CRM account on first sign-in, which is convenient but makes seat accounting hard. If you want pre-provisioning, you push users from Google into the CRM through SCIM or a nightly export, which is tighter but requires more plumbing. Pick a deprovisioning path at the same time. When a user leaves Google Workspace, their CRM access must terminate automatically. The cleanest implementation is SCIM-based lifecycle events, so a disable in Google fires a disable in the CRM within minutes, not days.
- Decide SAML or OIDC based on which review you need to survive first
- Configure Google as the IdP and import metadata into the CRM identity settings
- Choose just-in-time or SCIM-based provisioning and document the seat accounting implications
- Wire deprovisioning so a Google Workspace disable terminates CRM access within minutes
- Enforce MFA at the Google level so you do not have to maintain a second factor inside the CRM
Tip: Deprovisioning is the control that matters most to security auditors. Build it on day one, not after the first ex-employee incident.
-
7
Backfill historical data, then run the first sync as a dry run
Once the integration is configured, you have two choices: backfill historical data or start from today. Backfilling lets reps see continuity on records that pre-date the integration. Starting fresh avoids a large first-sync spike and makes the data easier to reason about. For Gmail and Calendar, a thirty-to-ninety-day backfill is usually the right balance. Going further is possible but introduces more noise than value, because record matching gets fuzzier the older the message is. For Drive attachments, start from today unless you have a specific reason to backfill. Run the first sync as a dry run. Most CRMs offer a sandbox or preview mode where you can see which messages, events, and documents would attach to which records before any writes land in production. Walk through the preview with two or three representative users and look for obviously wrong matches. Common failure modes include messages attaching to the wrong contact because a shared alias was used, events attaching to the wrong account because a vendor used a customer domain, and documents attaching to a competitor record because of a stale lookup. Fix the matching rules before you flip the switch.
- Decide backfill window per surface and document the reason
- Run the first sync in sandbox or preview mode, never production
- Walk through the preview with three representative users and capture every mismatch
- Tune matching rules and re-run the preview until mismatches drop below five percent
Tip: A dry run that surfaces fifty wrong matches is a success. Those matches never land on customer records. A production first-sync with the same errors is a cleanup project.
-
8
Roll out to a pilot cohort before enabling the whole company
Roll out the integration to a pilot cohort of five to ten users before enabling the whole company. Pick users who are heavy Gmail and Calendar users, who have at least a quarter of history on their accounts, and who will tell you when something is wrong without waiting for you to ask. Run the pilot for a full week. In that week, watch three things: how many sync errors appear in the integration logs, how reps are correcting attachments manually, and whether the CRM activity timeline looks right on their top five accounts. Collect feedback at the end of the week with a structured survey or a thirty-minute group call. Fix anything that generates manual correction before expanding the rollout. When you expand, do it in waves aligned to teams, not alphabetically. A whole team learning the same integration at the same time generates less confusion than a mixed group where some reps have sync and others do not. Communicate what reps can expect to see in their activity timeline and what they should do if an attachment looks wrong. The cost of a bad rollout is weeks of lost trust in the CRM, which no amount of configuration fixes afterward.
- Pick five to ten pilot users who are heavy Workspace users and reliable feedback givers
- Run the pilot for one week with daily log reviews
- Collect structured feedback at the end of the week and triage issues before expanding
- Roll out in team-aligned waves, not alphabetically; a whole team learns together more effectively than a mixed group
- Publish a short rep guide covering what to expect in the activity timeline and how to flag bad attachments
Tip: Measure trust not usage. If reps are manually correcting attachments every day, the integration is not saving time; it is costing it. Fix the matching rules first.