Kaiten

Integrations

Integrations

Where Kaiten meets the rest of your stack — webhook endpoints on Kaiten Cloud, connectors you activate under your License, the Attio CRM connector, and Slack notifications.

Kaiten holds the commercial contract — customers, licenses, entitlements, usage — and the rest of your stack reacts to it. The integrations in this section are the shipped ways to connect the two: an event stream any system can subscribe to, a CRM connector that mirrors your customers and instances into the sales record, and a ready-made route for team notifications.

Kaiten complements the tools it connects to: the CRM stays the CRM, Slack stays Slack, and Kaiten supplies the one thing they cannot know on their own — what each customer is entitled to, and how much of it they use.

Connectors: available, entitled, activated

A connector is an integration that ships inside Kaiten and runs on the event stream — the Attio connector is the first. Connectors are registered once for the whole Kaiten installation, and then activated per organization: nothing runs, and no data leaves Kaiten, until your organization turns the connector on and gives it the credentials it needs. Three questions describe a connector's state for your organization, and one call answers them:

curl "$KAITEN_API/connectors/kaiten.integration.crm.attio/state" \
  -H "Authorization: Bearer $KAITEN_TOKEN"
{
  "connectorName": "kaiten.integration.crm.attio",
  "available": true,
  "version": "2.0.0",
  "entitled": true,
  "activated": false
}
FieldQuestionWhere the answer comes from
availableIs the connector registered in this Kaiten installation?The registry — GET /connectors lists it, with its version and the JSON Schema of its settings.
entitledDoes your License include it?The connector's registration names a BOOLEAN entitlement (entitlement_slug); entitled is true when your License grants it — and always true for an ungated connector.
activatedHas your organization turned it on?PUT /connectors/{name}/activation; activatedAt records when.

The lifecycle is three calls, all under the organizations scopes:

  1. Activate — PUT /connectors/{name}/activation. Idempotent; refused when your License does not grant the connector's entitlement, and answered 503 when that grant cannot be verified — a limit that cannot be checked is treated as a limit.
  2. Provide the settings — PUT /connectors/{name}/settings, with a body that validates against GET /connectors/{name}/settings/schema. Settings are stored in the secret store — Vault, or on a Community Edition stack the local stand-in documented in environment variables — never in the database. Fields the schema flags writeOnly, an API key for one, come back redacted as *** on every read and may be re-sent as *** to keep the stored value.
  3. Run — the connector consumes the event stream for your organization only from the moment it is both activated and configured.

DELETE /connectors/{name}/activation turns it off and is never refused — an organization must always be able to stop using something; DELETE /connectors/{name}/settings clears what it stored.

This is Kaiten gating Kaiten. A connector's gate is an ordinary BOOLEAN entitlement in Kaiten's own catalog, granted by the License your organization holds — the same mechanism you use on your own customers, applied to Kaiten by Kaiten. The editions page shows which editions include native connectors; the Attio page walks through the activation.

Webhooks are gated the same way: Kaiten Cloud serves them where your organization's License grants the webhooks entitlement — managing endpoints. Self-hosting the Community Edition? Managed webhook endpoints are part of Kaiten Cloud; your stack exposes the same events on its own broker — consuming events. Every event, on either path, is listed in the event catalog.

On this page