Patreon email verification with BillionVerify
Patreon is the membership platform that lets creators earn recurring revenue from their biggest fans. When you collect patron emails for newsletters, exclusive content drops, or community updates, BillionVerify ensures those addresses are real β protecting your sender reputation and keeping every message in front of an actual supporter.
Why verify before the send
Creators depend on email to nurture patron relationships and announce exclusive content. Sending to invalid or disposable addresses drives up bounce rates and can get your email-sending domain blacklisted. BillionVerify filters out bad addresses so every email you send to patrons has the best possible chance of landing in a real inbox.
Ready-to-use n8n workflow
Import this workflow into n8n β it verifies every address with BillionVerify before Patreon sends, so only deliverable contacts are emailed. Install the BillionVerify community node first, then add your API key. Adapted from this n8n template
{
"name": "Manage Patreon and Ko-fi leads with Gmail, OpenAI and Google Sheets + BillionVerify",
"nodes": [
{
"id": "156504d4-d521-4e12-9062-096ac1ef6078",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-288,
1320
],
"webhookId": "e180c04c-2d55-44b8-8f82-800cad5ac10e",
"parameters": {
"path": "e180c04c-2d55-44b8-8f82-800cad5ac10e",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "a28d3e11-e26b-4fa9-913d-6b461809b95f",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
-64,
1320
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "patreon",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ca8bc4e6-b702-4fd4-9b67-44b591313723",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.headers['user-agent'] }}",
"rightValue": "Patreon"
}
]
},
"renameOutput": true
},
{
"outputKey": "kofi",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "10184ef4-1078-4a92-94d8-ed517177a875",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.headers['user-agent'] }}",
"rightValue": "Kofi"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.4
},
{
"id": "70f7cdb3-acf6-4f15-92df-afb98700658c",
"name": "Set Token",
"type": "n8n-nodes-base.set",
"position": [
160,
1800
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1c0061ae-b9c8-4650-9f96-6aa2ff08758a",
"name": "token",
"type": "string",
"value": ""
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1e25c67b-0f3f-44c7-9afc-e99618be9bd1",
"name": "Parse Kofi Payload",
"type": "n8n-nodes-base.code",
"position": [
384,
1800
],
"parameters": {
"jsCode": "// Input comes from n8n as items\nconst input = $('Webhook').first().json.body.data; // your JSON string\n\nlet parsed;\ntry {\n parsed = JSON.parse(input); // parse the inner JSON\n} catch (e) {\n console.error(\"Invalid JSON:\", e.message);\n parsed = {};\n}\n\n// n8n requires an array of objects\nreturn [\n {\n json: parsed\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "035c60bb-c8a7-4795-9820-ea548a78b957",
"name": "Switch1",
"type": "n8n-nodes-base.switch",
"position": [
1856,
1688
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Donation",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "5aab1f09-af6d-433d-8bf9-079780c9bf98",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('Parse Kofi Payload').item.json.type }}",
"rightValue": "Donation"
}
]
},
"renameOutput": true
},
{
"outputKey": "Subscription",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ac034dcc-9cc1-4c22-9a74-3e957ab76587",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('Parse Kofi Payload').item.json.type }}",
"rightValue": "Subscription"
}
]
},
"renameOutput": true
},
{
"outputKey": "Shop Order",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8956ef1d-adbb-488b-a160-5eac2155c003",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('Parse Kofi Payload').item.json.type }}",
"rightValue": "Shop Order"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.4
},
{
"id": "de2be0e3-b586-45a6-87f9-cb12b6b83c25",
"name": "Token Validation",
"type": "n8n-nodes-base.if",
"position": [
608,
1800
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "98973fc2-dbe3-451a-b1f3-cef4c7a72283",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.verification_token }}",
"rightValue": "={{ $('Set Token').item.json.token }}"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "f05fdc67-54e6-4836-88a8-e3341cb039c9",
"name": "Fake Payload Alert",
"type": "n8n-nodes-base.gmail",
"position": [
832,
1896
],
"webhookId": "104795d1-03ba-4e66-950c-08ef21cf9474",
"parameters": {
"sendTo": "user@example.com",
"message": "Someone just sent a fake payload to your Kofi webhook.",
"options": {},
"subject": "fake payload detected!",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "38ef2260-d4fc-44ac-9ed4-9e8919f84dde",
"name": "Thank you Letter",
"type": "n8n-nodes-base.gmail",
"position": [
2080,
1512
],
"webhookId": "36c806f5-f7fa-4ec7-b0fe-e32e21f7d753",
"parameters": {
"sendTo": "={{ $json.email }}",
"message": "Say how happy you are.",
"options": {},
"subject": "=Thanks!",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "0705c1aa-a3f4-4422-a405-052ccc42d7d6",
"name": "Thank you Letter1",
"type": "n8n-nodes-base.gmail",
"position": [
2080,
1704
],
"webhookId": "36c806f5-f7fa-4ec7-b0fe-e32e21f7d753",
"parameters": {
"sendTo": "={{ $json.email }}",
"message": "Say how happy you are.",
"options": {},
"subject": "=Thanks!",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "d89e18e9-8406-4ca4-a0be-2ff47e928761",
"name": "Thank you Letter2",
"type": "n8n-nodes-base.gmail",
"position": [
2080,
1896
],
"webhookId": "36c806f5-f7fa-4ec7-b0fe-e32e21f7d753",
"parameters": {
"sendTo": "={{ $json.email }}",
"message": "Say how happy you are.",
"options": {},
"subject": "=Thanks!",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "e5f4cf22-e035-40ed-9786-c6f82c33345e",
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"position": [
1632,
1704
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "a0f542ef-9dce-4c07-9d75-a11891e90cc5",
"name": "Get Newsletter Subs1",
"type": "n8n-nodes-base.googleSheets",
"position": [
832,
1704
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.email }}",
"lookupColumn": "email"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064/edit?usp=drivesdk",
"cachedResultName": "Newsletter"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "credential-id",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7,
"alwaysOutputData": true
},
{
"id": "c0231a04-0da6-4773-b178-379070d89589",
"name": "Person Exists on the List?1",
"type": "n8n-nodes-base.if",
"position": [
1120,
1704
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7121acf2-f7c6-4284-baf4-d669bd982594",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.isEmpty() }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.3
},
{
"id": "93650e4a-bbb3-4c20-adc3-156d8ccdf540",
"name": "Add New Sub to Newsletter1",
"type": "n8n-nodes-base.googleSheets",
"position": [
1408,
1632
],
"parameters": {
"columns": {
"value": {
"name": "={{ $('Parse Kofi Payload').item.json.from_name }}",
"email": "={{ $('Parse Kofi Payload').item.json.email }}"
},
"schema": [
{
"id": "email",
"type": "string",
"display": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "name",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064/edit?usp=drivesdk",
"cachedResultName": "Newsletter"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "credential-id",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "6b89b036-8a7e-4c58-914e-f4daf78110eb",
"name": "Switch2",
"type": "n8n-nodes-base.switch",
"position": [
1440,
576
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "brand_new_follower",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9c7bde94-2d61-47c8-a1f1-b9c362792ce3",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output[0].content[0].text.status }}",
"rightValue": "brand_new_follower"
}
]
},
"renameOutput": true
},
{
"outputKey": "brand_new_patron_one_time",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fb210a5c-eac9-4ea2-95dd-320d31230c00",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output[0].content[0].text.status }}",
"rightValue": "brand_new_patron_one_time"
}
]
},
"renameOutput": true
},
{
"outputKey": "brand_new_patron_subscription",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a8c8eaa4-5554-46ca-b38a-a47f70c5a51d",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output[0].content[0].text.status }}",
"rightValue": "brand_new_patron_subscription"
}
]
},
"renameOutput": true
},
{
"outputKey": "follower_to_one_time",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8014762c-4ed0-45f6-b1f5-23acfa4f2de6",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output[0].content[0].text.status }}",
"rightValue": "follower_to_one_time"
}
]
},
"renameOutput": true
},
{
"outputKey": "follower_to_subscription",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "87de895d-99e9-4496-b75a-33c685cefefc",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output[0].content[0].text.status }}",
"rightValue": "follower_to_subscription"
}
]
},
"renameOutput": true
},
{
"outputKey": "subscription_upgraded",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fd10deae-ef40-4154-8246-e73836d375ff",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output[0].content[0].text.status }}",
"rightValue": "subscription_upgraded"
}
]
},
"renameOutput": true
},
{
"outputKey": "subscription_downgraded",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "84132fef-f0c6-48f7-8b6d-bac1f114da6c",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output[0].content[0].text.status }}",
"rightValue": "subscription_downgraded"
}
]
},
"renameOutput": true
},
{
"outputKey": "subscription_cancelled",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1d2abbb5-dcc5-49e1-b77f-3302765a066a",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output[0].content[0].text.status }}",
"rightValue": "subscription_cancelled"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.4
},
{
"id": "68db8766-0dd3-4e09-8392-28a34c18c51d",
"name": "Message a model",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1056,
672
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {
"textFormat": {
"textOptions": {
"type": "json_object"
}
}
},
"responses": {
"values": [
{
"role": "system",
"content": "=You are classifying Patreon webhook events.\n\nYou are given:\n\n1. Full webhook payload in `body.data`\n2. An additional field called `event_type`, taken from webhook headers (`x-patreon-event`)\n\nIMPORTANT RULES (STRICT):\n\n* `event_type` is authoritative and OVERRIDES any inference from `body.data`.\n* If `event_type == \"members:delete\"`, always return `subscription_cancelled`.\n* If `event_type == \"members:update\"`, you must never return a `brand_new_*` status. Only return `follower_to_one_time`, `follower_to_subscription`, `subscription_upgraded`, `subscription_downgraded`, or `subscription_cancelled`.\n* If `event_type == \"members:create\"`, you may return a `brand_new_*` status if the data matches.\n\nStatuses (choose exactly one):\n\n* brand_new_follower\n* brand_new_patron_one_time\n* brand_new_patron_subscription\n* follower_to_one_time\n* follower_to_subscription\n* subscription_upgraded\n* subscription_downgraded\n* subscription_cancelled\n\nHow to classify:\n\n1. subscription_cancelled\n\n * If `event_type == \"members:delete\"`, return this. Always.\n\n2. Brand-new statuses (`brand_new_*`)\n\n * Only if `event_type == \"members:create\"`.\n * `brand_new_follower`: No prior membership, `patron_status` null or not a patron, no payment.\n * `brand_new_patron_one_time`: First-ever patron, `pledge_cadence == 0`.\n * `brand_new_patron_subscription`: First-ever patron, `pledge_cadence >= 1`.\n\n3. Updates (`members:update`)\n\n * Never return any `brand_new_*` status.\n * `follower_to_one_time`: Previously a follower, now `pledge_cadence == 0`.\n * `follower_to_subscription`: Previously a follower, now `pledge_cadence >= 1`.\n * `subscription_upgraded`: Existing subscription, payment/tier increased.\n * `subscription_downgraded`: Existing subscription, payment/tier decreased.\n\nOutput format (STRICT):\n\n```\n{\n \"status\": \"<one_of_the_statuses_above>\"\n}\n```\n\n---\n\nThis version is simplified, fully respects `event_type`, and prevents the LLM from incorrectly marking updates as \"brand new\".\n"
},
{
"content": "={{ JSON.stringify($('Webhook').item.json.body.data) }}\n\nevent_type: {{ $('Webhook').item.json.headers['x-patreon-event'] }}"
}
]
},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"id": "credential-id",
"name": "OpenAi account"
}
},
"typeVersion": 2.1
},
{
"id": "ab8acaeb-ebb6-4761-a094-c63ea6d2b637",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
832,
672
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "1f388f14-3b64-4bdc-91b4-3a62b4060685",
"name": "Get Newsletter Subs",
"type": "n8n-nodes-base.googleSheets",
"position": [
160,
672
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.body.data.attributes.email }}",
"lookupColumn": "email"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064/edit?usp=drivesdk",
"cachedResultName": "Newsletter"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "credential-id",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7,
"alwaysOutputData": true
},
{
"id": "9604ff3c-3f46-4f1e-b411-cb7d9721f9a1",
"name": "Person Exists on the List?",
"type": "n8n-nodes-base.if",
"position": [
384,
672
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7121acf2-f7c6-4284-baf4-d669bd982594",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.isEmpty() }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.3
},
{
"id": "ccfec126-ec11-4710-a023-241e87a05d9b",
"name": "Add New Sub to Newsletter",
"type": "n8n-nodes-base.googleSheets",
"position": [
608,
608
],
"parameters": {
"columns": {
"value": {
"name": "={{ $('Webhook').item.json.body.data.attributes.full_name }}",
"email": "={{ $('Webhook').item.json.body.data.attributes.email }}"
},
"schema": [
{
"id": "email",
"type": "string",
"display": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "name",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uaPJWmAa8yEUPHad6OvDkoqLrahzZORDFjExyxR3064/edit?usp=drivesdk",
"cachedResultName": "Newsletter"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "credential-id",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "471eb7ee-ca1f-4a4a-b5a6-2adb0d49869f",
"name": "Send a message",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
0
],
"webhookId": "1c3bd1ef-be6d-4118-a01d-ac217344590e",
"parameters": {
"options": {}
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "fc089d56-268f-4a53-968b-f2f836d07ad5",
"name": "Send a message1",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
192
],
"webhookId": "1c3bd1ef-be6d-4118-a01d-ac217344590e",
"parameters": {
"options": {}
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "29521d5f-974c-4a4a-a986-620398782bf6",
"name": "Send a message2",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
384
],
"webhookId": "1c3bd1ef-be6d-4118-a01d-ac217344590e",
"parameters": {
"options": {}
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "23f7e83f-107a-4dbb-9d96-ec5b689a3a2a",
"name": "Send a message3",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
768
],
"webhookId": "1c3bd1ef-be6d-4118-a01d-ac217344590e",
"parameters": {
"options": {}
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "8117b97d-384e-4862-812f-664f07c03116",
"name": "Send a message4",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
960
],
"webhookId": "1c3bd1ef-be6d-4118-a01d-ac217344590e",
"parameters": {
"options": {}
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "c2c39b8c-5217-4f42-8469-bda9d6abdc13",
"name": "Send a message5",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
1152
],
"webhookId": "1c3bd1ef-be6d-4118-a01d-ac217344590e",
"parameters": {
"options": {}
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "470a5590-889b-4ee0-81ab-3b2fcb1af8a8",
"name": "Send a message6",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
1344
],
"webhookId": "1c3bd1ef-be6d-4118-a01d-ac217344590e",
"parameters": {
"options": {}
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "7f619e67-2afe-4744-9593-8c373d6ee240",
"name": "Send a message7",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
576
],
"webhookId": "1c3bd1ef-be6d-4118-a01d-ac217344590e",
"parameters": {
"options": {}
},
"credentials": {
"gmailOAuth2": {
"id": "credential-id",
"name": "Gmail account"
}
},
"typeVersion": 2.2
},
{
"id": "ef9296e0-c8dc-4ad4-a2d5-f27f2b5e6fd1",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-672,
272
],
"parameters": {
"width": 500,
"height": 894,
"content": "## Patreon & Ko-fi Webhook Processor\n\n### About\nThis system is listening for webhooks from patreon and kofi.\nOnce received, it detects the service by looking at headers. \n\nFor Kofi it parses and validates the payload to make sure it's not fake. Once validated, it checks whether the person is on your newsletter lead list. If not, it adds person to your newsletter list. Then it checks the status of the payload, either it's a donation, subscription or shop purchase. \n\nFor Patreon it checks whether the person is on your newsletter lead list and adds him if not. Then it checks the payload type using AI and returns a status, e.g. new patron, cancelled subscription etc.\n\n### Setup\n- [ ] Connect your Gmail account used to send thank-you and alert messages\n- [ ] Connect Google Sheets and select the Newsletter spreadsheet and sheet\n- [ ] Add your OpenAI API key and select the desired model for classification\n- [ ] Set the Ko-fi verification token in the workflow and Ko-fi webhook settings\n- [ ] Configure your Patreon webhook to send payloads to the webhook URL and forward x-patreon-event. Configure 6 events that are not deprecated and are not post-related.\n- [ ] Customize emails you'll be sending for each branch\n\n### Customization\nFor Kofi you can customize emails that you'll be sending to members. For shop orders you can add invoice generation, supplier file generation, connect with your stock etc.\nFor Patreon you can customize emails you'll send to followers and patrons.\nFor both you can enable a crm where you'll track how much each person paid you so you know whether somebody upgrades or downgrades their subscription based on CRM data."
},
"typeVersion": 1
},
{
"id": "fe6bf38d-e74d-4d4a-9457-c5a9b97bdb8c",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
112,
1680
],
"parameters": {
"color": 3,
"width": 192,
"height": 288,
"content": "## Set Token\nGet an auth token from Kofi to validate your payloads."
},
"typeVersion": 1
},
{
"id": "da980daf-09d1-412a-80e6-e129a674c935",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
1520
],
"parameters": {
"color": 7,
"width": 1024,
"height": 352,
"content": "## Newsletter\nWe check whether person is on our newsletter list or not. If not, we add him. If not, skip.\nCreate a \"Newsletter\" spreadsheet with columns \"email\" and \"name\". Set up the node and feel free to add more columns if needed."
},
"typeVersion": 1
},
{
"id": "644975a7-20c3-44be-bf56-384b66076095",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1824,
1392
],
"parameters": {
"color": 7,
"width": 528,
"height": 688,
"content": "## Letters\nSet up letters that you're gonna send to members."
},
"typeVersion": 1
},
{
"id": "78442062-d6cc-4654-877c-b94dbfd41791",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
480
],
"parameters": {
"color": 7,
"width": 912,
"height": 352,
"content": "## Newsletter\nWe check whether person is on our newsletter list or not. If not, we add him. If not, skip.\nCreate a \"Newsletter\" spreadsheet with columns \"email\" and \"name\". Set up the node and feel free to add more columns if needed."
},
"typeVersion": 1
},
{
"id": "d5d54e94-2377-4222-ac0e-cac5ad3673b6",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
528
],
"parameters": {
"color": 7,
"width": 368,
"height": 304,
"content": "## Status Validation\nWe use OpenAI to determine the status of operations"
},
"typeVersion": 1
},
{
"id": "ff263dd8-bbdc-4877-8e3e-dd035fed1333",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1392,
-112
],
"parameters": {
"color": 7,
"width": 528,
"height": 1616,
"content": "## Letters\nSet up letters that you're gonna send to members."
},
"typeVersion": 1
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
472,
1896
],
"name": "Verify Email (BillionVerify)",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
652,
1896
],
"name": "IF deliverable"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1720,
1512
],
"name": "Verify Email (BillionVerify) 2",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1900,
1512
],
"name": "IF deliverable 2"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1720,
1704
],
"name": "Verify Email (BillionVerify) 3",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1900,
1704
],
"name": "IF deliverable 3"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1720,
1896
],
"name": "Verify Email (BillionVerify) 4",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1900,
1896
],
"name": "IF deliverable 4"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1304,
0
],
"name": "Verify Email (BillionVerify) 5",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1484,
0
],
"name": "IF deliverable 5"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1304,
192
],
"name": "Verify Email (BillionVerify) 6",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1484,
192
],
"name": "IF deliverable 6"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1304,
384
],
"name": "Verify Email (BillionVerify) 7",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1484,
384
],
"name": "IF deliverable 7"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1304,
768
],
"name": "Verify Email (BillionVerify) 8",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1484,
768
],
"name": "IF deliverable 8"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1304,
960
],
"name": "Verify Email (BillionVerify) 9",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1484,
960
],
"name": "IF deliverable 9"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1304,
1152
],
"name": "Verify Email (BillionVerify) 10",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1484,
1152
],
"name": "IF deliverable 10"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1304,
1344
],
"name": "Verify Email (BillionVerify) 11",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1484,
1344
],
"name": "IF deliverable 11"
},
{
"parameters": {
"operation": "verify",
"email": "={{ $json.email || $json.Email }}",
"additionalOptions": {}
},
"type": "n8n-nodes-billionverify.billionVerify",
"typeVersion": 1,
"position": [
1304,
576
],
"name": "Verify Email (BillionVerify) 12",
"credentials": {
"billionVerifyApi": {
"id": "",
"name": "BillionVerify account"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "is-deliverable",
"leftValue": "={{ $json.is_deliverable }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1484,
576
],
"name": "IF deliverable 12"
}
],
"connections": {
"Merge": {
"main": [
[
{
"node": "Message a model",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "Switch1",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Get Newsletter Subs",
"type": "main",
"index": 0
}
],
[
{
"node": "Set Token",
"type": "main",
"index": 0
}
]
]
},
"Switch1": {
"main": [
[
{
"node": "Verify Email (BillionVerify) 2",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 3",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 4",
"type": "main",
"index": 0
}
]
]
},
"Switch2": {
"main": [
[
{
"node": "Verify Email (BillionVerify) 5",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 6",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 7",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 12",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 8",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 9",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 10",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify) 11",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Set Token": {
"main": [
[
{
"node": "Parse Kofi Payload",
"type": "main",
"index": 0
}
]
]
},
"Message a model": {
"main": [
[
{
"node": "Switch2",
"type": "main",
"index": 0
}
]
]
},
"Token Validation": {
"main": [
[
{
"node": "Get Newsletter Subs1",
"type": "main",
"index": 0
}
],
[
{
"node": "Verify Email (BillionVerify)",
"type": "main",
"index": 0
}
]
]
},
"Parse Kofi Payload": {
"main": [
[
{
"node": "Token Validation",
"type": "main",
"index": 0
}
]
]
},
"Get Newsletter Subs": {
"main": [
[
{
"node": "Person Exists on the List?",
"type": "main",
"index": 0
}
]
]
},
"Get Newsletter Subs1": {
"main": [
[
{
"node": "Person Exists on the List?1",
"type": "main",
"index": 0
}
]
]
},
"Add New Sub to Newsletter": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Add New Sub to Newsletter1": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Person Exists on the List?": {
"main": [
[
{
"node": "Add New Sub to Newsletter",
"type": "main",
"index": 0
}
],
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Person Exists on the List?1": {
"main": [
[
{
"node": "Add New Sub to Newsletter1",
"type": "main",
"index": 0
}
],
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"Verify Email (BillionVerify)": {
"main": [
[
{
"node": "IF deliverable",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable": {
"main": [
[
{
"node": "Fake Payload Alert",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 2": {
"main": [
[
{
"node": "IF deliverable 2",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 2": {
"main": [
[
{
"node": "Thank you Letter",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 3": {
"main": [
[
{
"node": "IF deliverable 3",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 3": {
"main": [
[
{
"node": "Thank you Letter1",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 4": {
"main": [
[
{
"node": "IF deliverable 4",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 4": {
"main": [
[
{
"node": "Thank you Letter2",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 5": {
"main": [
[
{
"node": "IF deliverable 5",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 5": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 6": {
"main": [
[
{
"node": "IF deliverable 6",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 6": {
"main": [
[
{
"node": "Send a message1",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 7": {
"main": [
[
{
"node": "IF deliverable 7",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 7": {
"main": [
[
{
"node": "Send a message2",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 8": {
"main": [
[
{
"node": "IF deliverable 8",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 8": {
"main": [
[
{
"node": "Send a message3",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 9": {
"main": [
[
{
"node": "IF deliverable 9",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 9": {
"main": [
[
{
"node": "Send a message4",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 10": {
"main": [
[
{
"node": "IF deliverable 10",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 10": {
"main": [
[
{
"node": "Send a message5",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 11": {
"main": [
[
{
"node": "IF deliverable 11",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 11": {
"main": [
[
{
"node": "Send a message6",
"type": "main",
"index": 0
}
],
[]
]
},
"Verify Email (BillionVerify) 12": {
"main": [
[
{
"node": "IF deliverable 12",
"type": "main",
"index": 0
}
]
]
},
"IF deliverable 12": {
"main": [
[
{
"node": "Send a message7",
"type": "main",
"index": 0
}
],
[]
]
}
},
"settings": {}
}Workflow templates with Patreon
Ready-to-use workflows that verify emails before Patreon sends.
How it works
- 1
A new patron joins or updates their account on Patreon, triggering a webhook or polling event in n8n.
- 2
The patron's email is sent to BillionVerify for real-time verification.
- 3
BillionVerify checks for syntax errors, domain validity, mailbox existence, and disposable or role-based patterns.
- 4
Verified addresses are added to your mailing list or CRM for ongoing outreach.
- 5
Flagged addresses are held for review or excluded, keeping your patron email list accurate and deliverable.
When to use this
Verify patron emails before adding to your mailing list
When a new patron joins, automatically verify their email with BillionVerify before subscribing them to your newsletter. This keeps your list healthy and prevents hard bounces from hurting your deliverability.
Filter early-access invitations to verified supporters only
Before sending exclusive early-access links or download codes, confirm each patron's email is valid. BillionVerify catches typos and disposable addresses so your rewards reach genuine fans.
Clean exported patron lists before bulk campaigns
Export your Patreon subscriber list periodically and run it through BillionVerify's bulk API. Remove stale or unreachable addresses to maintain strong engagement metrics across your campaigns.
FAQ
Can I automatically verify patron emails when they join?
Yes. Use n8n to listen for new Patreon member events, then call BillionVerify before adding the patron to any downstream email tool.
Why would a patron's email be invalid on Patreon?
Patrons sometimes sign up with typos, temporary addresses, or old emails they no longer access. BillionVerify catches these before they cause bounces in your campaigns.
Does verifying emails comply with Patreon's terms?
BillionVerify performs non-intrusive SMTP and DNS checks β it does not send emails or alter any Patreon data. Always review Patreon's API terms when building automations.
Verify emails in Patreon
Create a free account, grab your API key, and stop bounces before they happen.
Get started free