
Error Handling
Part of Automated campaign approvals
Handling approval timeouts in a campaign workflow
An approval timeout means the campaign has no decision by its deadline.
An approval timeout means the campaign has no decision by its deadline. It is neither a rejection of the content nor permission to send. A reliable workflow holds the campaign, tells the owner what happened and provides a controlled path to a new decision or schedule. The steps below use Microsoft Power Automate approvals as the worked example.
Set the deadline around the send
Work backwards from the planned launch. Allow time for a reviewer to inspect the draft, for the owner to revise it and for any required retest. For a launch at 10am on a Tuesday, for example, a decision deadline at 10am the previous Thursday leaves two business days for changes and a retest.
A reminder should arrive before the decision is urgent, for example one business day before the deadline. An escalation should go to a named authorised delegate, such as the campaign manager's deputy recorded in the approval plan, not an unspecified group inbox. If no authorised person can respond, reschedule or cancel.
Distinguish your business deadline from the platform's technical limit. Microsoft states that a Power Automate approval flow can wait for 28 days; if the wait exceeds 28 days, the flow fails. That ceiling is far longer than a sensible campaign review period, so the workflow needs its own shorter deadline.
A failed flow does not close the request. Microsoft notes that the approval continues to exist in the action centre, so an abandoned request can remain open with no flow waiting on it. The requestor or an environment admin then has to delete it manually.
Key Limits and Best Practices in Power Automate Approvals
- Recommended review period
- 2 business days
- Timeout format (ISO 8601)
- P2D for two days
- Status on timeout
- Cancelled with ActionTimedOut code
Handle each outcome explicitly
In Power Automate, add the Start and wait for an approval action and enter the approver in the Assigned To box; the request goes to that email address. Basic approvals end as Approved, Rejected or Cancelled, and Microsoft advises a condition or switch statement rather than a do until loop. Only an approval from the authorised person against the current draft can advance.
To enforce your own deadline, set a timeout on the approval step. In the Azure Logic Apps workflow schema, the limit.timeout property uses ISO 8601 format, such as P2D for two days. If the action has not finished when the interval lapses, its status is marked Cancelled with the ActionTimedOut code.
Then use Run after settings, which specify what happens if an action fails, times out, is skipped or is successful. A typical timeout branch sets the campaign status to on hold, emails the owner and delegate with the campaign name, draft version and missed deadline, and stops the flow. A technical error needs investigation rather than a silent retry that could create duplicate requests.
A rejection returns the draft for changes with comments. If the owner resubmits after a timeout, issue a new request tied to the current version and expiry. Record the old request as superseded, and delete it from the action centre, so a late click cannot unlock a campaign that has already changed.
Test a missed response
Use a test campaign with a short deadline, such as a timeout of a few minutes, and no customer recipients. Let the request expire. Verify that no send occurs, the owner receives a clear status, the delegate path behaves as designed and a late response cannot release the old version. Repeat after changing the draft.
Record the expiry time, the notification recipients and whether any send was attempted, then compare the result with the expected timeout path. Check the action centre as well, so no stale request from the test remains open.



