Kaiten

Get Started

Receive Events

React to what happens in Kaiten — managed webhook endpoints on Kaiten Cloud, or the event stream directly on Community Edition.

Everything that happens in Kaiten — a customer created, a license changed, a usage limit reached — emits a domain event. How you receive them depends on your edition: Kaiten Cloud delivers them to managed webhook endpoints; the Community Edition consumes the event stream directly.

Kaiten Cloud

Managed outbound webhook endpoints are part of Kaiten Cloud, served where your organization's License includes them — where it does not, the console hides the Webhooks pages and the API answers 403. On the Community Edition, use the event-stream path in the other tab.

1. Create an endpoint

In the console, open Integrations → Webhooks and click New Webhook: tick the events to subscribe to — for a first test, Customer created (CUSTOMER_CREATED) is the easiest to trigger — enter your endpoint in Webhook URL, and click Create Webhook.

Testing locally? webhook.site or an ngrok tunnel gives you a public URL in seconds.

The New Webhook dialog over the Webhooks page: Customer created (CUSTOMER_CREATED) ticked under Customers, listed again under Selected events, and a webhook URL entered above the Create Webhook button.The New Webhook dialog over the Webhooks page: Customer created (CUSTOMER_CREATED) ticked under Customers, listed again under Selected events, and a webhook URL entered above the Create Webhook button.

2. Trigger an event

Create a customer — any create in the model emits its event. In the console: Customers → New Customer, name it Webhook Test Restaurant.

The New Customer dialog over the Customers list of Kaiten Sushi Shop: Name Webhook Test Restaurant, the slug webhook-test-restaurant generated from it, External ID crm-8192 and Domain webhook-test.example, above the Create Customer button.The New Customer dialog over the Customers list of Kaiten Sushi Shop: Name Webhook Test Restaurant, the slug webhook-test-restaurant generated from it, External ID crm-8192 and Domain webhook-test.example, above the Create Customer button.

Your endpoint receives the published event contract — the event's name, its versioned type, and the entity as data. A delivery can add an optional headers object of metadata; the payload examples describe it.

{
  "name": "CUSTOMER_CREATED",
  "type": "com.kaiten.customer.v1.created",
  "data": {
    "id": "…",
    "name": "Webhook Test Restaurant",
    "slug": "webhook-test-restaurant"
  }
}

3. Check delivery

Integrations → Webhooks → History lists the most recent delivery attempts with their status — OK, Pending, Sending or Fail (success, pending, sending, fail over the API). Before going to production, verify the signature on every delivery: verifying signatures.

The History tab of the Webhooks page: delivery attempts by date, each with its hook URL, its event and its status — OK, Pending, Sending, or Fail with the HTTP code and the failure reason.The History tab of the Webhooks page: delivery attempts by date, each with its hook URL, its event and its status — OK, Pending, Sending, or Fail with the HTTP code and the failure reason.

The Community Edition ships no managed webhook delivery. Instead, your self-hosted stack exposes the event stream itself: the same domain events, consumed directly from the message broker your stack runs. The catalog of events is the same; only the transport and envelope differ. The concept page on events covers the two paths side by side; consuming events documents the consumer setup — attaching to the exchange and unwrapping the envelope.

The event catalog

Kaiten emits 55 events across 10 domains — customers, instances, licenses, entitlements, feature flags, releases, components, deployment zones, metadata fields, identity. Names are past-participle (CUSTOMER_CREATED, LICENSE_ENTITLEMENT_ASSIGNED, INSTANCE_ENTITLEMENT_USAGE_REACHED); types are versioned identifiers (com.kaiten.customer.v1.created). The event catalog lists them all with their payloads.

Where to go next

What's next? lists where to go from here, by role.

On this page