Re-Engagement SQL: Finding Non-Openers After Send
The non-opener pattern
Re-engagement journeys often target subscribers who received a send but never opened. Use a LEFT JOIN from _Sent to _Open on the four keys, then filter where no open exists.
Add _Subscribers to exclude unsubscribed or bounced profiles before export to a Data Extension.
Non-openers for a recent job
SELECT DISTINCT
s.SubscriberKey,
sub.EmailAddress,
s.JobID,
s.EventDate AS SentDate
FROM _Sent s
INNER JOIN _Subscribers sub ON s.SubscriberKey = sub.SubscriberKey
LEFT JOIN _Open o
ON s.JobID = o.JobID
AND s.ListID = o.ListID
AND s.BatchID = o.BatchID
AND s.SubscriberID = o.SubscriberID
WHERE s.EventDate >= DATEADD(day, -14, GETDATE())
AND o.SubscriberID IS NULL
AND sub.Status = 'active'
Operational notes
- Replace the date window with your re-engagement lookback policy.
- Consider IsUnique on _Open if you only care about first-open absence.
- Stage results to a DE before triggering a Journey entry event.
Related reference: _Sent · _Open · _Subscribers