Skip to content

DigElite CRM · Function 1 of 4

Google integration — two services, clearly separated.

We deliberately only include what you really need in everyday CRM use:
Cloud Translation for email templates, Places (New) for AI research.
No workspace synchronization, no calendar import — and therefore also
No data migration that you didn't want.

← Back to CRM overview

What exactly is connected?

Two Google APIs — precisely aligned, with separate keys.

The CRM supports two separate API keys (Least-privilege-
Pattern). You create them in your own Google Cloud project and add them.
they are entered in the respective CRM backend area:

  • Translation Key — Path in the backend:
    DigElite CRM → Categories & Languages → Translation.
    option nz_crm_google_api_key.
  • Places-Key — Path in the backend:
    DigElite CRM → Contact Radar → Places API Key.
    option nz_crm_places_api_key. It automatically falls on the
    Return the translation key if it remains empty (convenience for small setups).

Both run over API Key Auth (Header
X-Goog API Key or query parameters ?key=) - no
OAuth, no service account, no persistent permissions. Both
Connections are opt-inThe CRM runs completely without keys.
without Google.

Cloud Translation API v2

Multilingual email templates — placeholders remain intact.

Endpoint:
translation.googleapis.com/language/translate/v2. You
In the template management, click on "Translate" → the CRM creates a
A new template in the target language, manually editable before it goes live.

Placeholder protection: Before the CRM sends the text to Google,
It wraps every placeholder in
<span class="notranslate">{first name}</span>
Google recognizes the tag and leaves the content untouched. Example:

POST https://translation.googleapis.com/language/translate/v2?key=AIza…{ &quot;q&quot;: &quot;Hello <span class="notranslate">{first name}</span>, nice that you are here.&quot;, &quot;source&quot;: &quot;de&quot;, &quot;target&quot;: &quot;en&quot;, &quot;format&quot;: &quot;html&quot; }→ { &quot;data&quot;: { &quot;translations&quot;: [ { &quot;translatedText&quot;: &quot;Hello {firstname}, nice that you are here.&quot; } ] } }

Important: Multilingualism is not
Fully automated during shipping. You create a separate one for each target language.
You create a template and update it as needed — the CRM then sends it according to the requirements.
The appropriate template for the recipient's language.

Places API (New)

Discovery data for new customer research.

Endpoint:
places.googleapis.com/v1/places:searchText. In the backend area
„"Contact Radar" allows you to set the industry + region + maximum number of hits (default 40).
(for Places — the AI search pages have their own, lower default)
One. The CRM calls synchronously, normalizes the response into
nz_crm_candidates-Schema and places the results in the checklist.

The CRM requests via FieldMask only the fields that exist in the CRM
saves — everything else is already handled by Google. Example answer:

{ "places": [{ "id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "displayName": { "text": "Café Sonnenblume" }, "formattedAddress": "Kyrenia 99300", "websiteUri": "https://cafe-sonnenblume.example", "internationalPhoneNumber": "+90 392 555 0142", "addressComponents": [ { "longText": "Kyrenia", "types": ["locality"] } ]}], "nextPageToken": "ATp…" }

Job history and raw responses are stored locally in the CRM database — no "sync".
with Google", no cloud data migration. Later enrichment (email-
(Address from the website) runs server-side in the plugin via self-scraping,
without further API calls.

Cost

Roughly what you pay at Google.

List prices from Google (as of plugin documentation) — please check before productive use
Double-check on the Google Cloud pricing page; Google can change prices at any time.
adjust.

  • Cloud Translation v2 Basic: ~$20 USD / 1 million characters.
  • Places API (New) Text Search „Pro" SKU: ~$0.032 per call (≈ 32 USD / 1,000 calls), with a free tier at the beginning.
  • Example radar run with 40 hits = max. 2 pages with 20 hits each = 2 calls ≈ 0.06 USD. Email enrichment is free at Google; it works as self-scraping.

Quota/Key Expiration — Graceful Degradation: The CRM
checks HTTP != 200 and gives a talking
WP_Error Return with Google Original Message
(e.g., "Places search failed: REQUEST_DENIED — please use 'Places API')
(New)' activate in the Google Cloud project." No automatic fallback.
to a different provider, no retry. The checklist remains clean —
No half inserts.

Deliberately not included in the delivery

What we deliberately omit.

Other CRMs advertise "Google Workspace Sync" — we deliberately do not include it.
The effort would be considerable, the GDPR situation tricky, and you would end up more firmly entrenched in the system.
The Google ecosystem is different from what you wanted. That's not our approach.

  • No Google Workspace sync (emails, contacts, calendar)
  • No Google Calendar acquisition
  • No Google Drive or Sheets integration
  • No Google My Business, Search Console, or Analytics integration.
  • No bidirectional synchronization — Google is the data source, not the data mirror.
Security

Where your API keys are located — and where they are not.

  • Both keys are located in the wp_options-table (key nz_crm_google_api_key and nz_crm_places_api_keyThose who prefer an even more conservative approach can use them as constants in wp-config.php register.
  • The keys are never delivered to the frontend — calls are made purely server-side via the PHP layer.
  • You can set Google quotas and restrictions yourself in the cloud project (quota, domain restriction, IP list, separate SKUs per key).
  • In the CRM backend you can see calls and success per job — if an API fails to respond, the original error message from Google will appear as an admin notice.

More features

The Google integration is just one of four pillars.
Check out the other three as well — or ask directly about early access.

Request early access

Back to CRM overview ·
AI search ·
Personal approach ·
Individual landing pages