feat(cdp): add calendar-day deduplication options for destinations#55433
feat(cdp): add calendar-day deduplication options for destinations#55433meikelmosby merged 6 commits intomasterfrom
Conversation
Adds two new trigger options for destinations: "Run once per person per calendar day" and "Run once per person per event name per calendar day". These use the date in the masking hash (via formatDateTime(now())) so the dedup boundary is the calendar day, not a rolling time window. This solves the case where a 24h rolling interval suppresses events across day boundaries (e.g. 3pm Monday event masks 10am Tuesday event). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Size Change: +481 B (0%) Total Size: 129 MB ℹ️ View Unchanged
|
|
Adds "Once per calendar day" frequency option to workflows (HogFlows), matching the destination feature. Parameterizes the calendar-day masker tests to reduce duplication and adds a HogFlow-specific calendar day test. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
dmarchuk
left a comment
There was a problem hiding this comment.
I think at least the banner change would be good to adjust before merging, but otherwise looks good!
When the "per event name per calendar day" option is selected, the info banner now suggests "Run once per person per calendar day" instead of "Run once per person per interval" as the alternative. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The calendar day boundary uses UTC. Person timezone support via ifNull(person.properties.$geoip_time_zone) causes bytecode evaluation issues in the masker and needs further investigation. For now, keep UTC and make it explicit in the option labels with "(UTC)" suffix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds two new trigger options for destinations: "Run once per person per calendar day" and "Run once per person per event name per calendar day". These use the date in the masking hash (via formatDateTime(now())) so the dedup boundary is the calendar day, not a rolling time window.
This solves the case where a 24h rolling interval suppresses events across day boundaries (e.g. 3pm Monday event masks 10am Tuesday event).
closes https://posthog.com/questions/custom-deduplication-logic
Destinations

Workflows
