The expensive mistake is treating a policy rejection as a dead mailbox. A 550 for a mailbox that does not exist and a 550 naming your sending IP demand opposite responses, and only one of them is a list problem. Model quality decides whether that distinction survives, which makes OpenCode's model field the setting to think about here.
Run a staged conversation — no account needed. The agent handles it for real while a simulated world answers its tool calls; nothing touches real accounts, and nothing is actually sent.
Maartje de Vries
550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient's email address for typos. First permanent failure for this address, sent by the July invoice reminder campaign. The contact opened eleven emails before this and last clicked on 14 June.
Using this template drops you into a guided setup. It asks exactly this, nothing else:
Connect Mailgun
One sign-in. The agent acts through your account, scoped to what this template uses.
Connect HubSpot
One sign-in. The agent acts through your account, scoped to what this template uses.
Connect Slack
One sign-in. The agent acts through your account, scoped to what this template uses.
List hygiene rules
What a hard bounced address should become in HubSpot: which field to set, to which value, and where the bounce details get written. The agent only ever makes the changes this names.
Alert criteria
Which bounces are worth interrupting someone for, for example a paying customer domain, a VIP account, or more than five bounces on one domain in a day. Everything else stays silent.
Runs on OpenCode
Preselected for this page — connect your OpenCode account during setup, or switch to NoClick's built-in models with one click.
Watch it handle a test run
A staged conversation against a simulated world — then it’s live.
One marks a contact, the other changes nothing and posts evidence to Slack. Reading the provider's own words closely is the whole difference.
Volume is high and each run is small, so you can afford to test a stronger model on the classification and leave everything else alone.
Blocked At The Domain is built for this, with four addresses at one customer domain failing on a sender policy rejection that names an IP. Correct behaviour is to change nothing in HubSpot and post the evidence for a person. A model that marks those contacts invalid will quietly damage a real account list at volume.
Free to start. Guided setup, a test run against staged conversations, and it's live.