8
n8n 中文网amn8n.com

AI驱动的链接检查器

中级

这是一个SecOps, Multimodal AI领域的自动化工作流,包含 7 个节点。主要使用 Wait, Gmail, Webhook, UrlScanIo, OpenAi 等节点。 使用 urlscan.io 和 GPT-4o mini 扫描 URL 安全威胁

前置要求
  • Google 账号和 Gmail API 凭证
  • HTTP Webhook 端点(n8n 会自动生成)
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "hN9echP2rG1fuKXH",
  "meta": {
    "instanceId": "b9d26382fbc087c17fe86e193d09f32e5d99f4a254d13f3b8ee28079e71766cf",
    "templateCredsSetupCompleted": true
  },
  "name": "AI驱动的链接检查器",
  "tags": [],
  "nodes": [
    {
      "id": "e04046ae-c8f8-42af-a55d-1197b7f0bca6",
      "name": "便签 - 工作原理",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -624,
        16
      ],
      "parameters": {
        "color": 7,
        "width": 520,
        "height": 448,
        "content": "## 工作原理"
      },
      "typeVersion": 1
    },
    {
      "id": "89e7c181-f4ed-488e-8004-ec484cc1ff6b",
      "name": "便签 - 设置",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -624,
        512
      ],
      "parameters": {
        "color": 4,
        "width": 520,
        "height": 360,
        "content": "## 设置与凭证"
      },
      "typeVersion": 1
    },
    {
      "id": "902d1e00-b848-4e9e-9691-643f618e73b0",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -32,
        288
      ],
      "webhookId": "de9e8cf0-3289-468a-9eb1-62f34791eccb",
      "parameters": {
        "path": "url-scan",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "a6ec0f94-a430-4508-b261-56cbac6f970b",
      "name": "执行扫描",
      "type": "n8n-nodes-base.urlScanIo",
      "position": [
        192,
        288
      ],
      "parameters": {
        "url": "={{ $json.body.url[0] }}",
        "additionalFields": {}
      },
      "credentials": {
        "urlScanIoApi": {
          "id": "FQPwludnLkKkBBBB",
          "name": "urlscan.io account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6b835da0-b0b8-4fd2-9a43-58d92e629e9c",
      "name": "等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        416,
        288
      ],
      "webhookId": "49acb5c3-83a1-4c69-9958-81520ddf0f01",
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "948b41f1-5b09-4eeb-8427-b3970a4b826f",
      "name": "发送消息",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1040,
        288
      ],
      "webhookId": "52afb8b3-72dc-4c73-82a2-a8b7ae2e8aee",
      "parameters": {
        "sendTo": "test@gmail.com",
        "message": "=<!-- ✧ Sleek security notification ✧ -->\n<h2 style=\"margin:0 0 12px 0;font:bold 18px Arial,Helvetica,sans-serif\">\n  URL submitted to <a href=\"https://urlscan.io\" style=\"color:#1a73e8;text-decoration:none\">urlscan.io</a>\n</h2>\n\n<table cellpadding=\"4\" cellspacing=\"0\" border=\"0\" style=\"font:14px/1.4 Arial,Helvetica,sans-serif\">\n  <tr>\n    <td><strong>URL:</strong></td>\n    <td>\n      <a href=\"{{ $('Webhook').item.json.body.url[0] }}\" style=\"color:#1a73e8\">\n        {{ $('Webhook').item.json.body.url[0] }}\n      </a>\n    </td>\n  </tr>\n  <tr>\n    <td><strong>Scan&nbsp;ID:</strong></td>\n    <td>{{ $('Perform a scan').item.json.scanId }}</td>\n  </tr>\n  <tr>\n    <td><strong>Classification:</strong></td>\n    <td>{{ JSON.parse($node[\"Message a model\"].json.message.content).classification }}</td>\n  </tr>\n  <tr>\n    <td><strong>Risk&nbsp;Score:</strong></td>\n    <td>{{ JSON.parse($node[\"Message a model\"].json.message.content).riskScore }}/10</td>\n  </tr>\n</table>\n\n<h3 style=\"margin:20px 0 6px 0;font:16px Arial,Helvetica,sans-serif\">AI&nbsp;Summary</h3>\n<p style=\"margin:0 0 18px 0;font:14px/1.5 Arial,Helvetica,sans-serif\">\n  {{ JSON.parse($node[\"Message a model\"].json.message.content).summary }}\n</p>\n\n<p style=\"margin:0 0 6px 0;font:14px/1.5 Arial,Helvetica,sans-serif\">\n  <strong>Screenshot (when ready):</strong><br>\n  <a href=\"https://urlscan.io/screenshots/{{ $('Perform a scan').item.json.scanId }}.png\" style=\"color:#1a73e8\">\n    https://urlscan.io/screenshots/{{ $('Perform a scan').item.json.scanId }}.png\n  </a>\n</p>\n\n<p style=\"margin:0;font:14px/1.5 Arial,Helvetica,sans-serif\">\n  <strong>Full result:</strong><br>\n  <a href=\"{{ $('Perform a scan').item.json.result }}\" style=\"color:#1a73e8\">\n    {{ $('Perform a scan').item.json.result }}\n  </a>\n</p>\n",
        "options": {
          "appendAttribution": false
        },
        "subject": "=URLScan Submitted for {{ $json.url || $item(0).$node[\"Webhook\"].json.body.url?.[0] || $item(0).$node[\"Webhook\"].json.body.url }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "3P9F7TWAVVVCuujN",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "07528213-cfc5-48e2-bacd-71cd1a24ae5f",
      "name": "向模型发送消息",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        624,
        288
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-nano",
          "cachedResultName": "GPT-4.1-NANO"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are a security analyst. \nGiven the following urlscan.io JSON result, do four things:\n\n1. Decide if the scan is malicious, suspicious or benign.\n2. Assign a risk score from 1-10 (10 = confirmed malicious).\n3. In two short sentences explain why.\n4. Output EXACTLY this JSON:\n   {\n     \"classification\": \"<malicious|suspicious|benign>\",\n     \"riskScore\": <integer>,\n     \"summary\": \"<two-sentence explanation>\"\n   }\n\nScan result:\n {{ $json.api }}  <-- (this references output of “Perform a scan”)\n\n\n"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "IZ5MCnU8sBBBbld3",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    }
  ],
  "active": false,
  "pinData": {
    "Webhook": [
      {
        "json": {
          "body": {
            "url": [
              "https://www.apple.com"
            ]
          },
          "query": {},
          "params": {},
          "headers": {
            "host": "",
            "accept": "*/*",
            "user-agent": "",
            "content-type": "",
            "content-length": ""
          },
          "webhookUrl": "http://webhookurl",
          "executionMode": "test"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c2788927-e186-4ba0-a665-f1bf8db06cb0",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Perform a scan",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Perform a scan": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message a model": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

中级 - 安全运维, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
中级
节点数量7
分类2
节点类型6
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

作者
Calistus Christian

Calistus Christian

@ca7ai

Automation strategist and AI workflow architect creating intelligent, agent-driven processes that streamline operations. I build advanced n8n solutions integrating AI, cloud services, and real-time data orchestration for scalable impact. Explore my free workflows to get started. Premium, custom-built solutions are also available. Connect with me on LinkedIn for tailored automation expertise.

外部链接
在 n8n.io 查看

分享此工作流