Event

trigger.taiga_event
TriggerBusiness appsconnection requiredruns in-engine

Registers a webhook in the tenant's Taiga project on publish and starts one run per delivery, verified against Taiga's HMAC-SHA1 signature.

Start a run when something changes in a Taiga project — an issue, user story, task, sprint or wiki page.

Connection

Required
Yes — the node will not save without one
Auth type
Bearer token
Providers
Taiga
Secret shape
the Taiga auth token as {"auth_token": "…"}, or {"username": "…", "password": "…"} to log in with
Config it needs
base_url
Resolved by
config.connection_id, else node.connection_id
Note
The account must be able to administer the project's webhooks — a member without that right can read issues and still fail to publish. Publishing also needs MANTLE_APP_PUBLIC_BASE_URL set to a URL the Taiga instance can reach, which for a self-hosted Taiga behind a firewall is the usual reason a registration succeeds and no delivery ever arrives.

Configuration

2 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
project
Id of the Taiga project to watch — the numeric primary key, not the project slug. Taiga has no per-event subscription, so the webhook fires for every object in this project; branch on 'type' and 'action'.
integerYes—≥ 112
name
What the webhook is called in the project's settings, so whoever finds it there knows where it came from.
stringNoMantle workflow trigger1–250 characters—

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "name": "Mantle workflow trigger",
  "project": 12
}

Output

One shape.

taiga event

The flattened Taiga delivery. data's own keys vary by type, so the shape is open below the declared fields.

Extra keys beyond the ones listed can appear.

FieldTypeExample
type
Which kind of object changed — milestone, userstory, task, issue or wikipage. A Taiga webhook fires for the whole project, so this is what a workflow branches on.
stringissue
action
What happened to it: create, change or delete.
stringcreate
date
When Taiga raised the event, as an ISO-8601 timestamp. Part of the idempotency key, never used as a clock.
string2026-04-12T12:00:56.335Z
by.id
Id of the Taiga user who caused the event.
number6
by.username
That user's username.
stringuser1
by.full_name
That user's display name.
string—
object_id
Taiga's internal primary key for the changed object, lifted out of data so the next node need not dig.
number118
object_ref
The per-project reference number shown in the Taiga UI (#31), where the object has one. Null for a wikipage.
number31
project_id
Id of the project the object belongs to.
number12
subject
The object's one-line subject, where its type has one. Empty for a wikipage, which has a slug instead.
string—
permalink
Taiga's own URL for the object.
string—
version
The object's optimistic-concurrency version — send it back on a taiga.update_issue so Taiga can refuse a stale write.
number1
change
On a 'change' action, Taiga's diff block (comment, edit_comment_date and a 'diff' of the fields that moved). Empty on create and delete.
object—
data
Taiga's own object, verbatim. Its keys depend on type, which is why this shape is open.
object—
payload
The delivery envelope exactly as Taiga sent it, for anything the fields above do not lift out.
object—
{
  "action": "create",
  "by": {
    "full_name": "Purificacion Montero",
    "id": 6,
    "username": "user1"
  },
  "change": {},
  "data": {
    "id": 118,
    "project": {
      "id": 12,
      "name": "Acme",
      "slug": "acme"
    },
    "ref": 31,
    "subject": "Checkout returns a 500 on retry",
    "version": 1
  },
  "date": "2026-04-12T12:00:56.335Z",
  "object_id": 118,
  "object_ref": 31,
  "payload": {
    "action": "create",
    "type": "issue"
  },
  "permalink": "https://tree.taiga.io/project/acme/issue/31",
  "project_id": 12,
  "subject": "Checkout returns a 500 on retry",
  "type": "issue",
  "version": 1
}

Notes

  • Publishing creates the webhook in Taiga; unpublishing, disabling or archiving deletes it. A workflow that is off is off at Taiga too.
  • A Taiga webhook is per project and cannot be narrowed to one event type — every create, change and delete in the project starts a run, so branch on 'type' and 'action' early.
  • Deliveries are verified against Taiga's X-TAIGA-WEBHOOK-SIGNATURE, an HMAC-SHA1 over the raw body; an unsigned or mis-signed POST is refused with 401 before any run starts.
  • Taiga sends no delivery id, so a redelivery is recognised from the event's own type, action, object id, version and date.

See Event run in a workflow.

In a technical demo we add the Taiga connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.