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.

Agentic Task
AbuseIPDBGoogle SheetsSlackEngineeringOperationsNotifications & AlertsResearch & MonitoringData Sync
PromptCreate

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?
Each address gets an abuse confidence score from 0 to 100 based on how often it has been reported for things like brute-force attempts, port scanning, or spam. Anything at or above your threshold (75 by default) triggers a Slack alert.
Will this change my spreadsheet?
It adds the risk score, the last-reported date, and the main reason for reports next to each IP. Your original list of addresses stays intact.
Does it alert me about every IP?
No. To keep the noise down, it only messages your team about addresses that cross your risk threshold. Clean addresses are still updated in the sheet, but they do not trigger an alert.
Do I need a paid AbuseIPDB plan?
The free tier works for smaller lists. AbuseIPDB limits how many checks you can run per day, so for long lists you can cap how many rows are checked each morning or upgrade your plan.
Can I run it more or less often than daily?
Yes. It is set to run every morning at 7am, but you can change the schedule to whatever cadence fits your team.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

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.

AbuseIPDB
Gmail
Slack
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
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
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
Turn each week's football fixtures into a venue staffing plan

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.

API-Sports
Google Calendar
Slack
Agentic Task

Stop manually checking IPs against threat lists.

Let this run every morning so risky addresses surface in Slack before they cause trouble.