Webhooks
What are Plate Webhooks
Webhooks allow you to receive real-time notifications when specific events occur in your Plate application. This guide explains how to create, configure, and use webhooks to integrate with external systems. They provide a way to receive instant notifications about:
- Content changes (posts, elements, sections)
- Form submissions
- User authentication events
- Site translations
- Content object modifications
Available Events
The following event types are available for webhook configuration:
Content Events
- Posts: Create, Update, Status Change, Destroy
- Elements: Create, Update, Destroy
- Sections: Create, Update, Destroy
- Content Objects: Create, Update, Destroy
Form Events
- Form Messages: Create
Authentication Events
- Authentication Objects: Create, Update, Destroy, Confirm Email
Site Events
- Site Translations: Update
Create a Webhook
Create a new webhook by clicking the API button under the header 'Development' in the sidebar and create a new webhook. You need to configure the following parameters:
- Name: A name for your webhook
- Event Class: The specific event type to listen for
- URL: The endpoint where webhook data will be sent
- Active Status: Whether the webhook is enabled or disabled
Webhook Payload Structure
When a webhook is triggered, your webhook endpoint will receive a POST request with the following JSON structure:
{
"event": "post.create",
"data": {
"id": "123",
"type": "post",
"attributes": {
"title": "Sample Post",
"content": "Post content...",
"status": "published"
}
}
}
Payload Fields
Field | Description | Example |
---|---|---|
event | The event type in resource.action format | post.create , element.update |
data | The complete data object for the involved content item, formatted as API JSON | {"id": "123", "type": "post", "attributes": {...}} |
Handling Deleted Content Items
If a content item has been deleted, the payload will contain minimal information:
{
"event": "post.destroy",
"data": {
"id": "123"
}
}
Event Filtering
You can configure filters to receive webhooks only for specific conditions:
Available Filters
- Element Type: Filter by specific element types
- Section Type: Filter by specific section types
- Post Type: Filter by specific post types
- Content Type: Filter by content object types
- Authentication Type: Filter by authentication object types
Filter Configuration
- Select an event class that supports filtering
- Choose the filter type from the dropdown
- Select the specific value to filter on
- Add multiple filters as needed
Example: Configure a webhook for "Post Create" events, filtered to only trigger for "Blog Post" type posts.
Testing Webhooks
Send Test Webhook
Test your webhook by clicking the 'test' button in the webhook index page.
This allows you to verify:
- URL accessibility
- Request format
- Response handling
Testing Checklist
- Webhook URL is accessible
- Server responds with 2xx status code
- Request headers are properly set
- JSON payload is valid
- Your application processes the data correctly
HTTP Request Details
Headers
Webhook requests include the following headers:
Content-Type: application/json
User-Agent: PlateWebhooks
Accept: */*
Request Method
All webhook requests use the POST method.