Webhooks
Receive real-time notifications when files are processed. Stop polling buckets and start building event-driven pipelines.
Developer Note: Webhooks are fired immediately after a file transfer finishes, regardless of whether it succeeded or failed.
The Payload
We send a HTTP POST request to your configured URL with a JSON payload. The Content-Type header is always application/json.
{
"event": "file.status_changed",
"timestamp": "2024-03-15T10:30:00.000Z",
"data": {
"pipe_id": "pip_123456789",
"file_id": "fil_987654321",
"filename": "invoice_2024.pdf",
"status": "transferred",
"size": 1048576,
"sender": "client_abc",
"protocol": "sftp",
"destinations": [
{"destinationId": "dst_111222333", "status": "transferred"},
{"destinationId": "dst_444555666", "status": "transferred"}
]
}
}Integrations & Workflows
Zapier Automation
Connect your file pipelines to 6,000+ apps without writing code.
- Slack/Discord: Send team alerts when a critical dataset arrives.
- Email: Notify stakeholders of successful transfers.
- CRM: Log file receipt activities automatically.
n8n Workflows
Build complex, self-hosted automation workflows for enterprise data processing.
- AI Analysis: Pipe incoming PDFs directly to LLMs for extraction.
- Database: Sync metadata to Postgres/SQL immediately.
- Complex Logic: Branch workflows based on file naming conventions.
Security & Verification
To ensure requests are actually coming from Rilavek, we sign every request using the Secret Key you configured in the dashboard.
1. The Signature Header
Look for the X-Rilavek-Signature header. It contains a HMAC-SHA256 hash of the raw request body, hex-encoded.
2. View Example Implementation
Best Practices
- Idempotency: Use
file_idto ensure you don't process the same event twice (though we try to only send once). - Timeouts: Respond to the webhook quickly (within 10s). If your processing takes longer, queue the job and respond 200 OK immediately.
- Security: Always verify the signature if you are taking sensitive actions based on these events.