Integrations and credentials
Connect organization-scoped signal, CRM, delivery, webhook, and external-agent providers without exposing secrets to the browser or model context.
Integrations lets each organization bring its own vendor accounts. Configuration is admin-only, stored per tenant, encrypted before persistence, and masked on subsequent reads.
Provider roles
| Provider | Role | Required fields |
|---|---|---|
| AI model | strategy assistance, judgment, drafting, and reply preparation | provider, API key, model |
| Google Analytics 4 | read-only traffic, acquisition, geography, and conversions | property ID, service account |
| Google Search Console | read-only queries, pages, clicks, impressions, and position | property, service account |
| Cloudflare traffic | read-only aggregate requests and unique visitors | zone ID, scoped API token |
| Publishing webhook | approved artifact delivery to CMS/social automation | public HTTPS URL, secret |
| Apollo | signal discovery and contact lookup | API key |
| Monid | optional curated data endpoints | workspace-scoped API key |
| Instantly | approved delivery, replies, and optional governed enrichment | API key, campaign ID |
| Lightfield | CRM context and synchronization | provider-specific credentials |
| Octolane | CRM context and synchronization | provider-specific credentials |
| Webhook | reply/bounce/unsubscribe authentication | generated organization secret |
| Agent gateway | opt-in access for external agents | generated organization key |
The screen derives its fields from the provider catalog, so validation and masking stay consistent between the UI and runtime.
Connect a provider
- Open Settings → Integrations as an organization admin.
- Select Connect or Edit.
- Enter every required field.
- Select Connect & test or Save & test.
- Read the test result before closing the panel.
Credentials are sealed with AES-256-GCM using GTM_CREDENTIALS_KEY before they reach the GTM store.
Plaintext values are never returned by normal provider reads.
Bring your own AI provider
The AI model provider card supports Anthropic, OpenAI, Databricks Mosaic AI Gateway, Vercel AI Gateway, Cloudflare AI Gateway, OpenRouter, and allowlisted OpenAI-compatible gateways. An organization supplies a sealed API key, a default model, and optionally a faster reply/triage model. Databricks and Cloudflare also require their tenant-specific gateway URL; arbitrary destinations are rejected by the server-side URL policy rather than trusted from browser input.
Test connection performs a read-only model-list request; it does not generate content. The configured provider is resolved on every activity, so a key or model change applies without restarting the worker. It is used by the strategy assistant, workspace authoring assistant, isolated skill-test simulator, artifact assistant, account judge, outreach drafter, reply classifier, and reply-draft assistant. The UI shows the provider and model provenance for generated workspace records. If no tenant model is configured, the deployment's Databricks AI Gateway or direct provider is the fallback. With neither available, model-dependent production decisions fail closed or use their explicit offline behavior.
Tenant models receive only the bounded context for their task. Provider configuration does not replace platform system prompts and cannot bypass evidence validation, deterministic scoring, suppression, approval, idempotency, or delivery policy.
Monid uses split control: the organization owns credentials, while the deployment owns the curated endpoint allowlist. Connecting Monid alone cannot authorize a paid run. See Monid signal source.
Connect web and search analytics
The Marketing workspace has a Web & search analytics lens. It never estimates traffic: panels remain in a clearly labeled disconnected state until the organization connects Google Analytics 4, Google Search Console, or Cloudflare traffic.
For either Google source, create a Google Cloud service account and paste its email and private key into the matching integration. Then grant that email read access in the source product:
- In GA4, add it as a Viewer for the property and enter the numeric property ID.
- In Search Console, add it as a user of the exact URL-prefix or domain property, then enter that exact
property value (for example,
sc-domain:example.com).
The private key is tenant-sealed and masked after saving. Reporting calls are read-only, bounded to 12 seconds, and return normalized rows with their source, reporting window, and refresh time. A failed source does not hide data from the other source and never changes GTM records.
For a site behind Cloudflare, connect Cloudflare traffic with the zone ID and a zone-scoped API token that has only Analytics Read permission. GTM Brain shows aggregate edge requests and unique visitors. Those values complement GA4 and Search Console; they are not presented as Google sessions, conversions, queries, or rankings.
Publish approved content
Connect Publishing webhook when a CMS or social automation service can accept signed JSON. GTM Brain
sends only an exact approved artifact revision. The request includes the artifact and campaign binding,
the immutable revision hash, content type, and body. It carries Idempotency-Key,
X-GTM-Publication-ID, a timestamp, and an HMAC-SHA256 signature.
The endpoint must treat the idempotency key as a single logical publication. GTM validates public HTTPS, pins DNS before connecting, refuses redirects and private addresses, and retries only this declared idempotent adapter operation. A publication is not recorded as succeeded unless the endpoint returns a 2xx response. Preview publication remains internal and does not call the webhook.
Credential resolution order
At runtime, GTM Brain resolves configuration in this order:
organization credential
→ deployment environment fallback
→ safe stub adapterSaving an organization credential affects the next activity without requiring an application restart.
Optional Instantly enrichment
Instantly can also contribute contacts and trigger evidence, but it is not a trusted ICP qualifier. An
administrator connects the same API key and campaign in the application; a deployment owner separately
pins a pre-reviewed lead-list ID, a maximum of 25 records per pass, and shadow or active mode.
The source uses only the read-only POST /api/v2/leads/list endpoint. It cannot start SuperSearch or spend
enrichment credits. GTM Brain ignores Instantly employee bands and location fields, because broad ranges can
cross an ICP boundary and contact-location filters do not establish company headquarters. A row can become a
V2 signal only when all of the following are true:
- a trusted firmographic source has already qualified the company and geography;
- the evidence explicitly names Databricks;
- the evidence includes a public HTTPS source URL;
- the company domain is valid; and
- the deployment is in
activemode.shadowmode records diagnostics and performs no mutation.
Only verified contacts are retained. Full provider responses do not enter Temporal history; the activity stages bounded evidence in Lakebase and the governed mutation carries its compact staging ID.
Configure Instantly webhooks
The Integrations screen provides four organization-specific endpoints:
POST /api/webhooks/gtm/<organizationId>/instantly
POST /api/webhooks/gtm/<organizationId>/reply
POST /api/webhooks/gtm/<organizationId>/communications
POST /api/webhooks/gtm/<organizationId>/calendarThe first translates native Instantly events. The second accepts the generic GTM reply boundary for other vendors. The final two accept provider-neutral, privacy-safe email and calendar snapshots. Authenticate all four using either:
x-gtm-webhook-secret: <organization-secret>or:
?secret=<organization-secret>Rotate the secret if it is disclosed, then update the vendor immediately. Old values stop authenticating.
Enable the external-agent gateway
Generating a key for an enabled registration opts that exact principal into:
GET /api/agents/gtm/<organizationId>/catalog
POST /api/agents/gtm/<organizationId>/invoke
POST /api/agents/gtm/<organizationId>/mcpExternal callers preferably send Authorization: Bearer <registration-key>. Clients that require an
explicit custom header may send the same credential as x-gtm-agent-key. Clients that accept only an
OAuth discovery flow need a compatible gateway or client adapter; a manually entered registration key
is not OAuth. Each key is bound to one registration, stored only as a hash,
and independently rotatable/revocable. Registration IDs use the same 1–200 character contract as the
agent registration itself, including IDs containing spaces or slashes; provider-slot encoding is
internal and callers continue to use the opaque generated key. Callers receive a registration-filtered
action catalog and can invoke actions, but the key alone grants nothing. An admin must also install and
enable the External campaign operator in Team & agents. The V14 catalog advertises the complete
reviewed human/agent product-action surface with bounded proposal
and explicitly delegated execution actions.
Email and calendar synchronization are proposal actions; campaign activation, publication, approval, and
delivery require the registration's exact short-lived campaign grant. Tenant skill requests require
gtm.request_skill_run, an expiration, and exact skillIds. Both remain subject to canonical action
policy and execution-time resource-scope revalidation.
Test and disconnect
- Configured means encrypted credentials are stored; it does not claim the provider accepted them.
- Test connection validates stored credentials without returning them; the badge then shows Verified or Check failed.
- Edit replaces the sealed value and immediately tests it.
- Disconnect removes the organization credential; runtime then falls back to deployment configuration or a stub.
Troubleshooting
| Symptom | Check |
|---|---|
| Apollo reports unauthorized | API key and account permissions |
| Monid connects but is not active | curated catalog is missing, empty, or shadow-only |
| Instantly key works but campaign fails | campaign ID, account ownership, campaign existence |
| Replies never appear | webhook URL, selected events, secret, source ID |
| Agents reports stub | organization credential missing and no deployment fallback |
| Only admins can open the page | expected; provider management requires organization admin |
| Strategy agent is disabled | connect and test the organization's AI model provider |
Next: Agent-led GTM lifecycle, Run your first campaign, Agents, and External agents.
Reply review
Review model-classified replies, generate AI-assisted drafts, and convert confirmed decisions into governed outcomes or threaded responses.
Clearbit website visitor intent
Import reviewed Clearbit Visitors company activity as governed prioritization evidence without treating anonymous traffic as a person or outreach authorization.