{
  "name": "Verifly - Signup email gate (webhook)",
  "nodes": [
    {
      "parameters": {
        "content": "## Verifly signup gate\n1. Set env var VERIFLY_API_KEY (vf_...) - get one free at https://verifly.email/register (100 free credits).\n2. POST {\"email\":\"x@y.com\"} to the webhook URL.\n3. Returns allowed true/false + full verdict.\nCatch-all/unknown are free.",
        "height": 260,
        "width": 380
      },
      "id": "note",
      "name": "Read me",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        0,
        0
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "verifly-signup-gate",
        "responseMode": "responseNode",
        "options": {}
      },
      "id": "wh",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        0,
        320
      ]
    },
    {
      "parameters": {
        "url": "=https://verifly.email/api/v1/verify",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "email",
              "value": "={{ $json.body.email }}"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $env.VERIFLY_API_KEY }}"
            }
          ]
        },
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        }
      },
      "id": "v",
      "name": "Verifly verify",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        240,
        320
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          },
          "conditions": [
            {
              "id": "c1",
              "leftValue": "={{ $json.result }}",
              "rightValue": "deliverable",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "if",
      "name": "Deliverable?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        480,
        320
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { allowed: true, result: $json.result, reason: $json.reason } }}",
        "options": {}
      },
      "id": "ok",
      "name": "Allow",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        720,
        220
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { allowed: false, result: $json.result, reason: $json.reason, error: $json.error } }}",
        "options": {}
      },
      "id": "no",
      "name": "Block or review",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        720,
        420
      ]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Verifly verify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verifly verify": {
      "main": [
        [
          {
            "node": "Deliverable?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Deliverable?": {
      "main": [
        [
          {
            "node": "Allow",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Block or review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "pinData": {}
}