Webhooks

Introduction

Welcome to the Qase.io Webhooks documentation! Webhooks provide a way to notify your services about changes in Qase. A webhook consists of:

  • An entity - the resource that generates the events (e.g. Test Case).

  • One or more events (e.g. created).

  • A URL - the endpoint where you want Qase to send the event payloads when a matching event happens.

This documentation describes the structure of events and their payloads.

Webhooks are available in Startup, Business, and Enterprise subscriptions

How to set up webhooks?

Setting up a webhook is easy: navigate to the Settings of a project where webhooks will be needed, then select "Webhooks" and hit "Create new webhook":

There are a few parameters you need to define for a new webhook:

  • Basic:

    • Title: a name for your webhook.

    • Endpoint: a URL address that is configured on your side and is accessible to the public web; this address will be where Qase sends a request upon a defined event happening.

    • Secret: we are sending this text as an X-Qase-Secret header so that you can authenticate your webhook,

  • Events: in this section, you will set up a trigger for Qase to send a request to the endpoint; there are several to choose from, and it is also possible to enable multiple event-triggers for a single endpoint.

    • Test Cases:

      • Create test case

      • Update test case

      • Delete test case

      • Clone test case

    • Test Suites:

      • Create test suite

      • Update test suite

      • Delete test suite

      • Clone test suite

    • Test Plans:

      • Create test plan

      • Update test plan

      • Delete test plan

    • Shared Steps:

      • Create shared step

      • Update shared step

      • Delete shared step

    • Milestones:

      • Create milestone

      • Update milestone

      • Delete milestone

    • Custom Fields:

      • Create custom field

      • Update custom field

      • Delete custom field

    • Test Runs:

      • Test run start

      • Test run aborted

      • Test cases added to run

      • Delete test run

      • Complete test run

      • Public link turned on

    • Defects:

      • Create defect

      • Resolve defect

      • Delete defect

    • Reviews:

      • Create test review

      • Update test review

      • Approval status change

      • Reviewer added

      • Reviewer removed

      • Merge test review

      • Reopen test review

      • Comment test review

      • Decline test review

      • Delete test review

Event structure

Request example:

{
  "event_name": "shared_step.created",
  "timestamp": 1650540646,
  "payload": {
    "hash": "2563d587b756110934vea4185ce31b2b0dbf457c",
    "title": "test",
    "steps": [
      {
        "hash": "ed285acb6c7e575bce2576810c195ed8335e2812",
        "action": "action",
        "expected_result": "",
        "data": "",
        "attachments": []
      }
    ]
  },
  "team_member_id": 40,
  "project_code": "ID"
}

All requests that are produced by Qase are POST requests with data in JSON format with following data structure:

ParameterTypeDescription

event_name

string

Event name

timestamp

integer

Time when event has been triggered

payload

object

An object with payload data related to event

team_member_id

integer

Action initiator

project_code

string

Project code where the event takes place

Last updated