{ "name": "Automated B2B SSL/TLS CT Log & Subdomain Attack Surface Recon Auditor — Daily B2B Data & Compliance Pipeline", "nodes": [ { "parameters": { "content": "## Automated B2B SSL/TLS CT Log & Subdomain Attack Surface Recon Auditor Pipeline (Daily B2B M2M Workflow)\n\n**Overview:**\nDiscovers exposed corporate subdomains and SSL/TLS certificates via official Certificate Transparency (crt.sh) logs. Flags wildcard certificates, shadow IT staging/dev endpoints, expiring certs, and computes an Attack Surface Risk Score (0-100).\n\n**Powered by Apify Actor:** [b2b-quant-apis/b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor](https://apify.com/b2b-quant-apis/b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor)\n\n### Quick Setup (2 Minutes):\n1. Create a free Apify account and copy your personal token from **Settings -> Integrations**.\n2. Open the **Apify Engine: b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor** HTTP Request node and configure a **Header Auth** credential with:\n - **Name:** `Authorization`\n - **Value:** `Bearer `\n3. Customize the JSON input payload in the HTTP Request node and set your destination Webhook/Slack URL.\n4. Toggle the workflow **Active** to run automatically every morning at 07:00 AM!", "height": 380, "width": 520, "color": 4 }, "id": "a61b3a22-b019-5de3-8690-65d8b8b3a23e", "name": "Setup Instructions & Architecture", "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 180, 80 ] }, { "parameters": { "rule": { "interval": [ { "field": "cronExpression", "expression": "0 7 * * *" } ] } }, "id": "31a9c5b7-faff-541d-8dd8-fc0a91682632", "name": "Daily 07:00 AM Schedule Trigger", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.2, "position": [ 220, 520 ] }, { "parameters": { "method": "POST", "url": "https://api.apify.com/v2/acts/b2b-quant-apis~b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor/run-sync-get-dataset-items", "authentication": "genericCredentialType", "genericAuthType": "httpHeaderAuth", "sendBody": true, "specifyBody": "json", "jsonBody": "{\n \"rootDomain\": \"cloudflare.com\",\n \"excludeExpired\": true,\n \"maxResults\": 10\n}", "options": { "timeout": 300000 } }, "id": "8edbfca4-5abd-5555-aca9-5f64b505d0b6", "name": "Apify Engine: b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 500, 520 ] }, { "parameters": { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict" }, "conditions": [ { "id": "b95891d6-1afa-5884-a778-70febdff6f26", "leftValue": "={{ Object.keys($json).length }}", "rightValue": 0, "operator": { "type": "number", "operation": "gt" } } ], "combinator": "and" } }, "id": "1e0586c3-6c6d-546b-8af1-088b3f8d4822", "name": "Validate Structured Dataset Output", "type": "n8n-nodes-base.filter", "typeVersion": 2, "position": [ 780, 520 ] }, { "parameters": { "method": "POST", "url": "https://api.example.com/v1/b2b-compliance-webhook-receiver", "sendBody": true, "specifyBody": "json", "jsonBody": "={{ JSON.stringify({ actor: 'b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor', timestamp: $now, record: $json }) }}", "options": { "timeout": 30000 } }, "id": "34cedb91-4bb2-5e3c-b4d5-1f9d86acfabc", "name": "Dispatch to Enterprise CRM / Slack Webhook", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 1060, 520 ] } ], "connections": { "Daily 07:00 AM Schedule Trigger": { "main": [ [ { "node": "Apify Engine: b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor", "type": "main", "index": 0 } ] ] }, "Apify Engine: b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor": { "main": [ [ { "node": "Validate Structured Dataset Output", "type": "main", "index": 0 } ] ] }, "Validate Structured Dataset Output": { "main": [ [ { "node": "Dispatch to Enterprise CRM / Slack Webhook", "type": "main", "index": 0 } ] ] } }, "pinData": {}, "meta": { "templateCredsSetupCompleted": false, "apifyStoreActor": "b2b-quant-apis/b2b-ssl-tls-ct-log-subdomain-attack-surface-auditor", "estimatedPpeUsdPerEvent": 0.02 }, "settings": { "executionOrder": "v1" }, "staticData": null }