Daily data breach monitoring for key email accounts

Check key email accounts against known data breaches every weekday, log every exposure to a spreadsheet, and get a Slack alert when a new breach shows up.

Deterministic Code
Have I Been PwnedGoogle SheetsSlack BotOperationsEngineeringResearch & MonitoringNotifications & Alerts
PromptCreate

Every weekday morning at 8am, run this as a deterministic code workflow that monitors a watchlist of high-value email addresses (executives, shared mailboxes, and the personal accounts your leaders use for work) against Have I Been Pwned and records any breach exposure to a Google Sheet. Use a cron trigger. Have I Been Pwned is not a webhook or poll source, and keeping the watchlist in a Sheet lets it be edited without changing the workflow.

Start by reading the watchlist. Use Google Sheets Get Values to read the email addresses from the 'Watchlist' tab (one address per row, for example column A). Then read the existing log with Get Values on the 'Log' tab so you have every email and breach name that has already been recorded, and build a lookup of these previously logged pairs so you can tell new findings from ones already on file.

For each email address, look it up in Have I Been Pwned. Call Get Breaches for Account (request the full breach model with truncateResponse=false so you get the breach date and data classes, not just the name) and Get Pastes for Account. URL-encode the email in the path. Treat a 404 response as 'clean, no results' rather than an error, and simply move on to the next address.

For every breach and paste returned, append one row to the 'Log' tab with Append Values. Each row should contain the email address, the breach name, the breach date (BreachDate, in YYYY-MM-DD form), the exposed data classes (the DataClasses list joined into a readable string), whether the finding is new (yes if the email and breach name were not already in the log, no otherwise), and the date the check ran.

Finally, for each brand-new breach (one whose email and breach name were not already in the log), send an alert to the security channel with Slack Bot's Send a Message. Include the monitored email address, the breach name, the breach date, and the exposed data classes so the security team can act. Do not alert on breaches that were already recorded in the log. Only newly appeared breaches should trigger a message.

Example output

New breach detected for a monitored account Email: cfo@yourcompany.com Breach: LinkedIn Scraped Data (2021) Breach date: 2021-06-22 Exposed data: Email addresses, Names, Phone numbers, Geographic locations

What does this prompt do?

  • Reads a watchlist of email addresses (executives, shared mailboxes, personal accounts) from a Google Sheet you control.
  • Checks each address against the Have I Been Pwned database of known breaches and pastes every weekday morning.
  • Logs every exposure to a spreadsheet tab, one row per finding, with the breach name, breach date, and what data was exposed.
  • Sends a Slack alert to your security channel the moment a brand-new breach appears for someone on the list.

What do I need to use this?

  • A Have I Been Pwned API subscription (needed to check individual email addresses).
  • A Google account with a spreadsheet that holds your watchlist and a tab to log findings.
  • A Slack workspace with a bot that can post to your security channel.

How can I customize it?

  • Change when it runs, for example earlier in the morning or every day instead of only weekdays.
  • Edit the watchlist directly in the spreadsheet to add or remove monitored addresses, with no need to touch the workflow.
  • Point alerts at a different Slack channel or adjust which details each alert includes.

FAQs

Which email addresses should I monitor?
Anything high-value: executive inboxes, shared mailboxes like billing@ or support@, and even the personal accounts your leaders use for work. Because the list lives in a spreadsheet, you can add or remove addresses anytime without changing the automation.
What counts as a new breach?
The workflow keeps a running log of everything it has already seen. When a breach shows up for a monitored address that is not already in the log, it is treated as new and triggers a Slack alert.
Will I get spammed with alerts for old breaches?
No. Existing breaches are quietly recorded in the log, and only brand-new appearances trigger a Slack message, so your security channel stays quiet unless something genuinely changed.
What happens if an address has never been breached?
That is the good outcome. A clean address simply produces no findings and no alert, and the workflow moves on to the next one.
Do I need a paid Have I Been Pwned plan?
Yes. Checking specific email addresses requires a Have I Been Pwned API subscription. The workflow works with any of their paid tiers.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task

Know the moment your key accounts are exposed.

Set up automatic breach monitoring for your most important email addresses and let your team focus on responding, not checking.