Daily IP reputation screening with Slack threat alerts
Every morning we check your list of IP addresses for abusive activity, update your spreadsheet, and alert your team only about the risky ones.
Every morning at 7am, run on a cron schedule to screen my IP watchlist against AbuseIPDB and only bother me about the risky ones.
First, read the column of IP addresses from my Google Sheet using Google Sheets' Get Values. These are the IPs hitting our login and API endpoints, or an allowlist we want to keep clean. Assume the IPs sit in a single column (for example column A, with a header row) and read the current values each run so we always work from the latest list.
For each IP, check its abuse reputation with AbuseIPDB's Check IP Reputation. AbuseIPDB enforces a daily per-endpoint quota, so cap how many rows are checked per run (default to the first 200 IPs) to avoid exhausting the quota. The abuseConfidenceScore is an integer from 0 to 100, where higher means more likely malicious.
Write the abuse confidence score, the last-reported date, and the top abuse category back next to each IP using Google Sheets' Update Values, so the sheet stays current. AbuseIPDB returns abuse categories as integer IDs, so translate them to words before writing (for example 18 = Brute-Force, 22 = SSH, 14 = Port Scan, 4 = DDoS, 10 = Email Spam). Use the most-reported category as the top abuse category.
For any IP whose confidence score crosses the threshold I set (default 75), post a Slack alert with Send a Message that names the IP, its score, and what it has been reported for, so my team can decide whether to block it. Only alert on IPs at or above the threshold to avoid noise; the clean IPs should still be updated in the sheet but should not trigger a message.
If several IPs cross the threshold in the same run, group them into a single Slack alert so the channel is not flooded, listing each risky IP with its score and top abuse category.
What does this prompt do?
- Reads a column of IP addresses from your Google Sheet each morning, such as the IPs hitting your login and API endpoints or an allowlist you want to keep clean.
- Checks each address against a global abuse database and records its risk score, when it was last reported, and what it was reported for.
- Writes those results back next to each IP so your spreadsheet always reflects the latest reputation.
- Sends a Slack alert only for the high-risk addresses, so your team can decide what to block without wading through noise.
What do I need to use this?
- A Google account with the spreadsheet that holds your IP list.
- An AbuseIPDB account (the free tier works for modest lists).
- A Slack workspace and the channel where you want threat alerts to land.
How can I customize it?
- Change the alert threshold (the default risk score is 75) to make alerts stricter or more sensitive.
- Adjust the run time or how many IPs are checked each morning to stay within your AbuseIPDB plan's daily limit.
- Point it at a different sheet, column, or Slack channel.
FAQs
What counts as a risky IP address?
Will this change my spreadsheet?
Does it alert me about every IP?
Do I need a paid AbuseIPDB plan?
Can I run it more or less often than daily?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
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.
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.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Stop manually checking IPs against threat lists.
Let this run every morning so risky addresses surface in Slack before they cause trouble.