> ## 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.

# Capsule CRM Webhook Setup Guide

> Configure Capsule CRM to deliver events to StackOne.

## Prerequisites

Before continuing, you should have already completed the following for this connector:

<Steps>
  <Step title="Configure the Connector">
    Enable the connector and set up its connector profile in your project. See <a href="/guides/explore-connectors">Managing Connectors</a>.

    <Columns cols={2}>
      <Card title="Connector Profile" href="/connectors/capsulecrm/guides/connector-profile/api-key" icon="https://stackone-logos.com/api/capsule/filled/png" horizontal>
        Capsule CRM - API Key
      </Card>

      <Card title="Connector Profile" href="/connectors/capsulecrm/guides/connector-profile/oauth-2-0" icon="https://stackone-logos.com/api/capsule/filled/png" horizontal>
        Capsule CRM - OAuth 2.0
      </Card>
    </Columns>
  </Step>

  <Step title="Link an Account">
    Connect an account using <a href="/guides/embedding-stackone-hub">StackOne Hub</a> or <a href="/guides/auth-link">Auth Link</a>.

    <Columns cols={2}>
      <Card title="Link Account" href="/connectors/capsulecrm/guides/link-account/api-key" icon="https://stackone-logos.com/api/capsule/filled/png" horizontal>
        Capsule CRM - API Key
      </Card>

      <Card title="Link Account" href="/connectors/capsulecrm/guides/link-account/oauth-2-0" icon="https://stackone-logos.com/api/capsule/filled/png" horizontal>
        Capsule CRM - OAuth 2.0
      </Card>
    </Columns>
  </Step>
</Steps>

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

  <p>Capsule delivers events through REST Hooks, and StackOne provisions them for you — there is no webhook screen to configure inside Capsule and no URL to paste.</p>

  <Steps>
    <Step title="Connect with OAuth 2.0 as an Administrator">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Capsule only allows registered OAuth applications, authorized by an account Administrator, to create REST Hook subscriptions. Connect the account using the <strong>OAuth 2.0</strong> authentication method — API Key connections cannot provision webhooks and will not receive any events.</p>
      </div>
    </Step>

    <Step title="Enable the events you need">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>When the connection is established, StackOne generates a unique callback URL for it and automatically subscribes a Capsule REST Hook for each webhook event you enable in StackOne. Only the events you enable are subscribed. Capsule allows a maximum of <strong>20 active REST Hook subscriptions</strong> per account, so enable only the events you intend to consume.</p>
      </div>
    </Step>
  </Steps>
</section>

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

  <p>The events below can be enabled for this connection. Only the events you select in StackOne are subscribed in Capsule and delivered.</p>

  <Steps>
    <Step title="Review contact events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fired for people and organisations (Capsule "parties").</p>

        <ul>
          <li><strong>Party Created</strong> (`party/created`) — Fired when a new contact (person or organisation) is created.</li>
          <li><strong>Party Updated</strong> (`party/updated`) — Fired when a contact's details are changed.</li>
          <li><strong>Party Deleted</strong> (`party/deleted`) — Fired when a contact is deleted.</li>
        </ul>
      </div>
    </Step>

    <Step title="Review project events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fired for projects (referred to as "cases" in the API, event code `kase/*`).</p>

        <ul>
          <li><strong>Project Created</strong> (`kase/created`) — Fired when a new project is created.</li>
          <li><strong>Project Updated</strong> (`kase/updated`) — Fired when a project's details are changed.</li>
          <li><strong>Project Deleted</strong> (`kase/deleted`) — Fired when a project is deleted.</li>
          <li><strong>Project Closed</strong> (`kase/closed`) — Fired when a project is closed.</li>
          <li><strong>Project Moved</strong> (`kase/moved`) — Fired when a project is moved to a different stage.</li>
        </ul>
      </div>
    </Step>

    <Step title="Review opportunity events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fired for sales opportunities.</p>

        <ul>
          <li><strong>Opportunity Created</strong> (`opportunity/created`) — Fired when a new opportunity is created.</li>
          <li><strong>Opportunity Updated</strong> (`opportunity/updated`) — Fired when an opportunity's details are changed.</li>
          <li><strong>Opportunity Deleted</strong> (`opportunity/deleted`) — Fired when an opportunity is deleted.</li>
          <li><strong>Opportunity Closed</strong> (`opportunity/closed`) — Fired when an opportunity is closed (won or lost).</li>
          <li><strong>Opportunity Moved</strong> (`opportunity/moved`) — Fired when an opportunity is moved to a different pipeline stage.</li>
        </ul>
      </div>
    </Step>

    <Step title="Review task events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fired for tasks.</p>

        <ul>
          <li><strong>Task Created</strong> (`task/created`) — Fired when a new task is created.</li>
          <li><strong>Task Updated</strong> (`task/updated`) — Fired when a task's details are changed.</li>
          <li><strong>Task Completed</strong> (`task/completed`) — Fired when a task is marked as completed.</li>
        </ul>
      </div>
    </Step>

    <Step title="Review user events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fired for user accounts on the Capsule account.</p>

        <ul>
          <li><strong>User Created</strong> (`user/created`) — Fired when a new user is added to the account.</li>
          <li><strong>User Updated</strong> (`user/updated`) — Fired when a user's details are changed.</li>
          <li><strong>User Deleted</strong> (`user/deleted`) — Fired when a user is removed from the account.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

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

  <p>How Capsule delivers events to StackOne.</p>

  <Steps>
    <Step title="Inspect event payloads">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Capsule sends each event as an HTTP POST with a JSON body containing the trigger name in an `event` field (for example `party/updated`) and a `payload` field holding an array of the affected records.</p>
      </div>
    </Step>

    <Step title="Handle batched deliveries">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Capsule may batch several records affected by the same event into a single delivery, so the `payload` array can contain more than one record. StackOne forwards the full `payload` array in a single emitted event.</p>
      </div>
    </Step>

    <Step title="Verify deliveries">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Capsule REST Hook deliveries are not signed. StackOne verifies each delivery through the unique, unguessable callback URL generated for the connection.</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.
