Product Features

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

ProviderRoleRequired fields
AI modelstrategy assistance, judgment, drafting, and reply preparationprovider, API key, model
Google Analytics 4read-only traffic, acquisition, geography, and conversionsproperty ID, service account
Google Search Consoleread-only queries, pages, clicks, impressions, and positionproperty, service account
Cloudflare trafficread-only aggregate requests and unique visitorszone ID, scoped API token
Publishing webhookapproved artifact delivery to CMS/social automationpublic HTTPS URL, secret
Apollosignal discovery and contact lookupAPI key
Monidoptional curated data endpointsworkspace-scoped API key
Instantlyapproved delivery, replies, and optional governed enrichmentAPI key, campaign ID
LightfieldCRM context and synchronizationprovider-specific credentials
OctolaneCRM context and synchronizationprovider-specific credentials
Webhookreply/bounce/unsubscribe authenticationgenerated organization secret
Agent gatewayopt-in access for external agentsgenerated 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

  1. Open Settings → Integrations as an organization admin.
  2. Select Connect or Edit.
  3. Enter every required field.
  4. Select Connect & test or Save & test.
  5. 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 adapter

Saving 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:

  1. a trusted firmographic source has already qualified the company and geography;
  2. the evidence explicitly names Databricks;
  3. the evidence includes a public HTTPS source URL;
  4. the company domain is valid; and
  5. the deployment is in active mode. shadow mode 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>/calendar

The 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>/mcp

External 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

SymptomCheck
Apollo reports unauthorizedAPI key and account permissions
Monid connects but is not activecurated catalog is missing, empty, or shadow-only
Instantly key works but campaign failscampaign ID, account ownership, campaign existence
Replies never appearwebhook URL, selected events, secret, source ID
Agents reports stuborganization credential missing and no deployment fallback
Only admins can open the pageexpected; provider management requires organization admin
Strategy agent is disabledconnect and test the organization's AI model provider

Next: Agent-led GTM lifecycle, Run your first campaign, Agents, and External agents.

On this page