Breaking change
WebhookEvent.data now uses Map<String, Object> instead of HashMap<String, String> so webhook payloads can contain structured data such as customVariables.
Migrating from v2
Webhook values must now be cast to the appropriate type:
WebhookEvent webhookEvent =
client.webhook.constructEvent(rawBody, signature);
String actionCode =
(String) webhookEvent.data.get("actionCode");
Map<?, ?> customVariables =
(Map<?, ?>) webhookEvent.data.get("customVariables");
String journeyType =
(String) customVariables.get("action_journeyType");Applications remaining on v2 are unaffected.
New features
- Support structured webhook values, including objects, arrays, numbers and booleans.
- Support
customVariablesin webhook events. - Add
constructLogEventBatchand models for batched log events.
Bug fixes
- Fix deserialization failures for nested webhook values.
- Improve invalid webhook payload handling and validation.
- Prevent batched log events from being parsed as single webhook events.
Full Changelog: v2.10.2...v3.0.0