WorkflowsBuildTriggers

Webhook Trigger

Receive data from external systems via HTTP requests

Webhook triggers start your workflow when an external system sends an HTTP request. Use them to integrate with any system that can make HTTP calls.

Getting Your Webhook URL

When you add a webhook trigger to your workflow:

  1. Select Webhook as the trigger type
  2. Click Generate URL
  3. Copy the unique URL:
https://steel.flint.com/workflows/triggers/webhook/{your-webhook-secret}

This URL is unique to your workflow. Anyone with this URL can trigger your workflow.

Configuring the Trigger

Defining the Payload Schema

Tell Flint what data to expect by defining a schema:

  1. In the trigger configuration, click Define Schema
  2. Add fields with their types:
Field NameTypeRequired
customer_idStringYes
order_totalNumberYes
itemsArrayNo

Or paste a JSON example and Flint will infer the schema:

{
  "customer_id": "cust_123",
  "order_total": 99.99,
  "items": [
    { "sku": "WIDGET-A", "qty": 2 }
  ]
}

Validation Mode

Choose how to handle requests that don't match your schema:

ModeBehavior
StrictReject requests with wrong/missing fields
LenientAccept requests, use defaults for missing fields
NoneAccept any payload without validation

HTTP Methods

By default, webhooks accept POST requests. You can also enable:

  • PUT — For update operations
  • PATCH — For partial updates

GET is not supported as it cannot carry a request body.

Sending Requests to Your Webhook

Basic Request

curl -X POST "https://steel.flint.com/workflows/triggers/webhook/{your-webhook-secret}" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "cust_123",
    "order_total": 99.99
  }'

Security

The webhook URL includes a unique secret that authenticates requests. Anyone with the URL can trigger the workflow, so:

  • Keep the URL private — Don't commit it to version control or share in public channels
  • Regenerate if compromised — If the URL is exposed, generate a new webhook secret
  • Use HTTPS only — All webhook URLs are HTTPS, ensuring encryption in transit

Accessing Webhook Data

In your workflow, access the payload via trigger:

{{trigger.customer_id}}
{{trigger.order_total}}
{{trigger.items[0].sku}}

All fields from your webhook payload are accessible directly on the trigger object.

Response

When a webhook is received, Flint immediately returns a 200 OK response and begins processing the workflow asynchronously. The caller doesn't need to wait for workflow completion.

Testing Your Webhook

Using the Test Feature

  1. In the workflow editor, click Test Trigger
  2. Enter sample payload or use a saved example
  3. Click Send Test
  4. View the workflow run

Using External Tools

Test with curl, Postman, or your integration's test feature:

curl -X POST "https://steel.flint.com/workflows/triggers/webhook/{your-webhook-secret}" \
  -H "Content-Type: application/json" \
  -d '{"test": true, "data": "sample"}'

Common Integration Patterns

Troubleshooting

IssueCauseSolution
400 Bad RequestInvalid JSON or schema mismatchValidate JSON and check schema
404 Not FoundWrong URLVerify webhook URL is correct
Workflow not runningWorkflow disabledEnable the workflow
TimeoutWorkflow too slowUse immediate response mode

On this page