Groundhogg + Lob: send mail only to valid addresses
Returned mail is a quiet budget killer. You pay for printing, postage, and handling, then it boomerangs back because someone typed “St” instead of “Street” or missed an apartment number.
Lob address validation is the fix when your Groundhogg list is growing faster than your team can clean it. Marketing managers feel it when campaign results look “off.” Agency owners notice it when clients question wasted spend. Ops teams end up doing the cleanup, one record at a time.
This workflow checks every new Groundhogg contact’s mailing address with Lob, then tags the contact as deliverable or undeliverable. You’ll see how it works, what you need, and how to adapt it to your own direct mail process.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Groundhogg + Lob: send mail only to valid addresses
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Incoming CRM Webhook"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map Address Details", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Postal Address Validation"]
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route Deliverability", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Post CRM Tag Deliverable"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Post CRM Tag Undeliverable"]
n3 --> n4
n3 --> n5
n1 --> n2
n0 --> n1
n2 --> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n3 decision
class n0,n2,n4,n5 api
classDef customIcon fill:none,stroke:none
class n0,n2,n4,n5 customIcon
The Problem: Direct mail lists go stale fast
Mailing addresses decay constantly. People move, businesses change suites, and a surprising number of form submissions come in half-complete (“123 Main” with no city, or a ZIP that doesn’t match the state). If you’re using Groundhogg to drive postcards, letters, or welcome kits, one bad batch can wreck the whole run. You lose money on returns, but you also lose time: someone has to investigate, fix records, re-run segments, then explain why response rates dipped. Honestly, it turns direct mail into a guessing game.
It adds up fast. Here’s where it breaks down in real teams.
- Manual spot-checking means you only catch the obvious errors, while the “almost correct” addresses slip through.
- List hygiene becomes a last-minute scramble right before a print deadline.
- Returned pieces create hidden work, because staff must find the right contact, update the CRM, and decide if they should be re-mailed.
- Segmentation gets unreliable when “invalid address” isn’t tracked consistently inside Groundhogg.
The Solution: Verify addresses in Lob, then tag in Groundhogg
This n8n workflow turns address verification into an automatic quality gate. When a new contact is created in Groundhogg, Groundhogg sends a webhook to n8n with the contact details. n8n maps the address fields into the format Lob expects, then sends the address to Lob’s verification endpoint. Lob responds with deliverability details, and the workflow routes the contact down the right path. Finally, n8n updates Groundhogg by applying a “Deliverable” tag or an “Undeliverable” tag, so your mailing segments stay clean without anyone babysitting the list.
The workflow starts with a Groundhogg webhook. Then Lob does the heavy lifting on postal validation. At the end, Groundhogg gets a clear status you can filter, automate, and report on.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you add about 50 new leads a week into Groundhogg from forms and imports. If you spend maybe 3 minutes per contact checking an address (searching, correcting typos, reformatting), that’s around 2.5 hours weekly. With this workflow, verification happens as the contact is created: a few seconds to send the webhook, a short wait for Lob’s response, then the right tag is applied automatically. You review the “Undeliverable” tag list in one batch, instead of hunting for mistakes everywhere.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Groundhogg CRM to trigger on new contacts
- Lob for address verification and deliverability status
- API keys (get them from Groundhogg and Lob dashboards)
Skill level: Beginner. You’ll connect accounts, paste API keys, and confirm a couple of field mappings.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new contact hits Groundhogg. Groundhogg sends the contact payload to n8n via an incoming webhook, so the check happens right when the record is created (not days later).
The address is cleaned up and mapped. n8n takes fields like street, city, state, and ZIP, then reshapes them into what Lob’s verification service expects. Small detail, big impact.
Lob verifies deliverability. An HTTP request sends the address to Lob, and the workflow reads the response to understand whether the address is deliverable.
Groundhogg gets a tag you can use immediately. If deliverable, n8n posts an update that applies your “Deliverable” tag. If not, it applies “Undeliverable,” so those contacts don’t quietly leak into your next mailing list.
You can easily modify the tags to update a custom field instead, or add an internal alert when an address fails validation, based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound webhook that receives CRM address data and starts the workflow.
- Add the Incoming CRM Webhook node and set HTTP Method to
POST. - Set Path to
727deb6f-9d10-4492-92e6-38f3292510b0and copy the generated webhook URL for your CRM. - Optionally keep the Flowpast Branding sticky note for documentation purposes.
Step 2: Connect Address Mapping
Normalize the incoming address fields so they match the validation API requirements.
- Add the Map Address Details node and enable Include Other Fields.
- Create the following assignments in Map Address Details:
- address →
{{ $json.address }} - address2 →
(leave blank) - city →
{{ $json.city }} - state →
{{ $json.state }} - zip →
{{ $json.zip_code }}
- address →
- Connect Incoming CRM Webhook to Map Address Details.
⚠️ Common Pitfall: If your CRM provides a secondary address line, update the address2 assignment instead of leaving it blank.
Step 3: Set Up Postal Address Validation
Send the mapped address data to the Lob verification API and capture deliverability results.
- Add the Postal Address Validation node and set URL to
https://api.lob.com/v1/us_verifications. - Set Method to
POSTand enable Send Body. - In Body Parameters, add:
- primary_line →
{{ $json.address }} - secondary_line →
{{ $json.address2 }} - city →
{{ $json.city }} - state →
{{ $json.state }} - zip_code →
{{ $json.zip_code }}
- primary_line →
- Connect Map Address Details to Postal Address Validation.
Step 4: Configure Routing and CRM Tagging
Route results based on deliverability and tag the CRM record accordingly.
- Add the Route Deliverability node and set Value 1 to
{{ $json.deliverability }}with Data Type set tostring. - Configure rules in Route Deliverability:
- Rule 1: Value 2 →
deliverable, Output Key →deliverable - Rule 2: Operation →
notEqual, Value 2 →deliverable, Output Key →NOT deliverable
- Rule 1: Value 2 →
- In Post CRM Tag Deliverable, set URL to
webhook listener from Groundhogg funnel, Method toPOST, and add body parameters:- tag →
Mailing Address Deliverable - id →
{{ $('Incoming CRM Webhook').item.json.id }}
- tag →
- In Post CRM Tag Undeliverable, set URL to
webhook listener from Groundhogg funnel, Method toPOST, and add body parameters:- tag →
Mailing Address NOT Deliverable - id →
{{ $('Incoming CRM Webhook').item.json.id }}
- tag →
- Connect Postal Address Validation to Route Deliverability, then connect each output to its respective CRM tagging node.
Step 5: Test and Activate Your Workflow
Verify data flow and ensure the CRM tags update correctly before going live.
- Use Incoming CRM Webhook’s test URL to send a sample payload containing
address,city,state, andzip_code. - Run the workflow and confirm Postal Address Validation returns a
deliverabilityvalue. - Check that the correct node fires: Post CRM Tag Deliverable for deliverable addresses or Post CRM Tag Undeliverable otherwise.
- Activate the workflow and switch your CRM to use the production webhook URL.
Common Gotchas
- Groundhogg credentials can expire or need specific permissions. If things break, check your Groundhogg API key and webhook configuration inside n8n first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 10–30 minutes if your API keys are ready.
No. You will connect accounts and paste API keys. After that, it’s mostly confirming which Groundhogg fields map to Lob.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. Lob includes about 300 US address verifications for free, then charges based on usage.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you probably should. Most teams rename the Groundhogg tags, update a custom field instead of tagging, and add a notification when an address is undeliverable. In n8n, that usually means editing the routing logic in “Route Deliverability” and swapping the final HTTP requests that post tags back to Groundhogg. You can also store the full Lob response in a note field if you want an audit trail.
Usually it’s an invalid or expired Lob API key, or the request is pointed at the wrong Lob environment. Regenerate the key in Lob, update the n8n credential, then re-run one test execution. If you’re sending empty address fields from Groundhogg, Lob may reject the request, so check the execution data right after “Map Address Details.”
A lot, as long as you stay within your n8n execution limits and Lob verification usage.
It depends on how strict you want the logic to be. n8n is better when you want branching, data mapping, and direct HTTP calls without paying extra for “premium” steps, and you can self-host for high-volume list hygiene. Zapier or Make can be simpler for quick prototypes, but address verification often needs careful field handling and routing, which is where n8n feels more controlled. If your mail process involves multiple tags, exceptions, or batch imports, you’ll appreciate that control. Talk to an automation expert if you want a second opinion on your exact stack.
Once deliverability is tagged automatically in Groundhogg, your mailing list stops being a liability. You mail to the right people, and you stop paying for the wrong addresses.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.