> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kit Webhook Setup Guide

> Configure Kit to deliver events to StackOne.

## Prerequisites

The connector should already be set up, with a Connector Profile and a Linked Account. See [Getting Started](/connectors/kit#getting-started) on the Kit connector page.

<section data-guide-section data-guide-scopes="">
  <h2>How webhooks are set up</h2>

  <p>StackOne creates and manages the webhook subscription automatically when the account is connected, and removes it when the account is disconnected. There is nothing to configure in Kit and no URL to paste.</p>

  <Steps>
    <Step title="Connect your Kit account">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Connect your Kit account in StackOne using OAuth 2.0. StackOne creates one Kit webhook endpoint named <strong>StackOne</strong>, subscribed to every event you enable. It appears on the <a href="https://app.kit.com/webhooks" target="_blank" rel="noopener noreferrer">Kit webhooks page</a>. Do not edit or delete it there.</p>
      </div>
    </Step>

    <Step title="Enable the events you need">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Enable the Kit events you want in StackOne. The endpoint subscribes to the enabled events only, so Kit does not send events that are not selected.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Available webhook events</h2>

  <p>The following Kit events can be enabled. Only events selected in StackOne are included in the subscription. Kit will not deliver events that are not subscribed.</p>

  <Steps>
    <Step title="Review subscriber lifecycle events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to a subscriber's status on the account.</p>

        <ul>
          <li><strong>Subscriber Created</strong> (`subscriber.created`) — Fired when a subscriber is added to the account.</li>
          <li><strong>Subscriber Activated</strong> (`subscriber.activated`) — Fired when a subscriber transitions into the active state.</li>
          <li><strong>Subscriber Unsubscribed</strong> (`subscriber.unsubscribed`) — Fired when a subscriber unsubscribes.</li>
          <li><strong>Subscriber Bounced</strong> (`subscriber.bounced`) — Fired when a subscriber's email address hard-bounces.</li>
          <li><strong>Subscriber Complained</strong> (`subscriber.complained`) — Fired when a subscriber reports an email as spam.</li>
        </ul>
      </div>
    </Step>

    <Step title="Review subscriber engagement events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to a subscriber's forms, sequences, tags, and custom field values.</p>

        <ul>
          <li><strong>Subscriber Subscribed to Form</strong> (`subscriber.subscribed_to_form`) — Fired when a subscriber joins a form. Includes the form.</li>
          <li><strong>Subscriber Added to Sequence</strong> (`subscriber.added_to_sequence`) — Fired when a subscriber starts a sequence. Includes the sequence.</li>
          <li><strong>Subscriber Sequence Completed</strong> (`subscriber.sequence_completed`) — Fired when a subscriber finishes the last email of a sequence.</li>
          <li><strong>Subscriber Tag Added</strong> (`subscriber.tag_added`) — Fired when a tag is added to a subscriber. Includes the tag.</li>
          <li><strong>Subscriber Tag Removed</strong> (`subscriber.tag_removed`) — Fired when a tag is removed from a subscriber. Deleting a tag does not fire this event (see Tag Deleted).</li>
          <li><strong>Subscriber Custom Field Value Updated</strong> (`subscriber.custom_field_value_updated`) — Fired when a custom field value changes on a subscriber, once per changed field. Includes the field and its new value.</li>
        </ul>
      </div>
    </Step>

    <Step title="Review tag and custom field events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to tags and custom fields defined on the account.</p>

        <ul>
          <li><strong>Tag Created</strong> (`tag.created`) — Fired when a tag is created.</li>
          <li><strong>Tag Deleted</strong> (`tag.deleted`) — Fired when a tag is deleted. It is removed from every subscriber at once, with no per-subscriber Tag Removed events.</li>
          <li><strong>Custom Field Created</strong> (`custom_field.created`) — Fired when a custom field is created.</li>
          <li><strong>Custom Field Deleted</strong> (`custom_field.deleted`) — Fired when a custom field is deleted.</li>
        </ul>
      </div>
    </Step>

    <Step title="Review sequence events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to sequences (automated email series).</p>

        <ul>
          <li><strong>Sequence Created</strong> (`sequence.created`) — Fired when a sequence is created.</li>
          <li><strong>Sequence Deleted</strong> (`sequence.deleted`) — Fired when a sequence is deleted.</li>
          <li><strong>Sequence Published</strong> (`sequence.published`) — Fired when a sequence is published.</li>
          <li><strong>Sequence Disabled</strong> (`sequence.disabled`) — Fired when a sequence is disabled.</li>
        </ul>
      </div>
    </Step>

    <Step title="Review broadcast and post events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to broadcasts and published posts. These carry a summary. Fetch the full content from the Kit API.</p>

        <ul>
          <li><strong>Broadcast Created</strong> (`broadcast.created`) — Fired when a broadcast is created.</li>
          <li><strong>Broadcast Sent</strong> (`broadcast.sent`) — Fired when a broadcast finishes sending.</li>
          <li><strong>Broadcast Deleted</strong> (`broadcast.deleted`) — Fired when a broadcast is deleted.</li>
          <li><strong>Post Published</strong> (`post.published`) — Fired when a post is published.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Delivery format</h2>

  <p>Details of how Kit delivers events to StackOne.</p>

  <Steps>
    <Step title="Review batched payloads">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Each request carries a `delivery_id` and a <strong>list of events</strong> of the same type. A request usually contains a single event, but Kit batches bulk activity into requests of up to 100 events. StackOne splits the batch and routes each event to its handler.</p>
      </div>
    </Step>

    <Step title="Review retries and deduplication">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Each event has a UUID `id` that stays the same if Kit re-sends it. Kit retries failed deliveries up to 8 times over about 41 hours, so the same event can arrive more than once. The emitted event ID is the ID of the affected subscriber, tag, custom field, sequence, broadcast, or post.</p>
      </div>
    </Step>
  </Steps>
</section>

## Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.