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

# Go1 Webhook Setup Guide

> Configure Go1 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/go1#getting-started) on the Go1 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. It registers a single Go1 webhook named `StackOne webhook` for the connected portal, covering every event you enable, and updates it when the selection changes. There is nothing to configure in Go1.</p>

  <ul>
    <li>Do not edit or deactivate the `StackOne webhook` in Go1 (visible with the connector's `list_webhooks` action). Changing its URL, event types, or status stops event delivery.</li>
  </ul>
</section>

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

  <p>The following Go1 events can be enabled. Only events selected in StackOne are registered on the Go1 webhook.</p>

  <Steps>
    <Step title="Enrollment events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to the lifecycle of learner enrollments.</p>

        <ul>
          <li><strong>Enrollment Created</strong> (`enrollment.create`) — Fired when a user starts or is assigned a learning object</li>
          <li><strong>Enrollment Completed</strong> (`enrollment.complete`) — Fired when a user completes a learning object</li>
          <li><strong>Enrollment Deleted</strong> (`enrollment.delete`) — Fired when an enrollment is deleted</li>
        </ul>
      </div>
    </Step>

    <Step title="Content events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to the content available to the portal.</p>

        <ul>
          <li><strong>Content Added</strong> (`content.add`) — Fired when a learning object is added to the portal's available content</li>
          <li><strong>Content Updated</strong> (`content.update`) — Fired when a subscribed, parent-level learning object is updated</li>
          <li><strong>Content Removed</strong> (`content.remove`) — Fired when a learning object is removed from the portal's content offering</li>
          <li><strong>Content Decommission Pending</strong> (`content.decommission.pending`) — Fired when a learning object is flagged for decommissioning on a future date</li>
          <li><strong>Content Decommissioned</strong> (`content.decommission`) — Fired when a learning object is decommissioned and stops accepting new enrollments</li>
        </ul>
      </div>
    </Step>

    <Step title="Content Library events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to the portal's curated Library.</p>

        <ul>
          <li><strong>Library Content Added</strong> (`content.library.add`) — Fired when a learning object is added to the curated Library</li>
          <li><strong>Library Content Updated</strong> (`content.library.update`) — Fired when a learning object in the curated Library is updated</li>
          <li><strong>Library Content Removed</strong> (`content.library.remove`) — Fired when a learning object is removed from the curated Library</li>
          <li><strong>Library Content Decommissioned</strong> (`content.library.decommission`) — Fired when a learning object in the curated Library is decommissioned</li>
          <li><strong>Library Sync Requested</strong> (`content.library.sync.request`) — Fired when an admin requests a Library sync. Only fires for webhooks registered with a Go1-issued integration system ID</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

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

  <p>Go1 sends one JSON request per event. Each request has the event type in `event_type`, a delivery `id` that stays the same across retries, and a `data` object with the enrollment or learning object `id`, `portal_id`, and `event_time`. Payloads carry IDs only, so use the connector's get actions for full details.</p>

  <ul>
    <li>Go1 retries a delivery that times out after 10 seconds or returns a non-2xx status: after 30 seconds, then 15 minutes, 4 hours, and 24 hours.</li>
    <li>`content.add` and `content.remove` are portal-scoped. A webhook on a master portal does not receive them for child portals.</li>
  </ul>
</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.