Never miss a domain or certificate renewal deadline

By General Input

Every Monday, check your domain and certificate renewal dates, refresh the tracker, and get a Slack digest of everything due in the next 45 days.

Integrations

  • SecurityTrails
  • Google Sheets
  • Slack
  • Jira

Type

Deterministic Code

Categories

  • Operations
  • Engineering

Every Monday at 8:00am, run a domain and certificate renewal check so nothing in our portfolio silently expires. Build this as a deterministic code workflow: every step is a fixed lookup, a date subtraction, a threshold comparison, and a formatted output, so no reasoning or judgement is required at run time.

Start by reading the watchlist from Google Sheets with Get Values. The tab has one row per domain, with the domain name in the first column, followed by the columns this workflow maintains: domain expiry date, days until domain expiry, certificate expiry date, days until certificate expiry, and last checked. Skip the header row and ignore any row where the domain cell is empty.

For each domain on the list, call SecurityTrails Get WHOIS and read the registration expiry date, then call SecurityTrails Get Domain SSL Certificates and read the not-after date on the certificate that is currently valid. That operation returns both current and historical certificates, so select the active one, meaning the certificate that covers today and has the latest not-after date, rather than an already expired record. Compare both dates against today in UTC and compute the whole number of days remaining for the domain registration and for the certificate.

Write the refreshed dates and day counts back to the same rows with Google Sheets Update Values, along with the last checked timestamp, so the tab doubles as a live renewal tracker rather than a static list. If a domain has private or redacted registration and no expiry date is published, or if no current certificate is found, write unknown into those cells, leave the day count blank, and carry on with the remaining domains instead of failing the whole run.

Then filter to everything expiring within 45 days, treating the domain registration and the certificate as separate items so a single domain can contribute two entries. Post one formatted digest to Slack with Send a Message, sorted soonest first. Each line shows the domain, what is expiring (domain registration or certificate), the expiry date, and the number of days left. Send the whole digest as a single message, not one message per domain. If nothing falls inside the 45 day window, still post the message and state explicitly that all domains and certificates are clear for the next 45 days, so a quiet week is never confused with a broken workflow. Add a short footer listing any domains where an expiry date could not be determined, so a missing answer stays visible instead of looking like a pass.

Finally, for anything at 14 days or less, create a Jira ticket with Create Issue so the urgent ones land in a sprint instead of a chat scroll. Title each ticket with the domain and the deadline, for example "example.com certificate expires 2026-08-20 (9 days left)", and put the expiry date, the days remaining, and which item is expiring in the description. Create one ticket per expiring item, and mark those items in the Slack digest so it is obvious which ones were escalated.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats