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

# Netlify Webhook Setup Guide

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

<section data-guide-section data-guide-scopes="">
  <h2>Connect Netlify webhooks</h2>

  <p>Netlify sends events to StackOne through outgoing webhook notifications added in each site. Paste the StackOne Native Webhook URL into one notification per event.</p>

  <Steps>
    <Step title="Retrieve StackOne Native Webhook URL">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>The <strong>Native Webhook URL</strong> is generated once an account has been linked.</p>

        <ul>
          <li>Open the linked account in StackOne.</li>
          <li>Copy the value from <strong>Native Webhook URL</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Open the site notification settings">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://app.netlify.com/" target="_blank" rel="noopener noreferrer">Netlify account</a> and open the site you want to receive events from.</p>

        <ul>
          <li>Go to <strong>Project configuration</strong> > <strong>Notifications</strong> > <strong>Emails and webhooks</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Add an outgoing webhook notification">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Under <strong>Emails and webhooks</strong>, click <strong>Add notification</strong> and select <strong>HTTP POST request</strong>.</p>

        <ul>
          <li><strong>Event to listen for</strong>: select one of the events listed below.</li>
          <li><strong>URL to notify</strong>: paste the StackOne Native Webhook URL.</li>
          <li>Leave <strong>JWS secret token</strong> empty. StackOne does not verify it.</li>
          <li>Click <strong>Save</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Repeat for each event">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Each Netlify notification sends one event. Add a notification for every event you want StackOne to receive.</p>
      </div>
    </Step>
  </Steps>
</section>

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

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

  <Steps>
    <Step title="Deploy events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to site deploys, deploy locking and deploy requests from untrusted contributors.</p>

        <ul>
          <li><strong>Deploy Started</strong> (`deploy_building`) — Fired when a Netlify deploy starts building</li>
          <li><strong>Deploy Succeeded</strong> (`deploy_created`) — Fired when a Netlify deploy finishes and is ready, and is published if auto publishing is on</li>
          <li><strong>Deploy Failed</strong> (`deploy_failed`) — Fired when a Netlify deploy does not complete</li>
          <li><strong>Deploy Deleted</strong> (`deploy_deleted`) — Fired when a Netlify deploy is deleted</li>
          <li><strong>Deploy Locked</strong> (`deploy_locked`) — Fired when auto publishing is locked to a deploy, keeping the site on that deploy</li>
          <li><strong>Deploy Unlocked</strong> (`deploy_unlocked`) — Fired when auto publishing is unlocked on a site</li>
          <li><strong>Deploy Restored</strong> (`deploy_restored`) — Fired when a previous deploy is manually published again</li>
          <li><strong>Deploy Request Pending</strong> (`deploy_request_pending`) — Fired when a deploy from an untrusted contributor is waiting for approval</li>
          <li><strong>Deploy Request Accepted</strong> (`deploy_request_accepted`) — Fired when a pending deploy request from an untrusted contributor is approved</li>
          <li><strong>Deploy Request Rejected</strong> (`deploy_request_rejected`) — Fired when a pending deploy request from an untrusted contributor is rejected</li>
          <li><strong>Deploy Failed After Succeeding</strong> (`deploy_failed_after_succeeding`) — Fired when a deploy fails when the previous deploy of the site succeeded</li>
          <li><strong>Deploy Succeeded After Failing</strong> (`deploy_succeeded_after_failing`) — Fired when a deploy succeeds when the previous deploy of the site failed</li>
        </ul>
      </div>
    </Step>

    <Step title="Form submission events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to Netlify Forms.</p>

        <ul>
          <li><strong>Form Submission Created</strong> (`submission_created`) — Fired when a Netlify Forms submission is received, excluding submissions flagged as spam</li>
        </ul>
      </div>
    </Step>

    <Step title="Split test events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to split tests, which divide site traffic between branches.</p>

        <ul>
          <li><strong>Split Test Activated</strong> (`split_test_activated`) — Fired when a split test, which splits traffic between branches, starts on a site</li>
          <li><strong>Split Test Deactivated</strong> (`split_test_deactivated`) — Fired when a split test is stopped on a site</li>
          <li><strong>Split Test Modified</strong> (`split_test_modified`) — Fired when the branches or traffic split of a split test change</li>
        </ul>
      </div>
    </Step>

    <Step title="Dev server events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to Netlify dev servers, used by Agent Runners and Visual Editor.</p>

        <ul>
          <li><strong>Dev Server Created</strong> (`dev_server_created`) — Fired when a Netlify dev server, used by Agent Runners and Visual Editor, is created for a site</li>
          <li><strong>Dev Server Live</strong> (`dev_server_live`) — Fired when a Netlify dev server finishes starting and is live</li>
          <li><strong>Dev Server Stopped</strong> (`dev_server_stopped`) — Fired when a Netlify dev server is stopped</li>
          <li><strong>Dev Server Failed</strong> (`dev_server_failed`) — Fired when a Netlify dev server fails to start or crashes</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

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

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

  <Steps>
    <Step title="One event per request">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Netlify sends one event per HTTP POST with a JSON body. The event name is carried only in the `X-Netlify-Event` header (for example `deploy_created`). The body is the affected record itself (a deploy, form submission, split test or dev server), and StackOne uses its ID as the event ID, so a deploy can be fetched by its deploy ID.</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.