Porkbun - ドメインスニペリング

中級

これはMiscellaneous分野の自動化ワークフローで、12個のノードを含みます。主にIf, Wait, Gmail, Discord, HttpRequestなどのノードを使用。 Porkbun、Google Sheets、複数チャンネルアラートを使ったドメイン詳細監視器

前提条件
  • Googleアカウント + Gmail API認証情報
  • Discord Bot Token または Webhook
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "5tH7j1qgEdAjLj3c",
  "meta": {
    "instanceId": "c2650793f644091dc80fb900fe63448ad1f4b774008de9608064d67294f8307c",
    "templateCredsSetupCompleted": true
  },
  "name": "Porkbun - Domain Sniper",
  "tags": [],
  "nodes": [
    {
      "id": "f98a0e2d-6d9c-43a4-af6a-1b8f0810ec93",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        32
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 256,
        "content": "## 🔑 Get Porkbun API Keys\n\n1. Login to https://porkbun.com/account/api\n2. Click **\"Create API Key\"** button\n3. Copy **API Key** (starts with `pk1_`)\n4. Copy **Secret API Key** (starts with `sk1_`)\n5. ⚠️ Save both keys immediately!"
      },
      "typeVersion": 1
    },
    {
      "id": "e4cc9476-dcf5-4d93-a412-2ec13e021ba8",
      "name": "API KEYを検証",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        224,
        128
      ],
      "parameters": {
        "url": "https://api.porkbun.com/api/json/v3/ping",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "form-urlencoded",
        "bodyParameters": {
          "parameters": [
            {
              "name": "secretapikey",
              "value": "YOUR_SECRET_KEY"
            },
            {
              "name": "apikey",
              "value": "YOUR_API_KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "34f0f98d-744d-464e-b6a2-d9c35c6dac13",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        32
      ],
      "parameters": {
        "color": 5,
        "width": 368,
        "height": 256,
        "content": "##  Validate API Key"
      },
      "typeVersion": 1
    },
    {
      "id": "8103735c-87ae-48ca-9ea7-32a582d66f8e",
      "name": "各ドメインを処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -96,
        336
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "f1cfa28a-9d14-4cba-bf8b-2188e8b18d64",
      "name": "ドメイン可用性を確認",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        128,
        352
      ],
      "parameters": {
        "url": "=https://api.porkbun.com/api/json/v3/domain/checkDomain/{{ $json.Domain }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "secretapikey",
              "value": "YOUR_SECRET_API_KEY"
            },
            {
              "name": "apikey",
              "value": "YOUR_API_KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0880d223-d615-4cd7-a0b9-2e2af950ccdb",
      "name": "ドメインは利用可能?",
      "type": "n8n-nodes-base.if",
      "position": [
        352,
        352
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ca3aff64-ad43-40df-b210-3ba09050a716",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.response.avail }}",
              "rightValue": "yes"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "011c8281-7d71-4fa6-991a-9bab1b4fb69c",
      "name": "メールアラートを送信",
      "type": "n8n-nodes-base.gmail",
      "position": [
        576,
        240
      ],
      "webhookId": "a7833e40-e12f-4207-9283-f2cab1aff343",
      "parameters": {
        "sendTo": "YOUR_EMAIL@example.com",
        "message": "=<div style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; max-width: 600px; margin: 0 auto; background-color: #ffffff; color: #1a1a1a;\">\n  \n  <!-- Header -->\n  <div style=\"background: linear-gradient(135deg, #10b981 0%, #059669 100%); padding: 40px 30px; text-align: center;\">\n    <div style=\"background-color: rgba(255, 255, 255, 0.2); display: inline-block; padding: 6px 16px; border-radius: 20px; margin-bottom: 16px;\">\n      <span style=\"color: #ffffff; font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase;\">Domain Alert</span>\n    </div>\n    <h1 style=\"margin: 0; color: #ffffff; font-size: 32px; font-weight: 700; line-height: 1.3;\">Domain Available</h1>\n    <p style=\"margin: 12px 0 0 0; color: rgba(255, 255, 255, 0.95); font-size: 15px; font-weight: 400;\">Your monitored domain is ready to register</p>\n  </div>\n\n  <!-- Main Content -->\n  <div style=\"padding: 32px 24px;\">\n    \n    <!-- Domain Card -->\n    <div style=\"background-color: #f8fffe; border: 2px solid #10b981; border-radius: 12px; padding: 24px; margin-bottom: 24px;\">\n      <div style=\"margin-bottom: 8px;\">\n        <span style=\"background-color: #10b981; color: #ffffff; font-size: 10px; text-transform: uppercase; letter-spacing: 1.2px; font-weight: 700; padding: 4px 10px; border-radius: 4px;\">AVAILABLE</span>\n      </div>\n      <h2 style=\"margin: 12px 0 0 0; color: #0a0a0a; font-size: 26px; font-weight: 700; word-break: break-all; line-height: 1.4;\">{{ $('Process Each Domain').item.json.Domain }}</h2>\n    </div>\n\n    <!-- Pricing Section -->\n    <div style=\"background-color: #fafafa; border-radius: 12px; padding: 24px; margin-bottom: 24px; border: 1px solid #e5e5e5;\">\n      <h3 style=\"color: #0a0a0a; margin: 0 0 20px 0; font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;\">💰 Pricing Details</h3>\n      \n      <!-- Registration Price -->\n      <div style=\"display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-bottom: 1px solid #e5e5e5;\">\n        <span style=\"color: #525252; font-size: 15px; font-weight: 500;\">Registration: </span>\n        <span style=\"color: #10b981; font-size: 26px; font-weight: 700;\">${{ $json.response.price }}</span>\n      </div>\n      <!-- Premium Badge -->\n      {{ $json.response.premium === 'yes' ? '<div style=\"background-color: #fef3c7; border-left: 4px solid #f59e0b; padding: 12px 16px; margin: 16px 0; border-radius: 6px;\"><span style=\"color: #92400e; font-size: 13px; font-weight: 600;\">⭐ This is a Premium Domain</span></div>' : '' }}\n      \n      <!-- Renewal Price -->\n      <div style=\"display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-bottom: 1px solid #e5e5e5;\">\n        <span style=\"color: #525252; font-size: 15px; font-weight: 500;\">Annual Renewal:</span>\n        <span style=\"color: #0a0a0a; font-size: 17px; font-weight: 600;\"> ${{ $json.response.additional.renewal.price }}<span style=\"color: #737373; font-size: 14px; font-weight: 400;\">/year</span></span>\n      </div>\n      \n      <!-- Transfer Fee -->\n      <div style=\"display: flex; justify-content: space-between; align-items: center; padding: 16px 0 0 0;\">\n        <span style=\"color: #525252; font-size: 15px; font-weight: 500;\">Transfer Fee:</span>\n        <span style=\"color: #0a0a0a; font-size: 17px; font-weight: 600;\"> ${{ $json.response.additional.transfer.price }}</span>\n      </div>\n    </div>\n\n    <!-- CTA Button -->\n    <div style=\"text-align: center; margin: 32px 0;\">\n      <a href=\"https://porkbun.com/checkout/search?q={{ $('Process Each Domain').item.json.Domain }}\" \n         style=\"display: inline-block; background: linear-gradient(135deg, #10b981 0%, #059669 100%); color: #ffffff; padding: 16px 48px; text-decoration: none; border-radius: 8px; font-weight: 600; font-size: 16px; box-shadow: 0 4px 14px rgba(16, 185, 129, 0.3); letter-spacing: 0.3px;\">\n        Register Domain Now →\n      </a>\n    </div>\n\n    <!-- Warning Box -->\n    <div style=\"background-color: #fffbeb; border-left: 4px solid #f59e0b; padding: 16px 20px; border-radius: 8px; margin-top: 24px;\">\n      <p style=\"margin: 0; color: #78350f; font-size: 14px; line-height: 1.6; font-weight: 500;\">\n        ⚡ <strong style=\"font-weight: 700;\">Time-Sensitive Alert:</strong> This domain can be registered by anyone at any moment. Secure it now to avoid losing this opportunity.\n      </p>\n    </div>\n\n  </div>\n\n  <!-- Footer -->\n  <div style=\"background-color: #fafafa; padding: 28px 24px; text-align: center; border-top: 1px solid #e5e5e5;\">\n    <p style=\"margin: 0 0 6px 0; color: #737373; font-size: 13px; font-weight: 500;\">Last Checked: {{ $now.format('DD HH:mm:ss') }}</p>\n    <p style=\"margin: 0 0 16px 0; color: #a3a3a3; font-size: 12px;\">Automated by <strong style=\"color: #525252; font-weight: 600;\">Domain Sniper Workflow</strong></p>\n  </div>\n\n</div>\n",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Sniper Report! {{ $('Process Each Domain').item.json.Domain }} is Available "
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "XeLaofMkprEVVUZr",
          "name": "notif-khmuhtadin"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "30b76949-d14a-4aaf-a0cc-2c30d081a860",
      "name": "Discord通知を送信",
      "type": "n8n-nodes-base.discord",
      "position": [
        800,
        240
      ],
      "webhookId": "25439919-27ce-432e-824c-8764c1ae9985",
      "parameters": {
        "content": "={{ $('Process Each Domain').item.json.Domain }} is available to buy!\n\nPrice: ${{ $('Domain Available?').item.json.response.price }}\nFirst year Promo: {{ $('Domain Available?').item.json.response.firstYearPromo }}\nPremium domain?: {{ $('Domain Available?').item.json.response.premium }}\n\nRenewal Price: ${{ $('Domain Available?').item.json.response.additional.renewal.price }}\nTransfer Price: ${{ $('Domain Available?').item.json.response.additional.transfer.price }}",
        "guildId": {
          "__rl": true,
          "mode": "list",
          "value": "924339263372406844",
          "cachedResultUrl": "https://discord.com/channels/924339263372406844",
          "cachedResultName": "Khaisa Studio"
        },
        "options": {},
        "resource": "message",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_CHANNEL_ID"
        }
      },
      "credentials": {
        "discordBotApi": {
          "id": "dJMKbc7ZDni2mvkT",
          "name": "Khaisa-n8n-bot"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "feabe4fe-c186-4dab-b0c5-cbae8ceb0190",
      "name": "シートを更新:利用可能としてマーク",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1024,
        240
      ],
      "parameters": {
        "columns": {
          "value": {
            "Domain": "={{ $('Process Each Domain').item.json.Domain }}",
            "isAvailable": "yes"
          },
          "schema": [
            {
              "id": "Domain",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "isAvailable",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "isAvailable",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Domain"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "gnUSHhCw4cKx3pwo",
          "name": "Project GCP: n8n-khmuhtadin"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "cbec7b90-5b85-4ab9-b965-489714cdb3e1",
      "name": "10秒待機",
      "type": "n8n-nodes-base.wait",
      "position": [
        1232,
        368
      ],
      "webhookId": "22fa0299-fc8c-4d64-8775-4369f07bbf89",
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1
    },
    {
      "id": "0aed6a8b-a8a7-40c6-9896-be0c0b370e2a",
      "name": "30分ごとに確認",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -544,
        336
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 30
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9cc90317-799b-4da8-9077-a04d13c6c269",
      "name": "シートからドメインを取得",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -320,
        336
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "no",
              "lookupColumn": "isAvailable"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "gnUSHhCw4cKx3pwo",
          "name": "Project GCP: n8n-khmuhtadin"
        }
      },
      "typeVersion": 4.7
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9c418b49-8957-4059-9656-e6a474c4e377",
  "connections": {
    "cbec7b90-5b85-4ab9-b965-489714cdb3e1": {
      "main": [
        [
          {
            "node": "8103735c-87ae-48ca-9ea7-32a582d66f8e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "011c8281-7d71-4fa6-991a-9bab1b4fb69c": {
      "main": [
        [
          {
            "node": "30b76949-d14a-4aaf-a0cc-2c30d081a860",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0880d223-d615-4cd7-a0b9-2e2af950ccdb": {
      "main": [
        [
          {
            "node": "011c8281-7d71-4fa6-991a-9bab1b4fb69c",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "cbec7b90-5b85-4ab9-b965-489714cdb3e1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8103735c-87ae-48ca-9ea7-32a582d66f8e": {
      "main": [
        [],
        [
          {
            "node": "f1cfa28a-9d14-4cba-bf8b-2188e8b18d64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0aed6a8b-a8a7-40c6-9896-be0c0b370e2a": {
      "main": [
        [
          {
            "node": "9cc90317-799b-4da8-9077-a04d13c6c269",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9cc90317-799b-4da8-9077-a04d13c6c269": {
      "main": [
        [
          {
            "node": "8103735c-87ae-48ca-9ea7-32a582d66f8e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f1cfa28a-9d14-4cba-bf8b-2188e8b18d64": {
      "main": [
        [
          {
            "node": "0880d223-d615-4cd7-a0b9-2e2af950ccdb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "30b76949-d14a-4aaf-a0cc-2c30d081a860": {
      "main": [
        [
          {
            "node": "feabe4fe-c186-4dab-b0c5-cbae8ceb0190",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "feabe4fe-c186-4dab-b0c5-cbae8ceb0190": {
      "main": [
        [
          {
            "node": "cbec7b90-5b85-4ab9-b965-489714cdb3e1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - その他

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数12
カテゴリー1
ノードタイプ9
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34