The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "82d5281b-a4a3-4407-859e-49cb16567b28",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
340,
-260
],
"parameters": {
"width": 747,
"height": 428,
"content": "## Purpose \nTo verify the mailing address for new contacts in Keap. \n\nWhenever I add a new contact to Keap, I run this automation to ensure I have a valid mailing address. It also helps me check for misspellings if the contact address was manually entered.\n\nQuick Video Overview:\n\nhttps://www.youtube.com/watch?v=YyIpQw5gyhk\n"
},
"typeVersion": 1
},
{
"id": "78fbe4ae-e72b-4bf9-8387-0d126316b148",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1480,
-180
],
"parameters": {
"color": 5,
"width": 515,
"height": 763,
"content": "Update Keap to indicate if the address is deliverable.\n\nPossible Options: \n- Add Tag\n- Add Note\n- Start Automation\n- Update a Field\n\nFor Deliverable Addresses - I apply a tag that the address was verified.\n\nFor Non Deliverable Addresses - I apply a tag, which triggers an automation for my team to manually verify the address. You could also trigger an automation to reach out to the contact to verify their address.\n\n"
},
"typeVersion": 1
},
{
"id": "b6313993-fa07-463d-a77a-a3c273ebc2c5",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
200
],
"parameters": {
"color": 4,
"height": 339,
"content": "Receive a webhook from your CRM with the contact address fields"
},
"typeVersion": 1
},
{
"id": "f79e9d7a-7ce9-49f3-bd0f-b827ce04b5e2",
"name": "Set Address Fields",
"type": "n8n-nodes-base.set",
"position": [
840,
280
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8216105e-23ad-4c5c-8f4a-4f97658e0947",
"name": "address",
"type": "string",
"value": "={{ $json.address }}"
},
{
"id": "111da971-2473-4c5e-a106-22589cf47daf",
"name": "address2",
"type": "string",
"value": "={{ $json.address2 }}"
},
{
"id": "ed62cf39-10f1-42f6-b18f-bfa58b4fe646",
"name": "city",
"type": "string",
"value": "={{ $json.city }}"
},
{
"id": "d9550200-04ac-4cf4-b7e6-cd40b793ce97",
"name": "state",
"type": "string",
"value": "={{ $json.state }}"
},
{
"id": "62269d11-c98c-4016-83ef-291176f2fc12",
"name": "zip",
"type": "string",
"value": "={{ $json.zip_code }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.3
},
{
"id": "61d0ba59-dff6-4357-b085-a6d129171060",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1000,
480
],
"parameters": {
"color": 3,
"width": 430,
"height": 216,
"content": "1. Create an Account a https://www.lob.com/pricing\n2. Create API Key (https://help.lob.com/account-management/api-keys)\n3. Update Node with your Credentials (Basic Auth)"
},
"typeVersion": 1
},
{
"id": "4275e2a4-60a9-447e-8d64-f0073b9abe6b",
"name": "Address Verification",
"type": "n8n-nodes-base.httpRequest",
"position": [
1060,
280
],
"parameters": {
"url": "https://api.lob.com/v1/us_verifications",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "primary_line",
"value": "={{ $json.address }}"
},
{
"name": "secondary_line",
"value": "={{ $json.address2 }}"
},
{
"name": "city",
"value": "={{ $json.city }}"
},
{
"name": "state",
"value": "={{ $json.state }}"
},
{
"name": "zip_code",
"value": "={{ $json.zip_code }}"
}
]
}
},
"typeVersion": 4.1
},
{
"id": "89da689e-1f96-4aa6-9236-150dc087caf0",
"name": "Update Keap - Deliverable",
"type": "n8n-nodes-base.keap",
"position": [
1580,
140
],
"parameters": {
"tagIds": "=Mailing Address Deliverable",
"resource": "contactTag",
"contactId": "={{ $('CRM Webhook Trigger').item.json.id }}"
},
"credentials": {
"keapOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "67ca486b-fc17-43e0-a2ae-757ab65422f7",
"name": "Update Keap - NOT Deliverable",
"type": "n8n-nodes-base.keap",
"position": [
1580,
360
],
"parameters": {
"tagIds": "=Mailing Address NOT Deliverable",
"resource": "contactTag",
"contactId": "={{ $('CRM Webhook Trigger').item.json.id }}"
},
"credentials": {
"keapOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "bd2a2468-80d5-4a76-81b5-ea9cb181eb7a",
"name": "CRM Webhook Trigger",
"type": "n8n-nodes-base.webhook",
"position": [
600,
280
],
"parameters": {
"path": "727deb6f-9d10-4492-92e6-38f3292510b0",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1.1
},
{
"id": "15221022-7eb3-40db-85b3-cf310e8bc2d2",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
1280,
280
],
"parameters": {
"rules": {
"rules": [
{
"value2": "=deliverable",
"outputKey": "deliverable"
},
{
"value2": "deliverable",
"operation": "notEqual",
"outputKey": "NOT deliverable"
}
]
},
"value1": "={{ $json.deliverability }}",
"dataType": "string"
},
"typeVersion": 2
}
],
"connections": {
"Switch": {
"main": [
[
{
"node": "Update Keap - Deliverable",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Keap - NOT Deliverable",
"type": "main",
"index": 0
}
]
]
},
"Set Address Fields": {
"main": [
[
{
"node": "Address Verification",
"type": "main",
"index": 0
}
]
]
},
"CRM Webhook Trigger": {
"main": [
[
{
"node": "Set Address Fields",
"type": "main",
"index": 0
}
]
]
},
"Address Verification": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
keapOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Http Keap. Uses stickyNote, httpRequest, keap. Webhook trigger; 10 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Unique QRcode coupon assignment and validation for Lead Generation system. Uses httpRequest, formTrigger, googleSheets, stickyNote. Webhook trigger; 29 nodes.
Line Save File to Google Drive and Log File's URL. Uses googleSheets, googleDrive, httpRequest, stickyNote. Webhook trigger; 27 nodes.
Webhook Respondtowebhook. Uses executeWorkflow, httpRequest, stickyNote, respondToWebhook. Webhook trigger; 23 nodes.
Webhook Respondtowebhook. Uses executeWorkflow, httpRequest, stickyNote, respondToWebhook. Webhook trigger; 23 nodes.
Plex Automatic Throttler. Uses noOp, httpRequest. Webhook trigger; 21 nodes.