- Consistency: Your endpoint always receives payloads in the same format.
- Control: You decide when to adopt new schema changes.
- Stability: Prevents unexpected breaking changes due to schema updates.
Available Versions
We recommend always using the latest version of the webhook payload schema to benefit from new features and improvements. Below are the currently available versions:2026-02-11 (Latest)
- What’s New:
- Added
numberValuefield tothreadField. - Added
NUMBERto thethreadField.typeenum.
- Added
- View JSON Schema
2025-08-06
- What’s New:
- Added
additionalAssigneestothread. - Added
externalIdandisExcludedFromAifields tolabelType.
- Added
- View JSON Schema
2025-07-30
- What’s New:
threadField.createdByandthreadField.updatedBychanged frominternalActortoactor(now supports customer and other actor types).
- View JSON Schema
2024-09-18
Our first official versioned webhook payload schema.
- What’s New:
- Introduction of webhook versioning.
- Improved forward-compatibility schema definitions for payloads.
- Microsoft Teams events.
- New thread status details.
- View JSON Schema
unversioned
The legacy webhook payload schema before versioning was implemented.
How to Upgrade to the Latest Version
Upgrading to the latest webhook version involves updating your code to handle the new schema and changing your webhook target settings in Plain.Step 1: Update Your Code
Modify your code to handle both the old and new webhook payload versions during the transition period. This ensures uninterrupted processing of events. Deploy this updated code, and fast follow with Step 2.Step 2: Update the Webhook Target in Plain
After deploying your updated code, change the version of your webhook target in Plain to the new version. This ensures that all future webhook events are sent using the latest schema.Step 3: Revert Temporary Code Changes
Once you have confirmed that your application is successfully processing events with the new version, you can remove the code that handles both old and new versions. Your code can now exclusively handle the latest webhook payload schema.Ensure that your webhook handling code is idempotent and can gracefully handle duplicate
events. Plain’s webhook delivery is at least once, meaning the same event might be delivered
multiple times. Refer to our delivery
semantics for more
information.
Identifying the Webhook Version in Received Payloads
If you receive a webhook payload and are unsure which version it is using, you can identify the version by checking:- Headers: The
Plain-Webhook-Target-Versionheader indicates the version of the webhook target for which this request is intended. - Payload Metadata: Within the webhook metadata in the payload body, the
webhookTargetVersionfield specifies the version of the webhook target for this request.
Best Practices and Recommendations
- Monitor Logs: After upgrading, monitor your logs and error tracking systems for any issues related to webhook processing.
- Stay Informed: Keep an eye on our documentation and change log for future updates or changes to the webhook schema.

