Contract expiry and renewal alerts at 90, 60 and 30 days

A daily flow checks contract end dates and alerts owners in Teams with the signed PDF attached.

TriggerRecurrence — daily, 8:30 AM Malaysia time
ConnectorsSharePoint · Microsoft Teams · Office 365 Outlook
CategoryCompliance

The problem

Contracts auto-renew on bad terms or lapse because nobody tracked the notice period.

The outcome

Owners get alerts with enough time to renegotiate or terminate.

Before you start

  • Signed contracts library with End Date, Notice Period (days) and Owner columns.

Build it step by step

  1. Compute target dates — Compose today + 90, + 60 and + 30 days.
    Expression / setting
    formatDateTime(addDays(utcNow(), 90), 'yyyy-MM-dd')
  2. Find matches — Get files where End Date equals any target date.
  3. Alert owners — Post an adaptive card with buttons: Renew, Terminate, Ignore.
  4. Act on the response — Renew → create a renewal task and start the contract-to-Sign flow; Terminate → generate the termination notice.
  5. Log — Record the decision on the contract item.

Connector action names are shown as they appear in Power Automate at the time of writing; Microsoft and Adobe occasionally rename actions or add new versions.

Error handling

  • Use the notice period, not just the end date — alert at end date minus notice period minus 30 days.

Licensing

  • Standard connectors.

Variations

  • Have a Copilot agent summarise renewal terms from the signed PDF in the alert.

Common in: Legal · GLCs · Hospitality