Use the linked Message Personalization Attributes to filter Contact History data. Since Message-linked Personalization Attributes can be any type and all types are supported for Contact History expressions except dynamic and script Attributes, the same expression types, operators, patterns, and other formatting functions discussed in other sections of this Wiki page, apply.
Example 1
Criteria: -Qualify if: -Message 'M1' has been extended at least once -In 'SMS' Channel -AND M1 has property 'coupon code': RTY4567 Expression: set("extendedCH", contactHistory("response", "extended", "message", "msg1", "channel", "sms")) && count(extendedCH) >= 1 && set("couponcodes", contactHistory(extendedCH, "attribute", "ContactHistory.Messaging.pcat.couponcode", "RTY4567")) && count(couponcodes) > 0
Message Attributes with Decision Attributes
Example 2
Criteria: -Qualify if: -Message 'M1' has been extended at least once -In 'SMS' Channel -AND M1 has property 'coupon code': RTY4567 -AND Device ID used was 'xyz' Expression: set("extendedCH", contactHistory("response", "extended", "message", "msg1", "channel", "sms")) && count(extendedCH) >= 1 && set("couponcodes", contactHistory(extendedCH, "attribute", "ContactHistory.Messaging.pcat.couponcode", "RTY4567")) && count(couponcodes) > 0 set("deviceids", contactHistory(extendedCH, "attribute", "ContactHistory.sms.dcat.deviceid", "xyz")) && count(deviceids) > 0