Portal Community
Trigger Nodes Have No Inputs As a trigger node, the Webhook Trigger has no upstream inputs. It is always the first node in a workflow. All data it produces comes from the incoming HTTP request itself — the body, headers, query string, and path parameters are all captured and made available downstream.

Output Ports

Port Name When Triggered Description
main On every valid incoming HTTP request that passes authentication The primary output port. Carries the full parsed webhook request as a structured data object. All downstream nodes in the workflow receive this data as their starting input.
Authentication Failures Requests that fail authentication are rejected before the workflow starts. They do not produce any output on the main port and do not consume a workflow execution. The caller receives a 401 Unauthorized or 403 Forbidden HTTP response.

Output Data

The main output port provides a single item containing the following top-level keys:

Key Type Description
body Object / String The parsed request body. For application/json, this is a deserialized JSON object. For application/x-www-form-urlencoded, it is a key-value object. For other content types, or when raw_body is true, this is a raw string.
headers Object All HTTP request headers as a key-value object. Header names are lowercased. Includes standard headers like content-type, user-agent, authorization, and any custom headers from the caller.
query Object URL query string parameters parsed into a key-value object. For example, a request to /orders?status=pending&limit=20 produces {"status": "pending", "limit": "20"}. All values are strings unless explicitly cast.
params Object Named path parameters extracted from the URL path. For a path configured as /orders/:orderId/items/:itemId, a request to /orders/ORD-001/items/ITEM-42 produces {"orderId": "ORD-001", "itemId": "ITEM-42"}.
method String The HTTP method used by the caller (e.g., POST, GET). Useful when the same workflow logic handles multiple methods or for audit logging.
url String The full URL of the incoming request, including protocol, host, path, and query string. Useful for debugging and audit trails.
received_at ISO 8601 String Server-side timestamp of when the webhook was received, in UTC. Format: 2024-06-15T14:32:00.000Z.
execution_id String Unique identifier for this workflow execution, assigned at trigger time. Useful for correlating logs and responding to the caller with a tracking ID.

Data Flow Example

Below is a representative data object produced by the Webhook Trigger node for a POST request from a Stripe payment webhook. This is the object available to all downstream nodes as $trigger or via the node output reference.

{
  "body": {
    "id": "evt_3PQr0sLkdIwHu7ix0WZ1XYZQ",
    "object": "event",
    "type": "payment_intent.succeeded",
    "created": 1718461920,
    "livemode": true,
    "data": {
      "object": {
        "id": "pi_3PQr0sLkdIwHu7ix0AbCdEfG",
        "amount": 8500,
        "currency": "usd",
        "status": "succeeded",
        "customer": "cus_Qr8MnLpZxYw001",
        "metadata": {
          "order_id": "ORD-20240615-0042",
          "customer_email": "jane.doe@acmecorp.com"
        }
      }
    }
  },
  "headers": {
    "content-type": "application/json",
    "user-agent": "Stripe/1.0 (+https://stripe.com/docs/webhooks)",
    "stripe-signature": "t=1718461920,v1=a3f9c2b4e8d0...",
    "x-forwarded-for": "54.187.174.169",
    "host": "hooks.bizfirstai.com"
  },
  "query": {},
  "params": {},
  "method": "POST",
  "url": "https://hooks.bizfirstai.com/webhook/stripe-payments",
  "received_at": "2024-06-15T14:32:00.000Z",
  "execution_id": "exec_7Hk2mNpQr9XwYz"
}

Accessing Data in Downstream Nodes

Use BizFirst expressions to access any part of the webhook data in subsequent nodes:

ExpressionReturns
{{ $trigger.body.type }}"payment_intent.succeeded"
{{ $trigger.body.data.object.amount }}8500
{{ $trigger.body.data.object.metadata.order_id }}"ORD-20240615-0042"
{{ $trigger.headers["stripe-signature"] }}The Stripe signature string
{{ $trigger.received_at }}"2024-06-15T14:32:00.000Z"
{{ $trigger.execution_id }}"exec_7Hk2mNpQr9XwYz"