Writing the intended action to your own database in the same transaction as the state change, then sending it from there, so you never record an action you did not send, or send one you did not record.
You have done this if
An approval and the email it triggers are saved together, and a worker sends emails from that table.
Say it in a review
Agent actions go through an outbox, so the approval and the side effect can't drift apart.
On the AI Application map Human review, Enterprise APIs