How to use webhooks in Vaiz


The Send webhook action in Vaiz board automations lets you push real-time task and comment events to external HTTP endpoints—such as CI/CD pipelines, incident responders, internal microservices, or integration platforms—whenever a step in an automation chain executes.

For creating automation chains, configuring triggers, and adding Yes / No condition branches, see How to set up automations in Vaiz.

How outgoing webhooks work in Vaiz

When an automation chain reaches a Send webhook step, Vaiz sends an HTTP request with the following behavior:

  • Method and headers: POST with Content-Type: application/json.
  • Payload: A JSON object where any {Variable} placeholders inside string values are replaced with the live values of the task (and comment, when triggered by Comment added). Special characters such as quotes and line breaks are JSON-escaped automatically so the payload stays valid.
  • Timeout and status codes: Vaiz waits up to 30 seconds for your endpoint to respond with a 2xx HTTP status code.
  • Multiple webhooks per chain: Unlike single-instance task actions, you can place multiple Send webhook steps in the same chain—either sequentially along a branch or on separate Yes and No branches pointing to different URLs.

Step 1. Add a Send webhook step to a chain

  1. Open your board's Settings → Automation tab and open an automation chain (or click + Create automation).
  2. Click + on the Next, Yes, or No port where you want the webhook to fire.
  3. In Step settings on the right, set Step kind to Action and Operation to Send webhook.
  4. Enter the destination endpoint in the URL field (for example, https://ci.horizon.cloud/webhooks/deploy).
Configuring a Send webhook action step with URL and JSON body in Step settings

Step 2. Build the JSON body with dynamic variables

In Step settings, the JSON body field defines the JSON object sent in the POST body.

To write a structured payload and insert dynamic variables:

  1. Click the expand icon (Open JSON editor) in the top-right corner of the JSON body field.
  2. Click Available variables in the bottom toolbar of the modal to browse all supported placeholders for the current chain.
  3. Click Format JSON to validate and pretty-print your JSON object, then click Apply.
  4. Click Publish in the bottom-right corner of Step settings to activate the updated webhook step.
The JSON body editor modal showing a webhook payload and the Available variables list
Note: The editor validates that your payload is a top-level JSON object ({ ... }). If the JSON syntax is invalid, the Publish button stays disabled until the syntax error is fixed.

Available variables reference

Place any of the following variables inside string values in your JSON body:

Variable
Description
{TaskId}
Unique database identifier of the task
{Hrid}
Human-readable task key (for example, CORE-214)
{Title}
Title/name of the task
{ProjectId}
ID of the project containing the task
{ProjectName}
Name of the project containing the automation board
{BoardId}
ID of the board containing the task
{BoardName}
Name of the automation board
{GroupId}
Task group (column) ID on the automation board
{GroupName}
Task group (column) name on the automation board
{Status}
Task completion status (completed or uncompleted)
{Completed}
Whether the task is completed (true or false)
{Archived}
Whether the task is archived (true or false)
{Priority}
Numeric task priority level (0 to 4)
{PriorityName}
Priority label: Low, General, Medium, High, or Urgent
{DueStart}
Task start date (ISO 8601 string, or empty if unset)
{DueEnd}
Task due date (ISO 8601 string, or empty if unset)
{Assignees}
Array of assigned user IDs
{AssigneeNames}
Comma-separated full names of assigned members
{TypeIds}
Comma-separated task type IDs on the automation board
{TypeNames}
Comma-separated task type names on the automation board
{CommentText}
Text content of the comment (available when the chain trigger includes Comment added)
{CommentAuthorName}
Full name of the comment author (available when the chain trigger includes Comment added)
{CommentAuthorEmail}
Email address of the comment author (available when the chain trigger includes Comment added)

Example JSON payloads

1. Trigger a CI/CD or QA environment webhook when a task moves to Ready for QA

{
  "event": "qa_ready",
  "taskKey": "{Hrid}",
  "title": "{Title}",
  "project": "{ProjectName}",
  "board": "{BoardName}",
  "group": "{GroupName}",
  "assignees": "{AssigneeNames}"
}

2. Page an on-call responder when an Urgent hotfix is created or escalated

{
  "event": "urgent_hotfix",
  "taskId": "{TaskId}",
  "hrid": "{Hrid}",
  "summary": "[{Hrid}] {Title}",
  "priority": "{PriorityName}",
  "types": "{TypeNames}",
  "dueAt": "{DueEnd}"
}

3. Forward new task comments to an external support or audit endpoint

When your chain's Trigger includes Comment added, you can include the comment author and text alongside the task metadata:

{
  "event": "task_comment_added",
  "taskKey": "{Hrid}",
  "taskTitle": "{Title}",
  "authorName": "{CommentAuthorName}",
  "authorEmail": "{CommentAuthorEmail}",
  "comment": "{CommentText}"
}
Build branching automation chains
Combine webhook calls with Yes/No conditions, Slack notifications, custom field updates, and the AI chain composer.
How to set up automations in Vaiz