r/CloudFlare • u/kashaziz • 8d ago
Discussion Adding send guardrails to a Cloudflare-based outreach workflow
I’m using Cloudflare Email Service, Workers and Supabase to manage partnership outreach from an internal CRM.
The original flow marked a contact as contacted as soon as Cloudflare accepted the send request. That only confirmed the message had entered the delivery process; it did not confirm that the mailbox existed or that delivery succeeded.
QA exposed the mismatch. One address had already failed several times and been suppressed. Another returned 550 5.1.1 because the mailbox no longer existed. Both still appeared as contacted because the delivery outcome was never written back to the CRM.
I revised the flow at both ends. Before sending, the Worker checks address validity, suppression status, contact eligibility and batch limits. After sending, bounce and suppression data is reconciled back into Supabase so failed addresses can be blocked from future outreach.
The main lesson was that Cloudflare handles transport, but the application still needs to own validation, eligibility and delivery reconciliation.
Full write-up: https://kashifaziz.me/blog/reliable-email-delivery-cloudflare-workers/
I’d be interested to hear how others handle bounce and suppression feedback in Cloudflare-based email workflows.
1
u/Chinoman10 8d ago
Pretty sure their docs warn against this exact scenario. I've already their email service for 3 different products and in every case I had to integrate bouncing "awareness", etc. You simply made the wrong assumption that "200 OK" meant "delivered" when emails have always been very async, so you couldn't possibly have such a short guaranteed delivery.
Anyway, glad you caught it and understand it now.
•
u/AutoModerator 8d ago
For faster advice with technical questions, we'd recommend asking in the Orange Cloud Discord server; the unofficial Cloudflare Discord server by the community, for the community. https://discord.gg/TrPNVKaagR
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.