Documentation

Connect Henneth to the stack you already run.

Five first-party integrations cover the edge, identity, productivity, and incident-response surfaces most of our customers run. Configure once and Lens, Prism, and Playbooks all light up.

Overview

Henneth is built to plug into infrastructure you already operate, not to replace it. The integrations below cover the four surfaces we touch most often: the CDN edge (Cloudflare, Akamai), identity and document access (Google Suite), and the channels your team already uses to act on what we surface (Slack, Microsoft Teams).

Every integration installs the same way: enable it from the connector library in app.henneth.ai, complete the OAuth or token exchange, and Lens, Prism, and Playbooks become aware of the connection automatically.

Authentication

All integrations authenticate through the Henneth OAuth broker. You will not need to manage refresh tokens by hand, the broker handles rotation and exposes a stable token reference your Playbooks can call.

# list active integrations for the current workspace curl "https://api.henneth.ai/v1/integrations" \ -H "Authorization: Bearer $HENNETH_API_KEY"
CF

Cloudflare

/docs/integrations/cloudflare
Analytics APIEdge WorkerWebhookLogpush

The Cloudflare integration brings your AI-agent (bot) traffic into Agent Analytics. There are two ways to connect, and you can run either one or both. Neither method sends human visitor traffic or request bodies to Henneth.

Method 1: GraphQL Analytics API

The fastest path, and the one we recommend to start. In Cloudflare, create a read-only API token scoped to a single zone, then add the token and Zone ID under Settings → Integrations in Henneth. Henneth pulls the data on a schedule; nothing is pushed from your side.

  • The token needs one permission: Zone → Analytics → Read. It cannot read or change DNS, WAF, content, or configuration, and you can revoke it from Cloudflare at any time.
  • Henneth reads hourly, aggregated AI-bot request counts and response sizes per bot, host, and path. No human traffic and no personal data is read.
  • Cloudflare samples this dataset, so high-volume counts are approximate. For exact, per-request data, use Method 2.
# required Cloudflare token permission Zone → Analytics → Read (read-only, single zone)

Method 2: Edge Worker and webhook

For complete, unsampled, real-time data, deploy a small Cloudflare Worker on your zone. Create a webhook API key under Settings → Agent Analytics, paste it into the template, and deploy on your route (for example example.com/*). This method needs no Cloudflare permissions; the Worker authenticates to Henneth, not the other way around.

  • The Worker checks each request User-Agent at the edge. Non-bot and human traffic passes through untouched, and nothing about it is sent to Henneth.
  • When a known AI bot matches, the Worker sends one JSON event to Henneth over HTTPS: bot name, path, method, status code, User-Agent, the bot IP, country, and timestamp. No request or response body is sent.
  • The Worker does not modify your requests or responses, and adds no headers.

Worker template

The Henneth app gives you the full template under Settings → Agent Analytics. The core logic:

export default { async fetch(request, env, ctx) { const ua = request.headers.get("user-agent") || ""; const bot = ["GPTBot", "ClaudeBot", "PerplexityBot", "Google-Extended"] .find((b) => ua.includes(b)); if (!bot) return fetch(request); // human traffic: nothing is sent const response = await fetch(request); // capture the real status ctx.waitUntil(fetch(HENNETH_WEBHOOK_URL, { method: "POST", headers: { "X-API-Key": HENNETH_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ bot_name: bot, path: new URL(request.url).pathname, method: request.method, status: response.status, user_agent: ua, ip: request.headers.get("cf-connecting-ip"), country: request.headers.get("cf-ipcountry"), timestamp: new Date().toISOString(), }), })); return response; }, };

Endpoint security. The webhook authenticates with your hk_ API key, and requests without a valid key are rejected. Henneth stores only a SHA-256 hash of the key, request bodies are size-capped, and stale or future-dated events are dropped.

Logpush (Enterprise)

On the Enterprise plan you can skip the Worker and stream Cloudflare Logpush straight into Henneth over HTTPS, giving per-request coverage without edge code.

AK

Akamai

/docs/integrations/akamai
CDNDataStream 2WebhookLogs

For enterprise customers running Akamai, Henneth ingests AI-agent (bot) traffic through Akamai DataStream 2. Akamai pushes CDN request logs to Henneth over HTTPS, and Henneth filters them for known bots. Your property configuration and content are not touched.

What it does

  • Akamai DataStream 2 pushes your CDN request logs to Henneth every 30 seconds over HTTPS.
  • Henneth keeps only known AI-bot user-agents (GPTBot, ClaudeBot, PerplexityBot, Googlebot, and others) and discards the rest, which is roughly 99.9% of traffic, on arrival.
  • Bot visits are aggregated hourly into your Agent Analytics dashboard: bot breakdown, path analysis, platform distribution, and trends.

Install

In Henneth, open Settings → Integrations, and under Akamai click Generate Webhook Credentials. You receive an endpoint URL, a username, and a password; the password is shown once. In Akamai Control Center, create a DataStream 2 stream pointing at that endpoint.

  • Destination Custom HTTPS, authentication BASIC, using the username and password from Henneth. Log format JSON, push frequency 30 seconds.
  • Log fields: timestamp, bytes, status, host, request path, and User-Agent. Enable Log Host Header and Log User-Agent Header on the property.
  • Add the DataStream behavior to your property at a 100% sample rate, then activate. Data appears within about 60 minutes.

Security. The webhook password is stored AES-256-GCM encrypted and shown only once; if lost, disconnect and regenerate. All traffic runs over HTTPS, and only Henneth’s ingest service, which runs on a separate instance from the main application, receives the logs.

GS

Google Suite

/docs/integrations/google-suite
SheetsDocsGmailGA4

Connect your Google account to put Henneth Playbooks to work across Google Sheets, Docs, Gmail, Google Analytics 4, and Search Console. Write Lens results into a Sheet, draft a report in Docs, email a summary, or pull GA4 and Search Console data into a workflow.

What it does

  • Google Sheets. Playbooks read from and write to Sheets, so Lens tables and workflow output land in a spreadsheet you choose.
  • Google Docs. Generate and update Docs from a Playbook, for briefs, reports, and content drafts.
  • Gmail. Send report and digest emails from a Playbook, and read messages to trigger a workflow.
  • Analytics and Search Console. Pull GA4 and Search Console metrics into a workflow to pair traffic with Lens visibility.

Install

In Settings → Integrations, click Connect Google Account and grant the requested scopes on Google’s consent screen. The connection is per user and can be disconnected at any time.

# requested Google OAuth scopes userinfo.email userinfo.profile spreadsheets # Sheets read / write documents # Docs read / write gmail.send gmail.readonly # send + read email drive.metadata.readonly # list file names for the picker analytics.readonly webmasters.readonly # GA4 + Search Console, read-only

Drive access. Henneth requests drive.metadata.readonly, which lists file names so you can pick a target Sheet or Doc. It does not grant access to the contents of your Drive files.

SL

Slack

/docs/integrations/slack
Playbook deliveryIncoming webhookBlock Kit

Deliver Lens insights and Playbook results to your Slack channels. A Playbook step posts a formatted message to a Slack channel through an incoming webhook you control.

What it does

  • Adds a Send to Slack step to any Playbook, posting a Block Kit message (header, summary, context) to the channel behind your webhook.
  • Message text is yours to compose, with Playbook variables interpolated, so a workflow sends exactly the summary your team needs.
  • Henneth posts only to the channel your webhook targets and holds no token to read your workspace.

Install

In Slack, create an Incoming Webhook for the target channel. In Henneth, add it under Settings → Integrations as a Slack connection, then select it from the Send to Slack step in your Playbook.

Security. The webhook URL is the only credential. Henneth uses it to post outbound messages to that one channel, and requests no OAuth scopes or read access to your workspace.

MT

Microsoft Teams

/docs/integrations/microsoft-teams
Adaptive cardsPlaybook deliveryPower AutomateLogic Apps

Deliver Lens insights and Playbook results to Microsoft Teams as Adaptive Cards. A Playbook step posts a card to a Power Automate or Azure Logic Apps webhook you control.

What it does

  • Adds a Send to Teams step to any Playbook, posting a formatted Adaptive Card to the flow behind your webhook.
  • Card content is composed from your Playbook, with variables interpolated, so the message carries exactly the summary you want in the channel.
  • From Power Automate or Logic Apps you can fan the card out to a channel, a chat, or any downstream step in your existing flow.

Install

In Power Automate or Azure Logic Apps, create a flow with a When a HTTP request is received trigger and copy its URL. In Henneth, add it under Settings → Integrations as a Teams connection, then select it from the Send to Teams step in your Playbook.

Security. The webhook URL is the only credential. Henneth sends outbound cards to that flow and requests no Microsoft Graph permissions, directory access, or Entra sign-in.

More integrations on the roadmap, HubSpot, Snowflake, and Datadog next. Need something not listed? Talk to us.