Inbound webhooks let external systems trigger your flows by sending HTTP requests to Plinqx. Configure webhook triggers in your flows to receive data from external services.Documentation Index
Fetch the complete documentation index at: https://hypha-docs.plinqx.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Inbound webhooks enable:- External Integration: Receive data from external services
- Event-Driven Flows: Trigger flows based on external events
- Flexible Endpoints: Custom webhook paths for each flow
- Secure Authentication: HMAC or API key authentication
- Sync or Async: Choose response mode based on your needs
How Inbound Webhooks Work
Configuring Webhook Triggers
Set Webhook Path
Configure the webhook path (e.g.,
/production/v1, /staging/webhook).Webhook paths must be unique within your tenant. Paths must start with
/ and cannot be just /.Configure Settings
Set:
- HTTP Methods: Which methods to accept (POST, GET, PUT, PATCH, DELETE)
- Authentication: HMAC, API Key, or None
- Response Mode: Sync (wait for result) or Async (acknowledge immediately)
- Response Format: Wrapped or raw output format
Webhook URL Format
Your webhook URL follows this format:The webhook URL is automatically generated when you configure a webhook trigger. Copy it from the flow configuration.
Authentication Methods
HMAC Authentication
HMAC (Hash-based Message Authentication Code) provides secure webhook verification:
HMAC Signature Format:
The signature is calculated as:
X-Webhook-Signature: The HMAC signatureX-Webhook-Timestamp: Unix timestamp
API Key Authentication
Use API key authentication for simpler integration:No Authentication
For development or internal systems, you can disable authentication:Response Modes
Async Mode (Default)
Async mode acknowledges the request immediately and processes the flow in the background:- Response: Immediate 202 Accepted
- Use Case: Long-running flows, fire-and-forget
- Response Body:
{ "accepted": true, "flowRunId": "..." }
Sync Mode
Sync mode waits for the flow to complete before responding:- Response: Flow execution result
- Use Case: Need immediate response, short-running flows
- Timeout: 30 seconds (configurable)
Sync mode is useful when the caller needs the flow result immediately. Use async for long-running flows.
Response Formats
Wrapped Format (Default)
Returns a structured response:Raw Format
Returns just the END node output directly:HTTP Methods
Webhook triggers support multiple HTTP methods:- POST: Most common, sends data in request body
- GET: Query parameters and headers only
- PUT: Full resource update
- PATCH: Partial resource update
- DELETE: Resource deletion
Configure which methods your webhook accepts. Multiple methods can be enabled.
Input Mapping
Map webhook request data to flow inputs:- Query Parameters: Access via
query.paramName - Headers: Access via
headers.HeaderName - Body: Access via
body.fieldName - Path Variables: Access via
path.variableName
Calling Webhooks
Example: POST Request
Example: GET Request
Managing Inbound Webhooks
Viewing Active Webhooks
Testing Webhooks
Test your webhook triggers:Security Best Practices
Use HMAC
Always use HMAC authentication for production webhooks
Rotate Secrets
Periodically rotate webhook secrets
Validate Inputs
Validate and sanitize webhook inputs in your flows
Monitor Access
Monitor webhook access in audit logs
Error Handling
Webhook errors return appropriate HTTP status codes:- 404 Not Found: Invalid webhook path or flow not found
- 405 Method Not Allowed: HTTP method not configured
- 401 Unauthorized: Authentication failed
- 400 Bad Request: Invalid request format
- 500 Internal Server Error: Flow execution error
Next Steps
Flow Triggers
Learn about all trigger types
Flow Designer
Build flows with webhook triggers