For the complete documentation index, see llms.txt. This page is also available as Markdown.

Sending webhook

Outgoing webhooks are a powerful feature for advanced users that can be used to integrate BugBug into your current workflow, such as sending custom notifications to your team's communicator, like Slack.

Before proceeding to the next step, set up a webhook in your external service. You will need the webhook configuration to populate the form fields.

Note: You can use built-in variables in any field, e.g., {{testRunId}}.

Set basic request data

In the first two fields, define the request method and the webhook URL. Currently, we support the most popular webhook request methods like POST and GET.

Method and Webohook URL fields on the setup screen

Define POST request body message

The Body field is optional and consumes JSON data. Its value depends on your needs and your external service provider's requirements.

If you need to send additional data through the webhook request, it's the best place to do so.

Testing a webhook alert

Before creating a new webhook alert, you can test it by clicking the "Trigger Alert" button.

It's a good practice to do this. It helps you avoid unexpected errors in the future, such as invalid credentials or an incorrect request body format.

Verify alert configuration

Define the POST request body message

When setting up the Body of your webhook, you can use variables available in the specific event context. Knowing this, for instance, you can set an alert that sends the test name via the POST method, with the body containing a variable that reflects the finished test's name.\

Request body with a bult-in variable

Reference for all available variables in webhook notification templates.

Common Variables (all context types)

Variable
Type
Description

{{eventId}}

UUID

Unique event ID for deduplication

{{eventName}}

string

Notification event (e.g., testFinished, suiteFinished)

{{status}}

string

Run status (passed, failed, error, etc.)

{{profileName}}

string

Run profile name

{{runMode}}

string

Run mode (cloud, local, recording)

{{started}}

string

ISO 8601 start timestamp

{{finished}}

string

ISO 8601 end timestamp

{{durationMs}}

int

Duration in milliseconds (e.g., 330500)

{{triggeredBy}}

string

Who triggered the run (user, scheduler, api)

{{organizationId}}

UUID

Organization ID

{{organizationName}}

string

Organization name

{{projectId}}

UUID

Project ID

{{projectName}}

string

Project name

{{projectUrl}}

URL

Link to project in webapp

{{timestampMs}}

int

Current epoch timestamp in milliseconds

{{timestamp}}

int

Alias for timestampMs (backward compatibility)

{{schemaVersion}}

string

Webhook payload schema version (e.g., v1)

{{objectsLimit}}

int

Maximum number of items per list (e.g., 10)

Test Run Variables

Available when the webhook is triggered by a test run event.

Variable
Type
Description

{{testName}}

string

Test name

{{testId}}

UUID

Test ID

{{testRunId}}

UUID

Test run ID

{{testRunUrl}}

URL

Link to test run details in webapp

{{testUrl}}

URL

Link to test definition in webapp

{{browser}}

string

Combined browser string (e.g., "Chrome 120.0")

{{browserName}}

string

Browser name

{{browserVersion}}

string

Browser version

{{os}}

string

Operating system name

{{screenSizeType}}

string

Screen size type (desktop, mobile, etc.)

{{extensionVersion}}

string

BugBug extension version

{{failedStepUrl}}

URL

Deep-link to first failed step (only for failed/errored runs)

{{failedStepId}}

UUID

Step Id of failed step

{{failedStepErrorCode}}

string

Error code that represents problem with the step

{{suiteId}}

UUID

Parent suite ID (if run within a suite)

{{suiteRunId}}

UUID

Parent suite run ID

{{suiteName}}

string

Parent suite name

{{suiteRunUrl}}

URL

Link to parent suite run details

{{scheduleId}}

UUID

Parent schedule ID (if run within a schedule)

{{schedulerRunId}}

UUID

Parent scheduler run ID

{{scheduleName}}

string

Parent schedule name

Suite Run Variables

Available when the webhook is triggered by a suite run event.

Variable
Type
Description

{{suiteId}}

UUID

Suite ID

{{suiteRunId}}

UUID

Suite run ID

{{suiteName}}

string

Suite name

{{suiteRunUrl}}

URL

Link to suite run details

{{suiteUrl}}

URL

Link to suite configuration

{{failedTestsCount}}

int

Number of failed tests

{{passedTestsCount}}

int

Number of passed tests

{{erroredTestsCount}}

int

Number of errored tests

{{totalTestsCount}}

int

Total number of tests (including skipped)

{{failedTests}}

JSON

Failed tests details (see structure below)

{{passedTests}}

JSON

Passed tests details (see structure below)

{{erroredTests}}

JSON

Errored tests details (see structure below)

{{failedTestsTruncated}}

bool

true if failed tests list was truncated to 10

{{passedTestsTruncated}}

bool

true if passed tests list was truncated to 10

{{erroredTestsTruncated}}

bool

true if errored tests list was truncated to 10

{{scheduleId}}

UUID

Parent schedule ID (if run within a schedule)

{{schedulerRunId}}

UUID

Parent scheduler run ID

{{scheduleName}}

string

Parent schedule name

Schedule Run Variables

Available when the webhook is triggered by a schedule run event.

Variable
Type
Description

{{scheduleId}}

UUID

Schedule ID

{{schedulerRunId}}

UUID

Scheduler run ID

{{scheduleName}}

string

Schedule name

{{scheduleUrl}}

URL

Link to schedule configuration

{{failedSuites}}

JSON

Failed suite runs (see structure below)

{{passedSuites}}

JSON

Passed suite runs (see structure below)

{{erroredSuites}}

JSON

Errored suite runs (see structure below)

{{failedSuitesTruncated}}

bool

true if failed suites list was truncated to 10

{{passedSuitesTruncated}}

bool

true if passed suites list was truncated to 10

{{erroredSuitesTruncated}}

bool

true if errored suites list was truncated to 10

{{failedTestsCount}}

int

Number of failed tests across all suites

{{passedTestsCount}}

int

Number of passed tests

{{erroredTestsCount}}

int

Number of errored tests

{{totalTestsCount}}

int

Total number of tests (including skipped)

{{failedTests}}

JSON

Failed tests details

{{passedTests}}

JSON

Passed tests details

{{erroredTests}}

JSON

Errored tests details

{{failedTestsTruncated}}

bool

true if failed tests list was truncated to 10

{{passedTestsTruncated}}

bool

true if passed tests list was truncated to 10

{{erroredTestsTruncated}}

bool

true if errored tests list was truncated to 10

JSON Structures

failedTests / passedTests / erroredTests

All three lists share the same structure:

Note: Test lists are limited to 10 entries to prevent oversized payloads.

failedSuites / passedSuites / erroredSuites

Available only in schedule run events:

Example Payloads

These example payloads are also available via the "Fill with example" button in the webapp webhook editor

Test Run

Suite Run

Schedule Run

Last updated

Was this helpful?