> ## Documentation Index
> Fetch the complete documentation index at: https://qawolf-mintlify-a5022248.mintlify.site/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-mintlify-a5022248/5bTgFtd3THBiKbPh/images/integrate-your-issue-tracker/image-22.png?fit=max&auto=format&n=5bTgFtd3THBiKbPh&q=85&s=c7f4f12084548d4aa4a5c66088a1c441" 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-mintlify-a5022248/5bTgFtd3THBiKbPh/images/integrate-your-issue-tracker/image-23.png?fit=max&auto=format&n=5bTgFtd3THBiKbPh&q=85&s=407453478153d5e17009e4ade4c252bc" 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-mintlify-a5022248/5bTgFtd3THBiKbPh/images/integrate-your-issue-tracker/image-24.png?fit=max&auto=format&n=5bTgFtd3THBiKbPh&q=85&s=54082211b156c9d1c05be16fd422d75d" 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-mintlify-a5022248/5bTgFtd3THBiKbPh/images/integrate-your-issue-tracker/image-25.png?fit=max&auto=format&n=5bTgFtd3THBiKbPh&q=85&s=8e60958ce02afaff5c6e2bdccfc0d463" 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-mintlify-a5022248/5bTgFtd3THBiKbPh/images/integrate-your-issue-tracker/image-26.png?fit=max&auto=format&n=5bTgFtd3THBiKbPh&q=85&s=f2a5cdd03e5310f38f2befc6c526cb4d" 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-mintlify-a5022248/5bTgFtd3THBiKbPh/images/integrate-your-issue-tracker/image-27.png?fit=max&auto=format&n=5bTgFtd3THBiKbPh&q=85&s=cd6a77da6a7111aac8db6e4c1c750a41" 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-mintlify-a5022248/5bTgFtd3THBiKbPh/images/integrate-your-issue-tracker/image-28.png?fit=max&auto=format&n=5bTgFtd3THBiKbPh&q=85&s=457de35b46374bffe44109eee29fcc24" 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>
