> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qawolf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to integrate a non-native bug tracker with webhooks

> If we don't support your bug tracker through a native integration, you can still use webhooks to integrate.

<Tip>
  We know that each implementation will vary. Please reach out and let us know if you need any support.
</Tip>

### Set up the integration

<Steps>
  <Step>
    Open the `Workspace name` dropdown and click **Workspace settings**.

    <Frame>
      <img src="https://mintcdn.com/qawolf/4XZ5s3xcaUDfoNRS/images/integrate-your-issue-tracker/image-22.png?fit=max&auto=format&n=4XZ5s3xcaUDfoNRS&q=85&s=ad9958dd12553c38f58b2fd9ae3dd6b1" alt="" width="1232" height="506" data-path="images/integrate-your-issue-tracker/image-22.png" />
    </Frame>
  </Step>

  <Step>
    Navigate to **Integrations**.

    <Frame>
      <img src="https://mintcdn.com/qawolf/4XZ5s3xcaUDfoNRS/images/integrate-your-issue-tracker/image-23.png?fit=max&auto=format&n=4XZ5s3xcaUDfoNRS&q=85&s=6b471e0ed5ab33032af7592f5d06b3f5" alt="" width="1592" height="1062" data-path="images/integrate-your-issue-tracker/image-23.png" />
    </Frame>
  </Step>

  <Step>
    Click **Enable** next to Webhook.

    <Frame>
      <img src="https://mintcdn.com/qawolf/4XZ5s3xcaUDfoNRS/images/integrate-your-issue-tracker/image-24.png?fit=max&auto=format&n=4XZ5s3xcaUDfoNRS&q=85&s=d86dc3bdc471751d06bcb5f399c64529" alt="" width="1370" height="118" data-path="images/integrate-your-issue-tracker/image-24.png" />
    </Frame>
  </Step>

  <Step>
    Click **Connect** in the modal.

    <Frame>
      <img src="https://mintcdn.com/qawolf/4XZ5s3xcaUDfoNRS/images/integrate-your-issue-tracker/image-25.png?fit=max&auto=format&n=4XZ5s3xcaUDfoNRS&q=85&s=3113935608d217d9443816de6521e579" alt="" width="1510" height="1026" data-path="images/integrate-your-issue-tracker/image-25.png" />
    </Frame>
  </Step>

  <Step>
    Define a webhook title.

    <Frame>
      <img src="https://mintcdn.com/qawolf/4XZ5s3xcaUDfoNRS/images/integrate-your-issue-tracker/image-26.png?fit=max&auto=format&n=4XZ5s3xcaUDfoNRS&q=85&s=db1fc4138407792a2ae48e780d8a5435" alt="" width="1472" height="958" data-path="images/integrate-your-issue-tracker/image-26.png" />
    </Frame>
  </Step>

  <Step>
    Define the webhook URL and enable "Notify when bug report is opened." This is the location of the webhook used by your bug tracker.

    <Frame>
      <img src="https://mintcdn.com/qawolf/4XZ5s3xcaUDfoNRS/images/integrate-your-issue-tracker/image-27.png?fit=max&auto=format&n=4XZ5s3xcaUDfoNRS&q=85&s=8fdc7b101cb93643839ce681b0a98e15" alt="" width="1448" height="1750" data-path="images/integrate-your-issue-tracker/image-27.png" />
    </Frame>
  </Step>

  <Step>
    When an issue is created, your endpoint will receive `POST` requests with a JSON body (`Content-Type: application/json`). Here's the expected structure and an example payload.

    #### Expected JSON Body Fields

    The primary data is in the request body:

    * `id` (`string`): Unique bug report ID.
    * `title` (`string`): Bug report title.
    * `description` (`string`): Detailed description (may contain newlines/links).
    * `url` (`string`): Link to view the bug report in QA Wolf.
    * `event` (`string`): `bug-report-opened`.

    #### Example Payload

    This example shows the full request structure your endpoint will receive:

    ```json JSON theme={null}
    {
      "id": "<QAWOLF_BUG_REPORT_ID>",
      "title": "Bug Report Title",
      "description": "🐞\n\nBug report description:\nYou can see it here.\n\nBug report:\nhttps://app.qawolf.com/test-client/bug-reports/...\n\nAffected workflows:\n\n\nIf you are aware of this bug you can set the priority to low which will prevent it from causing a run failure.",
      "url": "https://app.qawolf.com/bug-reports/...",
      "event": "bug-report-opened"
    }
    ```

    #### Authentication

    If username and password are set, those will be used for basic HTTP authorization when performing the `POST` request against your webhook.
  </Step>

  <Step>
    Enable the "Notify when bug report is closed" toggle:

    <Frame>
      <img src="https://mintcdn.com/qawolf/4XZ5s3xcaUDfoNRS/images/integrate-your-issue-tracker/image-28.png?fit=max&auto=format&n=4XZ5s3xcaUDfoNRS&q=85&s=08cf88754a9d8bb7177c3d9132061ac8" alt="" width="1362" height="1702" data-path="images/integrate-your-issue-tracker/image-28.png" />
    </Frame>
  </Step>

  <Step>
    Make your webhook respond to the `POST` request with a payload containing these fields:

    * `externalId` (`string`): ID of the issue for the QA Wolf bug report in your issue tracker. It will be used to identify issues that will need to be updated in the future.
    * `humanId` (`string`): Human-friendly issue ID that will be used on QA Wolf UI, Slack messages and other integrations.
    * `url` (`string`): Link to the issue.
  </Step>

  <Step>
    **When a bug report is closed**, your endpoint will receive `POST` requests with a JSON body (`Content-Type: application/json`). Here's the expected structure and an example payload.

    #### Expected JSON Body Fields

    The primary data is in the request body:

    * `externalId` (`string`): The ID of the issue associated with the closed bug report.
    * `event` (`string`): `bug-report-closed`.
  </Step>
</Steps>
