CRMLynk
  • Privacy
  • Terms
  • Support
  • Portal

Last Updated: September 3, 2026

Prefer a PDF or Markdown copy? Download .md  ·  Download .pdf

Switching your SeedlyCRM to CRMLynk managed Google access

This guide is for operators who already built their own Google Cloud project and OAuth app to connect Google services to SeedlyCRM, and now want CRMLynk to handle it instead.

If you have never set up a Google Cloud project, skip to Fresh setup at the bottom. It is shorter.

Read the What you lose section before you start. There is one capability that goes away, and one step that will break your existing connections if you skip it.


What actually changes

Today, your SeedlyCRM deployment holds your own GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET. Your users see your app name on the Google consent screen, and you are responsible for your own Google verification, your own redirect URIs, and your own API access applications.

After switching, SeedlyCRM sends users to CRMLynk, CRMLynk builds the consent screen with its own credentials, and hands the resulting tokens back to your deployment. Your users see “CRMLynk” on the consent screen. You hold no Google credentials at all.

Your data does not move. Tokens are still stored encrypted in your own Convex deployment. CRMLynk holds them only for a five minute retrieval window during the connect flow.

What you gain

  • No Google verification of your own. CRMLynk’s OAuth verification was approved on 2026-09-03 for the sensitive scopes listed below. Google’s sensitive scope review typically takes several weeks and has to be redone whenever you change your consent screen.
  • No redirect URI maintenance. CRMLynk’s redirect URIs are already registered and verified.
  • Google Business Profile API access. GBP access is granted per Google Cloud project and Google allows only one project per company. CRMLynk’s project is allowlisted. Without that allowlisting, every GBP call fails with a zero quota error.
  • A Google Ads developer token. Ads API calls require an approved developer token in addition to OAuth. CRMLynk supplies one.

Scopes CRMLynk is approved for

Google service Scope
Google Analytics (read) analytics.readonly
Google Calendar calendar, calendar.events
Google Ads adwords
Google Ads conversions datamanager
Google Business Profile business.manage
Search Console (read) webmasters.readonly
Drive and Sheets, per file drive.file

What you lose

Gmail sync stops working.

Gmail scopes are what Google calls “restricted”, a tier above “sensitive”. They require an annual third party security assessment (CASA) that costs several thousand dollars. CRMLynk deliberately does not carry restricted scopes, which is what lets a subscription start from $49 a month.

If Gmail sync currently works on your deployment through your own verified Google app, switching to CRMLynk turns it off. CRMLynk removes Gmail scopes from any consent request it receives, so reconnecting will not bring it back.

Your options:

  • Keep running your own Google app, and do not switch. Everything below is optional.
  • Switch, and use a different email path. Outlook and Microsoft 365 mail are unaffected and are covered by CRMLynk’s Microsoft publisher verification.
  • Switch now and wait. Gmail is planned for a later phase, with no committed date.

Google Sheets access becomes per file. Instead of reaching any spreadsheet in the account, the Sheets and Drive workflow steps open a file picker, and the file you pick is the file the CRM can touch. This requires SeedlyCRM 5.7.1 or newer. See If you are below 5.7.1.


The step people skip

Every existing Google connection must be reconnected after you switch.

A Google refresh token is bound to the OAuth client that created it. Your existing connections hold refresh tokens minted by your Google app. After you switch, SeedlyCRM routes all refreshes through CRMLynk, which presents CRMLynk’s credentials. Google rejects that pairing.

SeedlyCRM does not record which OAuth client issued each connection, so it cannot detect this and reconnect for you.

Symptom if you skip it: connections look fine until the current access token expires, usually within an hour, then every Google feature on that connection starts failing to refresh. It looks like an outage rather than a setup step, which is why it is worth doing deliberately up front.

Reconnecting takes about a minute per connection and does not delete anything.


Steps

1. Subscribe

Go to crmlynk.com/subscribe. You will need your Convex site URL, which is where your SeedlyCRM backend runs.

It ends in .convex.site and looks like https://cheerful-hedgehog-123.convex.site.

To find it, open the Convex dashboard for your production deployment. If the URL you see ends in .convex.cloud, change .cloud to .site, keeping the name identical.

Do not enter the address your team uses to log in to the CRM. That is your app domain, not your backend, and CRMLynk cannot reach it. The subscribe form will reject a wrong URL and tell you what to fix.

Your API key arrives by email as soon as payment clears. It starts with sk_live_. It is also shown on the page you land on after checkout.

2. Set two environment variables

Against your production Convex deployment:

npx convex env set --prod CRMLYNK_URL https://auth.crmlynk.com
npx convex env set --prod CRMLYNK_API_KEY sk_live_your_key_here

Managed mode turns on only when both are set. Setting one does nothing, which is deliberate, so a half finished switch cannot break a working install.

3. Leave your old Google credentials alone for now

Do not delete GOOGLE_CLIENT_ID or GOOGLE_CLIENT_SECRET yet. They are ignored while managed mode is on, and keeping them means step 6 is a one line rollback if you hit a problem.

4. Reconnect every Google integration

In the CRM, go to each place a Google account is connected and reconnect it:

  • Settings, Integrations, for the Google Business Profile, Ads and Analytics connection
  • Each user’s own Calendar connection, under their account connections

You will see the CRMLynk consent screen instead of your own app name. That is the confirmation that managed mode is live.

Work through every sub-account. A connection you forget will keep failing silently until someone notices a stale dashboard.

5. Verify

Load a dashboard that reads Google data and confirm it populates. Analytics and Business Profile are the quickest to eyeball because they render on the main dashboard.

If a connection errors, reconnect it once more. If it still errors, email [email protected] with your Convex site URL and the error text.

6. Clean up, once you are confident

After a few days of everything working:

  • Remove GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET from your Convex environment.
  • Leave your old Google Cloud project alone, or delete it. If you delete it, understand that recreating a verified app later takes weeks, so keep it if there is any chance you will go back for Gmail.

Rolling back

Remove the two CRMLynk variables and your deployment returns to your own Google app immediately:

npx convex env remove --prod CRMLYNK_URL
npx convex env remove --prod CRMLYNK_API_KEY

You then have to reconnect every Google integration again, for the same reason as step 4, in the other direction.


If you are below 5.7.1

Older SeedlyCRM versions ask Google for a broad Sheets permission that CRMLynk no longer requests. CRMLynk removes it automatically, so your connections will work, but the Sheets and Drive workflow steps expect you to paste a spreadsheet ID, and that will fail because the CRM no longer has account wide Sheets access.

Upgrade to 5.7.1 or newer before relying on Sheets or Drive workflow steps. On 5.7.1 and newer those steps open a file picker, and picking a file is what grants access to it. There is a one click prompt to re-grant spreadsheets you had previously entered by ID.

Everything else, Calendar, Analytics, Business Profile and Ads, works on older versions.


Fresh setup, no existing Google app

If you never built your own Google Cloud project, there is nothing to migrate:

  1. Subscribe at crmlynk.com/subscribe with your .convex.site URL.
  2. Set the two environment variables from step 2.
  3. Connect your Google integrations in the CRM.

You never create a Google Cloud project, never apply for Business Profile access, never request an Ads developer token, and never go through Google verification.


Questions

[email protected]. Include your Convex site URL, it is the fastest way for us to look up your subscription.

© 2026 CRMLynk. All rights reserved.
  • Privacy Policy
  • Terms of Service
  • Support
  • Contact
  • Cookie settings