Overview
Webhooks in NocoDB can be triggered by various database operations and can send data to external URLs or execute custom scripts. Each webhook can have filters, custom headers, and configurable retry logic.Hook Events
Webhooks can be triggered by the following events:- after.insert - Triggered after a new record is created
- after.update - Triggered after a record is updated
- after.delete - Triggered after a record is deleted
- after.bulkInsert - Triggered after multiple records are created
- after.bulkUpdate - Triggered after multiple records are updated
- after.bulkDelete - Triggered after multiple records are deleted
- manual - Triggered manually via API or button click
Webhook Configuration
Basic Properties
Name of the webhook
Description of what the webhook does
The event that triggers the webhook (e.g., “after”, “manual”)
Operations that trigger the webhook:
insert, update, delete, bulkInsert, bulkUpdate, bulkDeleteWhether the webhook is active
Whether to execute the webhook asynchronously
URL Webhooks
The endpoint URL to send webhook data to
JSON string of custom headers to include in the request
Notification Integrations
Configuration for notification services (Slack, Discord, Email, etc.)
Retry Configuration
Number of retry attempts on failure (0-10)
Interval between retries in milliseconds
Request timeout in milliseconds
Conditional Triggers
Whether to use filter conditions
Only trigger on specific field updates (for update operations)
Array of column IDs that will trigger the webhook when updated
Webhook Payload
Webhooks send a structured JSON payload containing event details and record data.Payload Structure (v3)
Event type in format:
records.after.{operation}Example: records.after.insertUnique event ID (UUID)
Payload version:
v3User who triggered the event (if available)
Event data containing table information and records
ID of the table
Name of the table
Array of affected records (for insert/delete operations)
Array of records before update (for update operations)
Number of rows inserted (for bulkInsert operations)
Example Payloads
After Insert
After Update
After Bulk Insert
Custom Payload Templates
You can customize webhook payloads using Handlebars templates:Filter Conditions
Webhooks support complex filter conditions:- eq - Equals
- neq - Not equals
- like - Contains
- nlike - Does not contain
- gt / gte - Greater than / Greater than or equal
- lt / lte - Less than / Less than or equal
- empty / notempty - Is empty / Is not empty
- null / notnull - Is null / Is not null
- anyof / nanyof - Any of / None of
- allof / nallof - All of / Not all of
- checked / notchecked - Checkbox is checked / not checked
Best Practices
- Use Async Webhooks: Enable async execution for better performance
- Configure Retries: Set appropriate retry counts for critical webhooks
- Add Filters: Use conditions to reduce unnecessary webhook calls
- Monitor Logs: Check webhook logs to troubleshoot issues
- Secure Endpoints: Always use HTTPS and authentication headers
- Test First: Use the test webhook feature before activating
- Field-Specific Triggers: For updates, only trigger on specific field changes to reduce noise
Webhook Versions
NocoDB currently uses webhook version v3, which provides:- Multi-operation support (can trigger on multiple operations)
- Field-specific triggers for updates
- Improved payload structure
- Better performance and reliability
Webhook versions v1 and v2 are deprecated and not supported for new webhooks.