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

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

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