Database Webhooks
Database Webhooks allow you to send real-time data from your database to another system whenever a table event occurs.
You can hook into three table events: INSERT
, UPDATE
, and DELETE
. All events are fired after a database row is changed.
Database Webhooks are very similar to triggers, and that's because Database Webhooks are just a convenience wrapper around triggers using the pg_net extension. This extension is asynchronous, and therefore will not block your database changes for long-running network requests.
This video demonstrates how you can create a new customer in Stripe each time a row is inserted into a profiles
table:
note
Database Webhooks were previously known as Function Hooks.
Creating a webhook#
- Create a new Database Webhook in the Dashboard.
- Give your Webhook a name.
- Select the table you want to hook into.
- Select one or more events (table inserts, updates, or deletes) you want to hook into.
We currently support HTTP webhooks. These are sent as a POST
request with a JSON payload.
Payload#
The payload is automatically generated from the underlying table record:
type InsertPayload = {
type: 'INSERT'
table: string
schema: string
record: TableRecord<T>
old_record: null
}
type UpdatePayload = {
type: 'UPDATE'
table: string
schema: string
record: TableRecord<T>
old_record: TableRecord<T>
}
type DeletePayload = {
type: 'DELETE'
table: string
schema: string
record: null
old_record: TableRecord<T>
}
Resources#
- pg_net: an async networking extension for PostgreSQL