Appearance
Webhooks
Outbound webhooks let you automatically send row data to external services when triggered from the Data Platform. Use webhooks to connect SchemaStack to tools like Zapier, Make, n8n, or any HTTP endpoint.
How Webhooks Work
- Configure — Set up a webhook endpoint in your view's properties
- Select — Choose rows in the Data Platform
- Send — Use the "Send to webhook" bulk action
- Receive — Your endpoint receives the row data as JSON
Setting Up a Webhook
Add a Webhook Endpoint
- Open a view in the Data Platform
- Click the Properties panel (right sidebar)
- Scroll to the Webhooks section
- Click Add Webhook
- Fill in:
- Name — A descriptive label (e.g., "Zapier - New Subscribers")
- URL — Your webhook endpoint URL (must be HTTPS in production)
- Headers — Optional custom HTTP headers (key-value pairs)
- HMAC Secret — Optional signing secret for payload verification
- Click Save
Enable/Disable Webhooks
Toggle the enabled switch next to any webhook to temporarily disable it without deleting the configuration.
Sending Data to a Webhook
- Select rows in the Data Platform (individually or "Select All")
- Click the more menu (⋯) in the bulk action bar
- Choose Send to webhook
- Pick which webhook endpoint to send to
- Confirm the send
The operation runs asynchronously — you'll see progress in the bulk operation status bar, and the delivery result appears in the webhook's delivery log.
Payload Format
SchemaStack sends a JSON payload with this structure:
json
{
"rows": [
{ "id": 1, "name": "Alice", "email": "[email protected]" },
{ "id": 2, "name": "Bob", "email": "[email protected]" }
],
"metadata": {
"viewId": "a1b2c3d4-...",
"tableName": "contacts",
"rowCount": 2,
"timestamp": "2026-04-04T12:00:00Z",
"jobId": "e5f6g7h8-..."
}
}HTTP Headers
Every webhook request includes:
| Header | Description |
|---|---|
Content-Type | application/json |
User-Agent | SchemaStack-Webhook/1.0 |
X-SchemaStack-Delivery-Id | Unique delivery ID (same as jobId) |
X-SchemaStack-Signature | HMAC-SHA256 signature (if secret configured) |
Plus any custom headers you configured.
HMAC Signature Verification
If you set an HMAC secret, SchemaStack signs each payload with HMAC-SHA256:
X-SchemaStack-Signature: sha256=<hex-encoded-signature>To verify in your endpoint:
javascript
const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return `sha256=${expected}` === signature;
}Delivery Log
Each webhook shows a delivery log with:
- Status code — HTTP response from your endpoint
- Duration — Round-trip time in milliseconds
- Attempt number — Retry attempt (up to 3)
- Response body — First 4KB of the response
- Error message — If the delivery failed
Retry Policy
Failed deliveries are retried up to 3 times with exponential backoff:
| Attempt | Delay |
|---|---|
| 1st | Immediate |
| 2nd | 1 second |
| 3rd | 4 seconds |
Retries occur for server errors (5xx) and rate limits (429). Client errors (4xx except 429) are not retried.
Limits
- Maximum rows per send: 10,000
- Request timeout: 30 seconds
- Response body stored: 4KB (truncated)
- SSRF protection: Private/internal IPs are blocked
Use with Zapier
The easiest way to connect SchemaStack to external services is through Zapier:
- Set up a Webhooks by Zapier trigger (Catch Hook)
- Copy the webhook URL from Zapier
- Add it as a webhook in SchemaStack
- Send test data to map fields in Zapier
- Connect to any of Zapier's 7,000+ integrations
See the Zapier Integration guide for details.