CJM-124396: Add messageExclusion details fields to messageFeedback schema#2077
CJM-124396: Add messageExclusion details fields to messageFeedback schema#2077waykar-prashant merged 2 commits intoadobe:masterfrom
Conversation
| "message-exclusion-details": { | ||
| "properties": { | ||
| "https://ns.adobe.com/experience/customerJourneyManagement/messageExclusionDetails/invalidDomains": { | ||
| "title": "Invalid Domains", |
There was a problem hiding this comment.
I suggest adding a map to store additional details so it can be reused by any exclusion to attach metadata specific to that exclusion. With the current approach, we would need to introduce a new optional field for each exclusion type, which would then appear on the exclusion object even when it isn’t applicable. For example, invalidDomains is only relevant to a specific exclusion type, not all of them.
Using a map avoids this issue, and the map keys (e.g., invalidDomains) can be clearly documented.
bisin-adobe
left a comment
There was a problem hiding this comment.
I am seeing an error in Publishing this schema. Please fix it
A field is missing a required 'type' attribute. Field path: /definitions/messageDeliveryfeedback/properties/https:11ns.adobe.com1experience1customerJourneyManagement1messageDeliveryfeedback1messageExclusion/properties/https:11ns.adobe.com1experience1customerJourneyManagement1messageDeliveryfeedback1details/additionalProperties"
|
@bisin-adobe I have added the fix in this PR: #2141 |
Summary
Add a new
detailsfield tomessageExclusionin the message delivery feedback XDM schema to capture exclusion-specific metadata for monitoring and troubleshooting. The field is modeled as an inline dynamic map, allowingpersonalizedDomainNotValidto includeinvalidDomainswhile supporting different keys and value shapes for other exclusion reasons.Changes Made
Schema Updates
message-delivery-feedback.schema.jsondetailsundermessageExclusiondetailsas an inline map usingtype: objectandmeta:xdmType: "map"additionalPropertiesExample Updates
message-delivery-feedback.example.2.jsondetailspersonalizedDomainNotValidwith:invalidDomainsas a dynamic map keyDesign Decisions
detailsis defined directly insidemessageExclusionto keep the schema simple and localizeddetailsremains optional, and existing exclusion payloads continue to work unchangedUse Cases
Exclusion Reason
personalizedDomainNotValidWhen a message is excluded because of invalid personalized domains,
detailscan include:invalidDomains: array of invalid domainsThis enables:
Testing
Examples
Without exclusion details
{ "messageExclusion": { "code": "SomeOtherExclusionCode", "reason": "SomeOtherExclusionReason" } }With exclusion details
{ "messageExclusion": { "code": "050109", "reason": "personalizedDomainNotValid", "details": { "invalidDomains": ["example.com", "test-domain.org"] } } }