Automated list hygiene for agent mail: bounce and complaint webhooks a suppression list Nylas has introduced a feedback loop for autonomous email agents that automatically suppresses addresses that bounce or receive spam complaints. The system uses webhooks, a suppression list, and a block rule to prevent agents from repeatedly mailing dead or hostile addresses. This approach eliminates the need for manual CSV scrubbing or custom database maintenance, as the suppression logic is enforced at the platform level across all agent accounts in a workspace. Sending to dead or hostile addresses tanks your deliverability. A hard bounce means the mailbox doesn't exist; a complaint means a human hit "this is spam." Mailbox providers watch both rates obsessively, and once yours climb, they stop trusting your domain — your good mail starts landing in spam too. The cruel part is that an autonomous email agent will happily keep hammering a bad address forever unless you stop it, because nothing in a naive send loop ever learns that an address went bad. Most "AI email" hygiene advice stops at "authenticate your domain and warm it up." That's table stakes. The interesting problem is the feedback loop : the agent sends, some sends fail or get reported, and you need that failure signal to flow back into the agent's behavior automatically. No human in the loop scrubbing CSVs. This post wires deliverability webhooks straight into a suppression List and a block rule , so an address that bounces or complaints once is never mailed again. I work on the Nylas CLI, so the terminal commands below are the exact ones I reach for. Every step shows both the raw HTTP call and the CLI equivalent, because that's how I actually debug this stuff — curl to see the wire, CLI to do it fast. The whole thing is a four-piece loop: message.bounced , message.complaint tell you which addresses went bad, in real time. address holds those bad addresses. recipient.address in list