Portal Community
How to Use These Examples Each example shows a complete node configuration as a JSON block. You can copy this into the node's JSON editor in BizFirstAI, or use the property tables as a guide when configuring through the visual UI. All JSON fields correspond exactly to the configuration properties documented in the Configuration page.

Example 1 — Stripe Payment Webhook

Stripe sends a webhook on every payment event (success, failure, refund). This configuration accepts the POST from Stripe, validates it using an API key stored as a BizFirstAI credential, and immediately responds with 200 so Stripe does not retry. The workflow then processes the event asynchronously.

{
  "node_type": "WebhookTrigger",
  "name": "Stripe Payment Event",
  "config": {
    "path": "/integrations/stripe/payments",
    "method": "POST",
    "authentication": "apiKey",
    "credential_id": "cred_stripe_webhook_secret",
    "response_mode": "onReceived",
    "response_status_code": 200,
    "response_data": {
      "received": true,
      "execution_id": "{{ $trigger.execution_id }}"
    },
    "raw_body": false,
    "max_payload_size": 1048576
  }
}
Expected Outcome: Stripe posts a payment_intent.succeeded event. BizFirstAI acknowledges immediately with {"received": true, "execution_id": "exec_..."}}. Downstream nodes update the accounts receivable system, send a customer receipt email, and log the transaction in the audit database — all without blocking Stripe's webhook delivery.

Example 2 — GitHub Push Event for CI/CD

GitHub sends a webhook when code is pushed to a repository. This configuration listens on a dedicated path, validates using GitHub's HMAC signature (stored as a Bearer credential), and waits for the full workflow result before responding — allowing BizFirstAI to return a deployment job ID to GitHub's webhook delivery log.

{
  "node_type": "WebhookTrigger",
  "name": "GitHub Push Event",
  "config": {
    "path": "/ci/github/push",
    "method": "POST",
    "authentication": "bearerToken",
    "credential_id": "cred_github_webhook_hmac",
    "response_mode": "lastNode",
    "response_status_code": 200,
    "response_headers": {
      "X-BizFirst-Pipeline": "github-ci",
      "X-Workflow-Version": "2.1"
    },
    "raw_body": false,
    "max_payload_size": 2097152
  }
}
Expected Outcome: GitHub posts a push event containing repository name, branch, commit SHA, and author details. BizFirstAI holds the connection, runs the CI workflow (linting, tests, deploy-staging), and returns the pipeline run ID to GitHub as the response body. The delivery log shows a 200 with the job reference.

Example 3 — SAP ERP Inventory Change Sync

An SAP system fires a webhook whenever an inventory record is updated. The path uses a named parameter to capture the plant code, enabling a single workflow to handle updates from multiple facilities. Basic Auth ensures only the SAP integration middleware can call this endpoint.

{
  "node_type": "WebhookTrigger",
  "name": "SAP Inventory Update",
  "config": {
    "path": "/erp/sap/inventory/:plantCode",
    "method": "PUT",
    "authentication": "basicAuth",
    "credential_id": "cred_sap_webhook_basic",
    "response_mode": "onReceived",
    "response_status_code": 202,
    "response_data": {
      "status": "queued",
      "plant": "{{ $trigger.params.plantCode }}",
      "queued_at": "{{ $trigger.received_at }}"
    },
    "raw_body": false,
    "max_payload_size": 5242880
  }
}
Expected Outcome: SAP posts inventory deltas for plant PLANT-EU-03 to /erp/sap/inventory/PLANT-EU-03. BizFirstAI extracts the plant code from the path, responds 202 Accepted, and then asynchronously syncs the changes to the WMS and e-commerce platform's inventory feed.

Example 4 — Shopify New Order Processing

Shopify posts an order creation webhook whenever a customer completes checkout. This configuration receives the full order object and immediately starts the fulfillment workflow while returning a minimal acknowledgment to Shopify.

{
  "node_type": "WebhookTrigger",
  "name": "Shopify New Order",
  "config": {
    "path": "/ecommerce/shopify/orders/created",
    "method": "POST",
    "authentication": "apiKey",
    "credential_id": "cred_shopify_hmac_key",
    "response_mode": "onReceived",
    "response_status_code": 200,
    "response_data": {
      "ok": true
    },
    "raw_body": false,
    "max_payload_size": 2097152
  }
}
Expected Outcome: Shopify delivers a full order JSON (customer info, line items, shipping address, payment status). BizFirstAI immediately acknowledges, then: validates inventory availability, reserves stock in the WMS, generates a packing slip PDF, and sends an order confirmation email to the customer — all within seconds of the order being placed.

Example 5 — Datadog Alert Escalation

A Datadog monitoring alert fires when a critical metric threshold is breached. This configuration receives the alert payload and immediately routes it to the on-call team via PagerDuty, creates a JIRA incident ticket, and sends an SMS to the infrastructure lead.

{
  "node_type": "WebhookTrigger",
  "name": "Datadog Critical Alert",
  "config": {
    "path": "/monitoring/datadog/alerts",
    "method": "POST",
    "authentication": "apiKey",
    "credential_id": "cred_datadog_webhook_key",
    "response_mode": "onReceived",
    "response_status_code": 200,
    "response_data": {
      "alert_received": true,
      "escalation_started": true,
      "execution_id": "{{ $trigger.execution_id }}"
    },
    "raw_body": false,
    "max_payload_size": 524288
  }
}
Expected Outcome: Datadog posts an alert body containing the metric name, threshold, current value, and affected hosts. BizFirstAI responds immediately, then fans out: opens a P1 ticket in JIRA, notifies the on-call engineer via PagerDuty, and sends an SMS with the alert summary. A separate branch logs the event in the operations database for trend analysis.