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

# Articulate Webhook Setup Guide

> Configure Articulate 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/articulate#getting-started) on the Articulate connector page.

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

  <p>Reach 360 delivers events through a webhook subscription, and StackOne provisions it for you on connection. When you connect your account, StackOne creates one Reach 360 webhook (`POST /webhooks`) pointing at a StackOne callback URL, subscribed to the events you enable. When you disconnect, StackOne deletes that webhook (`DELETE /webhooks/{id}`). There is nothing to configure in Reach 360.</p>

  <Steps>
    <Step title="Connect with your API key">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Authorize the connection with your Reach 360 <strong>API Key</strong> and <strong>Region</strong> so StackOne can create and delete the webhook subscription on your behalf. No further setup is needed in Reach 360.</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 Reach 360 events you want in StackOne. StackOne subscribes the webhook to exactly those event types and dispatches each delivery onward.</p>
      </div>
    </Step>
  </Steps>
</section>

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

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

  <Steps>
    <Step title="Course events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to courses.</p>

        <ul>
          <li><strong>Course Completed</strong> (`course.completed`) — Fired when a learner completes a course.</li>
          <li><strong>Course Submitted</strong> (`course.submitted`) — Fired when an author submits a course to be reviewed by an admin for publication.</li>
        </ul>
      </div>
    </Step>

    <Step title="Enrollment events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to course and learning path enrollments.</p>

        <ul>
          <li><strong>Enrollments Created</strong> (`enrollments.created`) — Fired when users or groups are enrolled in a course or a learning path.</li>
        </ul>
      </div>
    </Step>

    <Step title="User events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to account users.</p>

        <ul>
          <li><strong>User Created</strong> (`user.created`) — Fired when a user is added to your Reach 360 account.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

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

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

  <Steps>
    <Step title="Single JSON object">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Each delivery is a single JSON object (not batched) with top-level `id` (unique event id), `createdAt` (timestamp), `type` (the event type), `webhookId`, `apiVersion`, and a `data` object with the event-specific content. Reach 360 retries a non-200 response up to 14 more times over the next 48 hours.</p>
      </div>
    </Step>

    <Step title="Optional signature">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>If a signing secret is set on the subscription, Reach 360 adds an `X-Hook-Signature` header (an HMAC-SHA1 digest of the request body). StackOne routes each delivery to its matching event handler.</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.