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

# Parallel Webhook Setup Guide

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

<section data-guide-section data-guide-scopes="">
  <h2>Webhook setup</h2>

  <p>This connector uses Manual Webhooks. Parallel has no webhook subscription screen or API — instead, every task run, FindAll run and monitor carries its own webhook URL and event list. Pass the StackOne Native Webhook URL in the `webhook` object of each request whose events you want delivered to StackOne.</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="Add the URL to your Parallel requests">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Set `webhook.url` to the Native Webhook URL and list the events you want in `webhook.event_types` when calling any of these actions. Parallel only delivers the event types listed in the request.</p>

        <ul>
          <li>Create Task Run and Add Runs to Task Group accept `task_run.status`.</li>
          <li>Create FindAll Run accepts any of the `findall.candidate.*` and `findall.run.*` events.</li>
          <li>Create Monitor and Update Monitor accept any of `monitor.event.detected`, `monitor.execution.completed` and `monitor.execution.failed`.</li>
        </ul>
      </div>
    </Step>

    <Step title="Find the webhook signing secret">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to the <a href="https://platform.parallel.ai" target="_blank" rel="noopener noreferrer">Parallel Platform</a> and open <strong>Webhooks</strong> under <strong>Settings</strong>. The <strong>Active Secret</strong> signs every webhook Parallel sends. StackOne does not need this secret — copy it only if you also verify webhook signatures in your own systems.</p>

        <ul>
          <li>Clicking <strong>Generate new secret</strong> rotates the secret for every webhook on the account.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/5IlaXCCFBwGKgDpF/connectors/parallel/images/events-webhook-secret.png?fit=max&auto=format&n=5IlaXCCFBwGKgDpF&q=85&s=cc9ec1e3d177123f956a5189c25b8388" alt="Parallel Platform Settings page with the Webhooks tab and the Active Secret highlighted" width="1280" height="800" data-path="connectors/parallel/images/events-webhook-secret.png" />
      </div>
    </Step>
  </Steps>
</section>

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

  <p>The following Parallel events can be delivered to StackOne. Only events listed in a request's `webhook.event_types` are sent for that task run, FindAll run or monitor.</p>

  <Steps>
    <Step title="Task run events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to task runs, including runs added to a task group.</p>

        <ul>
          <li><strong>Task Run Status</strong> (`task_run.status`) — Fired when a task run finishes, whether it completed or failed</li>
        </ul>
      </div>
    </Step>

    <Step title="FindAll events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to FindAll runs and the candidates they evaluate.</p>

        <ul>
          <li><strong>FindAll Candidate Generated</strong> (`findall.candidate.generated`) — Fired when a new candidate is generated and queued for evaluation</li>
          <li><strong>FindAll Candidate Matched</strong> (`findall.candidate.matched`) — Fired when a candidate matches all of the run's match conditions</li>
          <li><strong>FindAll Candidate Enriched</strong> (`findall.candidate.enriched`) — Fired when enrichment data has been extracted for a matched candidate</li>
          <li><strong>FindAll Run Completed</strong> (`findall.run.completed`) — Fired when a FindAll run reaches the completed status</li>
          <li><strong>FindAll Run Canceled</strong> (`findall.run.cancelled`) — Fired when a FindAll run is canceled</li>
          <li><strong>FindAll Run Failed</strong> (`findall.run.failed`) — Fired when a FindAll run fails due to an error</li>
        </ul>
      </div>
    </Step>

    <Step title="Monitor events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events related to scheduled monitor runs.</p>

        <ul>
          <li><strong>Monitor Event Detected</strong> (`monitor.event.detected`) — Fired when a monitor run detects one or more material changes</li>
          <li><strong>Monitor Execution Completed</strong> (`monitor.execution.completed`) — Fired when a monitor run completes without detecting changes</li>
          <li><strong>Monitor Execution Failed</strong> (`monitor.execution.failed`) — Fired when a monitor run fails due to an error</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

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

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

  <ul>
    <li>Each request carries a single event as a JSON object with `type`, `timestamp` and `data`.</li>
    <li>The event ID is the ID of the affected resource, so it can be fetched with the matching action — the task run (`run_id`), FindAll candidate (`candidate_id`), FindAll run (`findall_id`) or monitor event group (`event_group_id`), or the monitor itself (`monitor_id`) for completed and failed runs.</li>
    <li>Failed deliveries are retried with exponential backoff for up to 48 hours.</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.