18-Jun-2026 — campaign recipient address, per-list post-send actions, Pub/Sub guidance, and scoped cl... #278

build 702commit 4b2fd87


Campaign "Sent to" footer showed the sender's address for every recipient

The branded email layout footer renders Sent to {{params.memberMergeFields.EMAIL}}. For campaigns these params tokens must be rewritten to {{contact.EMAIL}} so Brevo fills in each recipient's own address, and that rewrite only runs when renderBrandedTemplate is called with campaign = true.

Whole-list sends now run their post-send actions

The disable / bulk-delete post-send actions previously only ran on the transactional selected-members path; a whole-list campaign send never applied them.

Inbox push (Pub/Sub) setup is clearer about its topic

Enabling real-time WATCH delivery on a mailbox needs a Pub/Sub topic that already exists and lets Gmail publish to it. The admin page gave no hint of which topic, and a missing topic failed with a raw "topic not found".

"Clear all forwards" now deletes the live Cloudflare rules, scoped and confirmed

On the committee email settings, "Clear all forwards" previously only set every role's forwardEmailTarget to CATCHALL in NGX's own config; it issued no Cloudflare deletes. The live per-role forwarding rules stayed active, and because Cloudflare matches literal rules before the catch-all, they kept diverting role mail away from the catch-all inbox — so the button did not actually achieve "everything via the catch-all".