← Back to Directory
🍳

Expiring Certificate Monitor

Daily: check SSL certificates on all your domains, alert 30/14/7 days before expiry, track certificate details.

🤖 00 ↓  |  👤 00
intermediate10 min setup🔄 3 swappable alternatives

🧂 Ingredients

🔌 APIs

send_expiry_warnings

🔄 Alternatives:

Discord Free, great for communitiesTelegram Simple bot API, no approval neededTeams Enterprise/Office 365 integration

📋 Step-by-Step Build Guide

STEP 1

Load domain list from ssl-domains.json

Load domain list from ssl-domains.json

Load domain list from ssl-domains.json

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 2

For each domain, connect via TLS and read certificate expiry date

For each domain, connect via TLS and read certificate expiry date

For each domain, connect via TLS and read certificate expiry date

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 3

Calculate days until expiry

Calculate days until expiry

Process the data and calculate the requested metrics.

Steps:
1. Validate input data — check for nulls, out-of-range values, duplicates
2. Apply the calculation/aggregation logic
3. Compare against benchmarks or previous periods if available
4. Format results with appropriate precision (2 decimal places for percentages, whole numbers for counts)

Include: current value, previous value, change (absolute and %), trend direction (↑↓→).
Flag any anomalies: values >2 standard deviations from the mean.

If insufficient data for a reliable calculation, state the minimum needed and return partial results.
STEP 4

If <30 days: warning. If <14 days: urgent. If <7 days: critical.

If <30 days: warning. If <14 days: urgent. If <7 days: critical.

If <30 days: warning. If <14 days: urgent. If <7 days: critical.

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 5

Send alert to appropriate channel based on severity

Send alert to appropriate channel based on severity

Send a notification to the user via the configured messaging channel.

For Pushover:
POST https://api.pushover.net/1/messages.json
Body: { token: {APP_TOKEN}, user: {USER_KEY}, message: "{notification_text}", title: "{title}", priority: 0 }

For Twilio SMS:
POST https://api.twilio.com/2010-04-01/Accounts/{SID}/Messages
Body: To={phone}, From={twilio_number}, Body={message_text}

Keep the message concise — under 160 characters for SMS, under 500 for push.
Include the most actionable information first.
Log: timestamp, channel, recipient, message preview, delivery status.
STEP 6

Log certificate details (issuer, expiry, SANs) to ssl-log.json

Log certificate details (issuer, expiry, SANs) to ssl-log.json

Log certificate details (issuer, expiry, SANs) to ssl-log.json

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

🤖 Example Agent Prompt

Load domain list from ssl-domains.json

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

Copy this prompt into your agent to get started.

⏰ Automation Ideas

  • 0 8 * * *
🍳 Expiring Certificate Monitor — PincerAPI Cookbook