# thanks.io Help Center
> Guides, FAQs, and how-tos for AI-automated direct mail. thanks.io is a direct-mail automation platform — send postcards, letters, Notecards, gift cards, and MagnaCards via dashboard, REST API, or integrations like Zapier and Make.
This file contains all documentation content in a single document following the llmstxt.org standard.
## Welcome Video & "The Basics"
If you'd like help getting going, email [support@thanks.io](mailto:support@thanks.io) or [schedule a concierge session](http://calendly.com/thanks-io) anytime.
### **THE BASICS**
**Creating Message Templates**
**Creating Image Templates**
**Creating Mailing Lists**
**Bringing It All Together -- Quickly Sending Once Your Templates Are Built**
---
## Choosing a Mailer Type
# Choosing a Mailer Type
## What it is
thanks.io offers five mailer types. Each one has a different physical format, price point, and ideal use case. Picking the right type before you design saves time and ensures your mail lands the way you intend.
## Mailer comparison
| Type | Size / Format | Best for | Stamp type | First Class option |
|---|---|---|---|---|
| Postcard 4×6 | 4 × 6 in | High-volume outreach, promotions | Metered | Yes |
| Postcard 6×9 | 6 × 9 in | Neighborhood farming, real estate | Metered | Yes |
| Postcard 6×11 | 6 × 11 in | Bold visuals, maximum print area | Metered | Yes |
| Letter (windowed) | 8.5 × 11 in | Formal communications, B2B | Metered | Yes |
| Letter (windowless) | 8.5 × 11 in | Full-bleed design, newsletters, PDFs | Metered | Yes |
| Notecard | 5 × 4 in folded | Premium touches, VIP clients | Real stamp | Yes |
| Gift Card | Branded card | Appreciation, win-back, gifting | Real stamp | Yes |
| MagnaCard | 6 × 9 in magnetic | Staying power - sticks to fridges | Metered | Yes |
:::note
For current per-piece pricing on each type, see [thanks.io/pricing](https://www.thanks.io/pricing).
:::
## When to pick each type
**4×6 Postcard** - Your go-to for cost-efficient, high-volume sends. Great for e-commerce post-purchase thank-yous, drip campaigns, and lead follow-up.
**6×9 Postcard** - More visual space than 4×6 with a stronger presence in the mailbox. Popular for real estate neighborhood farming, local service businesses, and promotions.
**6×11 Postcard** - Maximum postcard real estate. Use it when your design needs room - event announcements, luxury brands, or campaigns where standing out is the priority.
**Windowed Letter** - The recipient's address shows through a window in the envelope. Best for formal, professional communications. Commonly used by nonprofits, financial services, and B2B outreach.
**Windowless Letter** - A full-bleed printed letter with complete design control. Supports multi-page PDFs. Use it for newsletters, long-form content, or any letter where you want full design freedom.
**Notecard** - A 5.5x8.5 folded card with a real postage stamp. The most personal-feeling format. Use it for VIP client touches, post-meeting thank-yous, and high-value relationship moments.
**Gift Card** - A branded gift card delivered by mail with a real postage stamp and QR code for redemption. Use it for customer appreciation, win-back offers, and gifting. Note: Gift Cards are exempt from Duplicate Prevention.
**MagnaCard** - A 6×9 postcard on magnetic stock. It adheres to refrigerators and metal surfaces, giving it significantly longer staying power than paper mail. Best for local businesses that want their contact details on display for months.
## Tips & best practices
- If cost per piece is your primary constraint, start with the 4×6 postcard.
- If you want the recipient to keep your mail long-term, use a MagnaCard or Notecard.
- For trust-building with cold contacts, a windowed letter feels more formal than a postcard.
- Gift Cards generate unusually high response rates because recipients must act to redeem them.
- All types support handwritten-style messages - choose AI Fonts and optional Realism Mode to maximize the personal feel.
## Related
- [Postcard details](../03-sending-mail/mailer-types/postcards.md)
- [Letters & PDF sends](../03-sending-mail/mailer-types/letters.md)
- [Plan Comparison](../13-plans-and-billing/plan-comparison.md)
---
## Dashboard Tour
# Dashboard Tour
## What it is
The thanks.io dashboard at [dashboard.thanks.io](https://dashboard.thanks.io) is your central workspace. Every task - designing mail, managing contacts, running campaigns, reviewing analytics - happens here.
## Send Mail
The Send Mail Wizard is where you design and send mail. Click **New Send** from the dashboard home to open it. You choose your mailer type, Image Template, message, and recipients, then review a proof before placing the order.
See [Send Mail Wizard Walkthrough](../03-sending-mail/card-builder-walkthrough.md) for a step-by-step guide.
## Mailing Lists
Mailing Lists store your recipients. You can create multiple lists, upload recipients via CSV, verify addresses, apply suppression, and segment contacts for targeted sends or campaigns.
Each list can also power an Address Collection Landing Page - a thanks.io-hosted URL you share with contacts to collect their physical addresses.
## Automated Campaigns
Automated Campaigns automate your sending based on triggers. The index groups automations by their bound mailing list - each group shows all automations for that list with their trigger, schedule, templates, and status.
- **Days After Added** - sends mail N days after a recipient is added to a list.
- **Birthday** - sends mail 10 days before a recipient's birthday.
- **Anniversary** - sends mail 10 days before a recipient's anniversary (like a house anniversary)
- **Holiday** - sends mail on or around a specified holiday.
- **Neighbor Blast** - sends to addresses within a radius of a specified property.
- **evenFLOW** - paces sending to a daily limit, optionally looping through the list.
## Templates
**Image Templates** - the primary visual design of your mail. Created in the thanks.io editor, uploaded as files, or synced directly from Canva.
**Message & QR Templates** - the message body, QR code configuration, and replacement variables. Supports AI Fonts, Realism Mode, and Rate My Content scoring.
## Analytics
This section shows scan data from your QR codes. You can view scan rates by Image Template and mailing list, and configure scan notifications (email, text, webhook).
## Integrations
Connect thanks.io to your existing tools. Native integrations include HubSpot, Canva, HighLevel, and more. You can also configure API access, webhooks, and Zapier/Make connections here.
## Account & Settings
Manage your account name, billing, password, two-factor authentication, email notification preferences, and the Branding Builder (your company logo, contact details, and "Scan Me" background used across templates).
## Sub-accounts
Sub-accounts let you create separate scoped tenants under your main account - each with its own lists, templates, campaigns, orders, and webhooks. Useful for agencies managing multiple clients.
## Tips & best practices
- Use the Branding Builder early - it applies your logo and contact info across templates automatically.
- Check the audit log under Account settings to troubleshoot API or Zapier activity.
- Run Rate My Content on new Message Templates before launching a campaign.
## Related
- [Sign Up and Send Your First Mailer](./sign-up-and-first-send.md)
- [Send Mail Wizard Walkthrough](../03-sending-mail/card-builder-walkthrough.md)
- [Plan Comparison](../13-plans-and-billing/plan-comparison.md)
---
## Send Your First Mailer
# Send Your First Mailer
## What it is
This guide walks you through creating a thanks.io account and placing your first physical mail order - all from the web dashboard.
## When to use it
- You're new to thanks.io and want to send something for the first time.
- You want to verify the process works end-to-end before committing to a campaign.
## How to do it
### Step 1 - Create your account
1. Go to [https://dashboard.thanks.io/register](https://dashboard.thanks.io/register) and fill in your name and email address.
2. Click Next to continue.
---
## Setup Wizard
After entering your email, thanks.io walks you through a three-step setup wizard before you reach the dashboard.
### Step 2 - Enter your address for free samples
1. Enter your mailing address on the first wizard screen.
2. This is used to ship you free physical samples so you can see the print quality before you send to anyone else.
### Step 3 - Choose a plan
1. Review the three plan options: **Free**, **Business**, and **Professional**.
2. Select the plan that fits your needs. You can start on **Free** at no cost and upgrade at any time.
3. If you select **Business** or **Professional**, enter your credit card details on this screen.
### Step 4 - Set up branding
1. Enter your company name and upload a logo.
2. These defaults are used across your mail pieces and populate the Branding Builder automatically.
3. You can update branding at any time from your account settings.
---
## Send Mail Wizard
After completing the setup wizard you land on the dashboard. Click **Send Now** to open the Send Mail Wizard and place your first order.
### Step 5 - Click "Send Now"
1. From the dashboard, click the **Send Now** button.
2. This opens the Send Mail Wizard.
### Step 6 - Choose a mailer type
1. Select the physical format you want to send: postcard (4×6, 6×9, or 6×11), letter, Notecard, gift card, or MagnaCard.
2. For your first send, a **4×6 postcard** is the simplest and most affordable option.
### Step 7 - Upload your design
1. Click **Upload** to use your own image file, or browse the pre-built template gallery to pick an existing design.
2. The image you select becomes the front artwork for your mailer.
3. For a first send, choose a gallery template to skip design work entirely.
### Step 8 - Create your message
1. Type your message in the editor. This is the handwritten-style text that appears on the mailer.
2. Use replacement variables like `%FIRST_NAME%` to personalize each piece automatically.
### Step 9 - Enter recipient address
1. Click **Add Recipients**.
2. Enter the recipient's name, street address, city, state/province, and postal code.
### Step 10 - Review and send
1. Check the print-ready proof - confirm the design, message text, and recipient address all look correct.
2. Review the order total, then click **Place Order** to submit.
Your order enters the processing queue immediately. You will receive an email confirmation once it is accepted.
## Tips & best practices
- Use your own address as the recipient for your first send - that way you can inspect the printed result in person.
- Keep your first message short. One clear sentence plus a call-to-action is enough to test the full flow.
- Check the proof carefully before confirming. Orders move to print quickly and cancellation is only possible within one hour of placing the order.
## Related
- [What is thanks.io?](./what-is-thanks-io.md)
- [Send Mail Wizard Walkthrough](../03-sending-mail/card-builder-walkthrough.md)
- [Plan Comparison](../13-plans-and-billing/plan-comparison.md)
---
## What is thanks.io?
# What is thanks.io?
## What it is
thanks.io is a direct-mail automation platform. You use it to design, send, and track physical mail - postcards, letters, Notecards, gift cards, and MagnaCards - through a web dashboard, a REST API, or an integration with your existing tools.
Mail is personalized with handwritten-style text rendered by a proprietary digital handwriting engine. Every piece is printed, addressed, and mailed on your behalf. You never touch an envelope.
Trusted by 5,000+ businesses since 2017, thanks.io is built around a simple idea: physical mail cuts through digital noise in a way that email and ads cannot.
## When to use it
- You want to stand out in a prospect's inbox - but their *physical* mailbox.
- You need to send thank-you notes, win-back offers, or neighborhood outreach at scale.
- You want automated drip campaigns triggered by CRM events, birthdays, or website visits.
- You're building a product workflow (e.g., post-purchase touches) and need a programmable mail API.
thanks.io works for solo operators sending a handful of cards and enterprises sending millions of pieces per year.
## The five mailer types at a glance
| Type | Size / Format | Best known for |
|---|---|---|
| Postcard | 4×6, 6×9, or 6×11 | High-volume outreach, promotions, neighborhood farming |
| Letter | Windowed or Windowless | Formal communications, long-form content, nonprofits |
| Notecard | 5.5x8.5 folded | Premium personal touches, VIP clients, thank-yous |
| Gift Card | Branded, real stamp | Customer appreciation, win-back offers, gifting |
| MagnaCard | 6×9 magnetic | Maximum staying power - sticks to fridges and metal surfaces |
All five types support First Class or Standard postage and international delivery.
## Key capabilities
**AI-powered personalization.** AI Fonts with optional Realism Mode produce handwritten-style text that looks personally written. Rate My Content scores your message before you send. Per-recipient AI messaging customizes copy at the individual level.
**QR tracking.** Embed a dynamic QR code with a per-recipient URL. Get notified by email, text, or webhook when someone scans. View scan analytics by template and mailing list.
**Campaigns.** Automate sends based on triggers: Days After Added (drip), Birthday, Holiday, Neighbor Blast (radius around an address), and evenFLOW (paced daily sending). Set it once; it runs on its own.
**API and integrations.** A full REST API lets developers trigger sends programmatically. Native integrations include HubSpot, Canva, HighLevel, and more. Generic automation via Zapier, Make, and 8,000+ connected apps.
**Analytics and audit.** Track QR scans in the Global Scan List. Review every API call, dashboard action, and webhook event in the audit log.
## Why physical mail works
Inboxes are saturated. Open rates for email continue to fall. A physical postcard lands in someone's hands - it cannot be filtered by an algorithm, and it does not disappear on a swipe.
The handwritten-style format amplifies that effect. A piece that looks personally addressed is far more likely to be read than a printed advertisement.
:::tip
Even a single well-timed Notecard to a high-value client can outperform an entire email sequence. The medium signals effort.
:::
## Related
- [Sign Up and Send Your First Mailer](./sign-up-and-first-send.md)
- [Choose a Mailer Type](./choosing-a-mailer-type.md)
- [Plan Comparison](../13-plans-and-billing/plan-comparison.md)
---
## Absentee Owner Outreach
# Absentee Owner Outreach
## Who it's for
Real estate agents and investors who want to reach owners of investment properties - rentals, vacant lots, second homes - who live at a different address from their property.
## The play
Obtain a list of absentee owner records (mailing address ≠ property address). Mail each owner at their actual home address with a postcard or Notecard that references the investment property they own. The mailer shows a Google Street View photo of *their property* (the investment address), not their home - making the mail feel highly specific and relevant.
## Step-by-step
**Send method: Automated Campaigns → Days After Added** - this runs automatically. Set it up once and it fires for everyone you add to the list.
### 1. Get your absentee owner list
Sources:
- County assessor records (public data, available from most counties)
- Data services - thanks.io offers address append and data services; see [Data Services](/account-and-billing/data-services)
- Third-party list providers (ListSource, PropStream, ATTOM)
Required fields: `First Name`, `Last Name`, **Mailing Address** (where they live), **Property Address** (the investment property). Upload both; the mailing address is where the mail goes.
### 2. Upload to thanks.io
Upload your list as a CSV. Map:
- `Address`, `City`, `State`, `Zip` → the **mailing address** (where you send the mail)
- `Absentee Address`, `Absentee City`, `Absentee State`, `Absentee Postal Code` → the **investment property address**
Using the dedicated absentee fields lets you reference the property address with `%ABSENTEE_STREET%` in your message and image templates. You don't need to use custom fields for this.
### 3. Set up Street View on your Image Template
1. In the nav bar, go to **Image Templates**.
2. Click **Dynamic Builder**.
3. Set the Background Image to `~STREET_VIEW~`.
4. Add a header and subheader - for example:
- Header: *"Your property at %ABSENTEE_STREET%"*
- Subheader: *"Let's talk about what it's worth today."*
5. Save the template.
The postcard will show a Google Street View photo of the investment property - not the owner's home.
### 4. Create your Message Templates
In the left navigation, go to **Message & QR Templates** and create one template per touch. Use these as starting points:
**Day 1:**
> Hi %FIRST_NAME%,
>
> I specialize in working with property owners in this area and noticed you own the property at %ABSENTEE_STREET%.
>
> If you've been thinking about selling or want to know what it's worth in today's market, I'd love to connect - no pressure.
>
> Scan the QR code for a free estimate, or call me directly.
>
> %YOUR_FULL_NAME%, %YOUR_COMPANY%
> %YOUR_PHONE%
Save each template - you'll select them in the campaign setup below.
### 5. Set up the Days After Added campaign
A 2-3 touch sequence over 60 days significantly improves response:
| Touch | Day | Format | Message angle |
|---|---|---|---|
| 1 | Day 1 | Postcard with Subject Property Street View | Initial outreach referencing their investment property |
| 2 | Day 30 | Notecard | Warmer follow-up, more personal |
| 3 | Day 60 | Postcard or Notecard | Final touch with a market update for their area |
To set this up:
1. Go to **Automated Campaigns** in the left navigation.
2. Click **Add Automation**.
3. In the **Add Automation** modal:
- **Select What To Send:** choose your postcard or Notecard format.
- **Select An Image Template:** choose your Street View image template.
- **Select A Message Template:** choose your Day 1 message template.
- **Select A Mailing List:** choose your absentee owner list.
- In the **Sending trigger** dropdown, select **A Number of Days After a Recipient Is Added**.
- Set **Enter Day After Added to List** to **1** (sends the day after they're added).
4. Click **Save and Add Another** to create the Day 30 touch: same list, different message template, enter **30** for the day.
5. Repeat for Day 60.
When you add a contact to the list, all three touches fire automatically on schedule.
## Run this play
1. [Upload your list as a CSV](/mailing-lists/csv-upload-and-format)
2. [Create a Street View Image Template](/ai-and-personalization/dynamic-images)
3. [Create Message Templates for each touch](../05-templates-and-design/message-templates.md)
4. [Set up a Days After Added campaign](/campaigns/days-after-added)
## Video Guide
## Related
- [Neighbor Blast - Just Listed / Just Sold](./neighbor-blast-just-listed.md)
- [Golden Letters](./golden-letters.md)
- [Dynamic Images - Street View](/ai-and-personalization/dynamic-images)
---
## AI Handwritten Insurance Newsletters
## Who it's for
Insurance agents who want to send monthly newsletters to their book of business without designing a PDF each time. The AI writes a unique, personalized message for each client - printed in a handwritten-style font and mailed as a physical letter.
## The play
Instead of a designed PDF newsletter, thanks.io's AI generates a personal, conversational message for each recipient based on a prompt you define. Every client gets a letter that feels like it was written just for them. Pair this with an automated campaign (evenFLOW) and it runs every month without you touching it.
## Why it works
A handwritten-style letter stands out from the printed marketing mailers most clients receive. A short, personal note about a topic relevant to their coverage or life stage - like an open enrollment reminder, a seasonal safety tip, or a "just checking in" message - keeps you top of mind between renewals.
## Step-by-step
### 1. Set up your client list
Upload your book of business as a CSV with at minimum: `First Name`, `Last Name`, `Address`, `City`, `State`, `Zip`. Add any extra fields you want the AI to reference, such as policy type or renewal month.
Save it as a mailing list in thanks.io.
### 2. Create your Message Template
In the **Message & QR Templates** section, create a new template. Write a prompt that tells the AI what to say - for example:
> *"Write a short, friendly note from an insurance agent checking in with a client. Mention that you are available to review their coverage and answer any questions. Keep it warm and under 150 words."*
Use `%FIRST_NAME%` and other [replacement variables](/ai-and-personalization/replacement-variables) to personalize the greeting.
Use **Rate My Content** to score and improve your message before saving.
### 3. Choose a handwritten-style font
When placing your order or setting up your campaign, select one of thanks.io's [AI Fonts](/ai-and-personalization/ai-fonts-and-realism-mode) to give the letter the look and feel of a handwritten note.
### 4. Set up your campaign
Use **evenFLOW** to automate the send. Set it to repeat on a monthly schedule so every client on your list receives a newsletter each month without any manual work.
## Tips
- Keep the message short - physical letters are read quickly. Aim for 100-150 words.
- Rotate your AI prompt each month to vary the content so clients don't receive the same message twice.
- Add a clear call to action at the end - a phone number, QR code link, or a simple "reply to this letter" prompt.
## Related
- [Monthly Newsletter Campaign (PDF)](./monthly-newsletter-campaign.md)
- [T65 Birthday Campaign](./t65-birthday-campaign.md)
- [Replacement Variables](/ai-and-personalization/replacement-variables)
- [Rate My Content](/ai-and-personalization/rate-my-content)
---
## Automated Real Estate Campaigns
This recorded webinar covers how to build automated direct mail campaigns for real estate from start to finish. It walks through setting up campaigns that fire on their own - Neighbor Blasts for new listings, drip sequences for absentee owners and golden letter prospects, and list-based outreach that runs without manual effort each time.
If you're new to thanks.io's automation features or want a comprehensive overview of how real estate agents are using the platform, this is a good place to start.
## Related
- [Neighbor Blast - Just Listed / Just Sold](./neighbor-blast-just-listed.md)
- [Absentee Owner Outreach](./absentee-owner-outreach.md)
- [Golden Letters](./golden-letters.md)
- [Campaigns](/campaigns)
---
## AI Generated Real Estate CMA Letters
A Comparative Market Analysis (CMA) letter is one of the most effective tools in a real estate agent's prospecting toolkit. It gives a homeowner a data-driven look at what their property might be worth in today's market - and creates a natural reason to start a conversation.
With thanks.io's AI message generation, you can send personalized CMA letters at scale. Use the **Real Estate CMA** mode in Message Templates to generate and refine CMA-focused messaging. The AI drafts a unique letter for each recipient based on their name, city, and the replacement variables in your template - no copy-paste required.
## Related
- [Golden Letters](./golden-letters.md)
- [AI Fonts and Realism Mode](/ai-and-personalization/ai-fonts-and-realism-mode)
- [Replacement Variables](/ai-and-personalization/replacement-variables)
---
## Getting Started with Default Campaigns
# Default Campaigns for Real Estate Agents
Thanks.io includes pre-built automated campaigns designed for real estate agents. All automations run automatically — just add recipients to the corresponding mailing list and the sequences start immediately.

## Leads & Website Visitor Follow Up
Nurture new leads with a 4-step sequence over 120 days.
| Automation | Trigger | Mail Piece |
|---|---|---|
| Website Follow Up | 1 day after added | Magnet Card |
| Market Update 1 | 30 days after added | Postcard |
| Market Update 2 | 90 days after added | Postcard |
| Market Update 3 | 120 days after added | Postcard |
**When to use:** Add website leads, contact form submissions, and new prospects to this list to automatically send a magnet card hook followed by market updates.
## Recruiting
Convert potential agents with a targeted gift sequence.
| Automation | Trigger | Mail Piece |
|---|---|---|
| Gift Card Offer | 1 day after added | Gift Card |
**When to use:** Add agent prospects to this list to send a recruiting gift card within 24 hours.
## Monthly Market Update For Farm or Sphere
Keep past clients and sphere of influence engaged with regular market data.
| Automation | Trigger | Mail Piece |
|---|---|---|
| Market Update | Monthly | Postcard |
**When to use:** Add your past clients, friends, family, and sphere contacts to this list for recurring monthly market updates.
## How to use default campaigns
1. Go to **Automated Campaigns** in the left navigation.
2. Select a default mailing list (e.g., "Leads & Website Visitor Follow Up").
3. Click **+ Add Recipient** or bulk-import contacts into that list.
4. The automations activate automatically and send on schedule.
5. To pause automations, toggle the status OFF next to each automation; toggle ON to resume.
All automations are pre-configured with templates and mail pieces. You can preview any automation before it sends by clicking **Preview** on the automation row.
## Customizing default campaigns
Default campaigns are templates. You can:
- **Pause automations** by toggling status OFF on individual automations or mailing lists
- **Preview** mail pieces before they send
- **Edit templates** by clicking the template name to customize message and design
- **Move recipients** to other lists after sending (optional setting on each automation)
- **Create new automations** in these lists to add more touches
For more details, see [Automated Campaigns Overview](./overview.md).
---
## Automated Follow-Ups on Delivery
One of the most powerful - but often overlooked - features of thanks.io is the ability to trigger actions in third-party systems the moment a mail piece is delivered. Instead of guessing when to follow up, you can send an automated text or email to your recipient at exactly the right time: when they have your mail in hand.
This can be set up directly through the [thanks.io API](https://docs.thanks.io/webhooks/available/order-item-delivered) or using connector apps like Zapier - no coding required with the Zapier route.
## Why it works
Most follow-up calls and texts happen on a fixed schedule - 3 days after sending, a week later, etc. Delivery-triggered follow-ups are different: they fire based on when the mail actually arrives, not when it was sent. Your message lands while the recipient is holding your postcard.
## How to set it up
**Option 1 - Zapier (no code):**
1. Create a Zap with the thanks.io trigger **Order Item Delivered**.
2. Add an action to send an SMS via your preferred platform (e.g., Twilio, HighLevel, HubSpot).
3. Personalize the message using the recipient data passed by the webhook.
**Option 2 - thanks.io API:**
Set up the [`order-item-delivered` webhook](https://docs.thanks.io/webhooks/available/order-item-delivered) in your own system to fire your follow-up logic when thanks.io posts the delivery event.
## Tips
- Keep your follow-up message short and reference the mail piece directly - "Did you get the card I sent?" or "I wanted to follow up on the letter that just arrived."
- This feature requires the **Business Plan**. If you need help getting it set up, [schedule a 1-on-1 implementation session](https://calendly.com/thanks-io/strategysession?back=1).
- Pair delivery follow-ups with a QR code on your mailer so you can also track recipients who scan before you even reach out.
---
## Drip to Past Customers
# Drip to Past Customers
## Who it's for
Any business with a list of past customers who haven't bought again recently. This is typically the highest-ROI mail play - you already have the relationship; you just need to stay visible.
## The play
Upload your past customer list. Set up a **Days After Added** campaign with 2-4 touches spread over 60-90 days. Each touch is a warm, personal-feeling message (Notecard or postcard) with a relevant offer or reason to reconnect. The sequence runs automatically for everyone on the list.
## Expected signals
- Past customer re-engagement mail typically sees 2-4× higher response rates than cold outreach
- QR scan rates on warm customer lists commonly run 4-10%
- A 3-touch sequence over 90 days outperforms a single mailer by a significant margin
## Step-by-step
**Send method: Automated Campaigns → Days After Added** - set it up once and it fires automatically for everyone on the list.
### 1. Build your past-customer list
Export from your CRM, POS, or billing system. Required: `First Name`, `Last Name`, `Address`, `City`, `State`, `Zip`. Optional: `Last Purchase Date` or `%CUSTOM1%` for personalized context.
Upload as a mailing list named "Past Customers - Re-engagement."
### 2. Design a 3-touch sequence
Each touch is a separate automation:
| Day | Format | Message angle |
|---|---|---|
| Day 1 | Notecard or 4×6 postcard | "We miss you" - warm, personal, no hard sell |
| Day 30 | 4×6 or 6×9 postcard | New offer, updated service, or relevant reason to return |
| Day 60 | Notecard | Final personal touch, direct CTA, or exclusive offer |
### 3. Create your Message Templates
In the left navigation, go to **Message & QR Templates** and create one template per touch. Use these as starting points:
**Day 1 (Notecard):**
> Hi %FIRST_NAME%,
>
> It's been a while and I wanted to reach out personally. We've been thinking of you and would love to reconnect.
>
> [Relevant offer or update - e.g., "We've added new services this year" or "As a past customer, you get 10% off your next visit."]
>
> %YOUR_FULL_NAME%, %YOUR_COMPANY%
> %YOUR_PHONE%
**Day 30 (Postcard):** Lead with the offer. QR code to a landing page with a specific redemption.
**Day 60 (Notecard):** "Last chance" framing - limited offer, expiring date, or personal check-in.
Run **Rate My Content** on each template - target 8+ on personalization and CTA. Save each template before moving on.
### 4. Set up a Days After Added campaign
1. Go to **Automated Campaigns** in the left navigation.
2. Click **Add Automation**.
3. In the **Add Automation** modal:
- **Select What To Send:** choose your mailer format (Notecard for Day 1/60, postcard for Day 30).
- **Select An Image Template** and **Select A Message Template** for the Day 1 touch.
- **Select A Mailing List:** choose your past-customer list.
- In the **Sending trigger** dropdown, select **A Number of Days After a Recipient Is Added**.
- Set **Enter Day After Added to List** to **1** (sends the day after they're added).
4. Click **Save and Add Another** to add the Day 30 touch: same list, Day 30 message template, enter **30** for the day.
5. Repeat for Day 60.
Contacts added to the list in the future will automatically enter the sequence at Day 1.
### 5. Track with QR codes
Add a QR code to every piece. Scanners go into a "Re-engaged" list via Move Recipient on Scan. Call or follow up within 24 hours.
## Pitfalls
- **Generic "we miss you" with no offer.** Sentiment without a reason to act doesn't convert. Give them something.
- **Only one touch.** A single mailer to a lapsed customer often isn't enough. The sequence builds momentum.
- **Not updating the list.** As you continue working, add new lapsed customers regularly so the campaign stays full.
## Run this play
1. [Upload your past-customer list](/mailing-lists/csv-upload-and-format)
2. [Set up a Days After Added drip](/campaigns/days-after-added)
## Related
- [Your First 100 Mailers](./first-100-mailers.md)
- [QR Scan → Call Follow-up](./qr-scan-followup.md)
- [Monthly Newsletter Campaign](./monthly-newsletter-campaign.md)
---
## Farming with evenFLOW
# Farming with evenFLOW
## Who it's for
Real estate agents who want to own a geographic farm - a specific neighborhood, zip code, or subdivision - by showing up in mailboxes consistently over months and years.
## The play
Build a list of every address in your farm area. Use **evenFLOW** to drip through the list at a controlled daily pace - say, 20 pieces per day - so you spread your spend evenly throughout the month. Run the campaign on a loop so the same list rotates through every few months, each time with fresh creative.
Over time, you become the agent that neighborhood thinks of first.
## Expected signals
- A well-maintained farm of 500 homes at 20 pieces/day cycles through every 25 days
- After 3-6 months of consistent mailing, inbound inquiry rates measurably increase
- QR scan rates on farm mail typically run 1-4%; scans indicate active home-value interest
- Cost: depends on list size and frequency - evenFLOW lets you set the daily budget ceiling
## Step-by-step
**Send method: Automated Campaigns → Daily Send Limit (evenFLOW)** - paces your farm list at a controlled daily rate and loops indefinitely.
### 1. Build your farm list
Sources for addresses:
- **Radius search** - from a seed address, let thanks.io find all addresses within a radius. See [Radius Search](/mailing-lists/segmenting-and-filtering).
- **CSV upload** - purchase a list from a data provider or pull from your MLS.
Upload to a dedicated list named by neighborhood, e.g., "Oak Park Farm."
### 2. Choose your format
**6×9 postcards** are the recommended format for farming - strong visual presence, lower cost, and ideal for rotating creative.
### 3. Create your Image Template and Message Template
Create these before setting up the campaign - you'll select them in the automation form.
- **Image Template:** go to **Image Templates** in the left navigation. Design a clean, professional card with your headshot, logo, and one clear message. Rotate creative every 1-2 months (recent sale, market stats, seasonal greeting).
- **Message Template:** go to **Message & QR Templates** in the left navigation. Add a QR code pointing to a home-value landing page or your contact page. Run **Rate My Content** - target 8+ before activating.
### 4. Set up the evenFLOW campaign
1. Go to **Automated Campaigns** in the left navigation.
2. Click **Add Automation**.
3. In the **Add Automation** modal:
- **Select What To Send:** choose 6×9 Postcard (or your preferred format).
- **Select An Image Template** and **Select A Message Template** for your current creative.
- **Select A Mailing List:** choose your farm list.
- In the **Sending trigger** dropdown, select **Daily Send Limit (evenFLOW)**.
- Set **Number of Recipients to Send to Daily** (e.g., 20 pieces/day).
- Enable **Rotate at end of list** - this restarts the campaign from the top when the list is exhausted, creating the loop that keeps your farm active indefinitely.
4. Click **Preview** to confirm the mailer looks right.
5. Click **Save**.
### 5. Rotate creative on a schedule
Every 4-6 weeks, create a new Image Template or Message Template for the campaign. Consistent delivery with fresh creative keeps the farm alive. Stale, repetitive mail gets ignored.
## Tracking what worked
- **Global Scan List:** who in your farm is actively checking home values?
- **QR scan spikes** after a market-update card often indicate high homeowner engagement
- Track inbound inquiry source - when a new listing or call comes in, ask "Did you receive a card from us recently?"
## Pitfalls
- **Stopping after 2-3 months.** Farming requires patience. Most farms take 6-12 months to produce consistent referrals.
- **No QR code.** Without it, you can't identify who's interested.
- **Same creative every send.** Rotate messaging to stay relevant.
- **List too large to sustain.** A 2,000-home farm at $1/piece is $2,000 per cycle. Match your farm size to your monthly budget.
## Run this play
1. [Build your list with radius search or CSV upload](/mailing-lists)
2. [Set up a Daily Send Limit (evenFLOW) campaign](/campaigns/evenflow-daily-limit)
3. [Add a QR code to your Message Template](/qr-and-tracking/enabling-qr-codes)
## Related
- [Neighbor Blast - Just Listed / Just Sold](./neighbor-blast-just-listed.md)
- [Monthly Newsletter Campaign](./monthly-newsletter-campaign.md)
- [QR Scan → Call Follow-up](./qr-scan-followup.md)
---
## Your First 100 Mailers
# Your First 100 Mailers
## Who it's for
Anyone sending their first thanks.io campaign who wants a structured approach that actually gets a response - not just a test send.
## The play
Send a single, clear postcard to 100 people you already have some relationship with - past customers, prospects who went cold, neighbors of a recent sale, or leads from a list. One strong headline, one sentence of context, one CTA, and a QR code to track who responds.
100 pieces is enough to get real signal without a large upfront cost.
## Expected signals at 30 days
- **QR scan rate:** 2-6% (2-6 responses from 100 pieces) is typical for a warm-ish list with a relevant offer
- **Cost:** roughly $100-$160 depending on postage class and plan; check current pricing at [thanks.io/pricing](https://www.thanks.io/pricing)
- **If scan rate is below 1%:** the list, offer, or design needs work - not the channel
## Step-by-step
**Send method: Send Mail Wizard** - this is a one-time send. Open it via **Send Mail** in the left navigation.
### 1. Pick your 100 people
- **Past customers** → the most responsive; they already trust you
- **Cold leads who requested info** → second best
- **Neighborhood farm** → use [Neighbor Blast](./neighbor-blast-just-listed.md) if you have a trigger address
- **Purchased list** → usable, but expect lower response than a warm list
Have your list ready as a CSV with these columns: `First Name`, `Last Name`, `Address`, `City`, `State`, `Zip`. You'll upload it inside the wizard in step 5.
### 2. Open the Send Mail Wizard
Click **Send Mail** in the left navigation (or **New Send** on the dashboard). This opens the wizard and walks you through the rest of the steps.
### 3. Choose your mailer type
Select **4×6 Postcard** - it's the lowest cost and fastest way to proof a first campaign. Upgrade to 6×9 if you want more visual impact.
### 4. Select an Image Template and set your Message Template
- **Image Template:** upload your own photo (property, product, team, office) or choose from the gallery.
- **Message Template:** select a saved template from **Message & QR Templates**, or type a new message directly in the wizard. Add `%FIRST_NAME%` to personalize it and enable the QR code. Set the QR destination to a simple landing page or your phone number.
### 5. Add recipients
In the **Recipients** step, click **Upload CSV** and map your columns. Your list goes in here - not before you open the wizard.
### 6. Review the proof and place your order
Check the print-ready proof: confirm your name, address, and message all look correct. Click **Place Order**.
### 7. Watch the Global Scan List
In the first 7-14 days after expected delivery, check your [Global Scan List](/qr-and-tracking/global-scan-list). Anyone who scanned is a warm lead. Follow up within 24 hours.
## Copy starter
> Hi %FIRST_NAME%,
>
> I wanted to reach out personally - [one sentence about your business and why it's relevant to them].
>
> [Your offer or CTA - e.g., "Call me at %YOUR_PHONE% to get a free estimate" or "Scan the QR code to see current listings in your area."]
>
> %YOUR_FULL_NAME%
> %YOUR_COMPANY%
> %YOUR_PHONE%
Replace all `%VARIABLE%` placeholders with your details or use [Replacement Variables](/ai-and-personalization/replacement-variables) to pull them from your list automatically.
## Pitfalls
- **Sending to a cold, unrelated list.** Low relevance = low response. Warm beats cold every time.
- **No QR code.** You'll have no idea if it worked. Add one.
- **Sending once and giving up.** Direct mail builds over repetition. If 100 pieces don't yield a response, a sequence of 3 touches over 6 weeks often does.
## Run this play
1. [Start a Send Mail Wizard send](/sending-mail/card-builder-walkthrough)
2. [Enable QR tracking on your Message Template](/qr-and-tracking/enabling-qr-codes)
3. [Watch scan results in the Global Scan List](/qr-and-tracking/global-scan-list)
## Related
- [Neighbor Blast - Just Listed / Just Sold](./neighbor-blast-just-listed.md)
- [Drip to Past Customers](./drip-past-customers.md)
- [Mail + Text Sequence](./mail-then-text.md)
---
## Golden Letters
# Golden Letters
## Who it's for
Real estate agents who want to generate listing appointments from a short, targeted list of high-value prospects - homeowners in a specific area, FSBO owners, expired listings, or absentee owners you want to represent.
## The play
Send a short, personally-addressed handwritten-style Windowless Letter to 25-75 precisely targeted homeowners. The letter uses a real postage stamp and looks genuinely personal. The message is brief, warm, and specific - not a flyer, not a postcard, not a form letter.
Then follow up with 2-3 more touches over 6-8 weeks via a Days After Added drip.
## Expected signals
- Response rates on Golden Letter sequences commonly run 5-15% for warm lists
- A 50-homeowner sequence at 3 touches costs roughly $150-$300 - a small fraction of a listing commission
- Most responses come in within 7-14 days of delivery
## Step-by-step
**Send method: Automated Campaigns → Days After Added** - add contacts to your list and the sequence fires automatically.
### 1. Build your target list
Keep it tight - 25-100 names is ideal. Sources:
- Expired or withdrawn listings from your MLS
- FSBO owners in your target area
- Absentee owners (purchased list or skip-traced from county records)
- Recent life-event contacts (estate sales, divorces, new job changes)
Upload to a mailing list named "Golden Letters."
### 2. Create your Message Templates
In the left navigation, go to **Message & QR Templates** and create one template per touch. The key: each message must sound personal, not promotional - three sentences max.
**Day 1:**
> Hi %FIRST_NAME%,
>
> I've been working in this neighborhood for [X] years and noticed you haven't listed yet. If you've thought about selling, I'd love to share what similar homes have been going for - no obligation, just a quick conversation.
>
> %YOUR_FULL_NAME%
> %YOUR_PHONE%
Add a QR code pointing to a calendar-booking link or home-value estimate page. Run **Rate My Content** - aim for 8+, especially on Personalization score. Save each template before moving on.
:::tip
Handwritten-style with Realism Mode enabled makes the letter look genuinely personal. This matters - a piece that looks personally written gets read. One that looks printed gets tossed.
:::
### 3. Set up a Days After Added campaign
Golden Letters work best as a sequence:
1. Go to **Automated Campaigns** in the left navigation.
2. Click **Add Automation**.
3. In the **Add Automation** modal:
- **Select What To Send:** choose Windowless Letter.
- **Select An Image Template** and **Select A Message Template** for your Day 1 Golden Letter.
- **Select A Mailing List:** choose your Golden Letters list.
- In the **Sending trigger** dropdown, select **A Number of Days After a Recipient Is Added**.
- Set **Enter Day After Added to List** to **1** (sends the day after they're added).
4. Click **Save and Add Another** to create the Day 21 follow-up: Windowless Letter, Day 21 message template, enter **21** for the day.
5. Repeat for Day 45 (6×9 postcard with a new angle).
### 4. Add contacts and watch the QR Scan List
When you add a contact to your Golden Letters list, the drip fires automatically. Monitor your **Global Scan List** - anyone who scans is actively interested. Call them within 24 hours.
## Copy starter (Day 1)
> Hi %FIRST_NAME%,
>
> I work with homeowners in your area and noticed your home hasn't been listed. I wanted to reach out personally - the market is active right now and I'd love to share what I'm seeing.
>
> I'd love to share a quick estimate - no pressure. Scan the code or give me a call.
>
> %YOUR_FULL_NAME%, %YOUR_COMPANY%
> %YOUR_PHONE%
## Pitfalls
- **Generic message.** The Golden Letter only works if it sounds personal. If it reads like a postcard, it performs like one.
- **Oversized list.** 300+ contacts with a 3-touch sequence is a budget commitment. Start with 50 and scale what works.
- **No follow-up.** The first touch rarely closes. The sequence does.
## Run this play
1. [Upload your target list as a CSV](/mailing-lists/csv-upload-and-format)
2. [Create a Windowless Letter Message Template with AI Fonts and Realism Mode](../05-templates-and-design/message-templates.md)
3. [Set up a Days After Added drip campaign](/campaigns/days-after-added)
4. [Enable QR tracking](/qr-and-tracking/enabling-qr-codes)
## Video Guide
## Related
- [Absentee Owner Outreach](./absentee-owner-outreach.md)
- [QR Scan → Call Follow-up](./qr-scan-followup.md)
- [Letters](/sending-mail/mailer-types/letters)
---
## Highest Converting Real Estate Postcard
Not all postcards perform equally. This guide breaks down what makes a real estate postcard actually convert - the image layout, the message length, the offer, and what to put on the QR code - based on what works across thousands of campaigns.
The short version: a postcard with a Street View photo of a local property, a short personal message (not a corporate-looking flyer), and a QR code that goes to a home value estimate page consistently outperforms generic designs.
## Related
- [Neighbor Blast - Just Listed / Just Sold](./neighbor-blast-just-listed.md)
- [Dynamic Images - Street View](/ai-and-personalization/dynamic-images)
- [QR Codes and Tracking](/qr-and-tracking/enabling-qr-codes)
---
## Strategies & Playbooks
# Strategies & Playbooks
Physical mail works best when it's targeted and timed. Each playbook below is a proven campaign recipe - who it's for, what to send, and what success looks like.
:::tip[Start here if you're not sure what to send]
Pick your industry and goal from the table below. Each row links to a complete playbook with step-by-step instructions and copy starters.
:::
## Find your play
| Industry | Goal | Recommended playbook |
|---|---|---|
| Real estate | Announce a listing to the neighborhood | [Neighbor Blast - Just Listed / Just Sold](./neighbor-blast-just-listed.md) |
| Real estate | Build long-term farm presence | [Farming with evenFLOW](./farming-with-evenflow.md) |
| Real estate | Target absentee owners | [Absentee Owner Outreach](./absentee-owner-outreach.md) |
| Real estate | High-touch prospect outreach | [Golden Letters](./golden-letters.md) |
| Real estate | Provide automated home value reports | [AI CMA Letters](./ai-cma-letters.md) |
| Insurance | Stay top of mind with your book | [Monthly Newsletter Campaign](./monthly-newsletter-campaign.md) |
| Insurance | Reach Medicare-eligible prospects | [T65 Birthday Campaign](./t65-birthday-campaign.md) |
| Home services | Turn completed jobs into new leads | [Neighbor Blast for Home Services](./neighbor-blast-home-services.md) |
| Home services | Market your roofing company with mail | [Postcard & Gift Card Templates for Roofers](./roofer-templates.md) |
| Any | Re-engage past customers | [Drip to Past Customers](./drip-past-customers.md) |
| Any | Follow up after a QR scan | [QR Scan → Call Follow-up](./qr-scan-followup.md) |
| Any | Layer mail over a text campaign | [Mail + Text Sequence](./mail-then-text.md) |
| Any | First 100 mailers | [Your First 100 Mailers](./first-100-mailers.md) |
## What makes a play work
Every successful direct mail play shares four traits:
1. **A specific audience.** The more precisely you can describe who gets this mail, the better the response rate.
2. **One clear ask.** Each piece should have a single CTA - call, scan, go to a URL, reply.
3. **Consistent follow-through.** A single piece rarely wins. The plays that work repeat the message 3-6 times over weeks or months.
4. **A way to track response.** Use a QR code so you know exactly who scanned and when.
## Measuring success
Response rates for direct mail typically range from 1-5% for cold audiences and 5-15% for warm/existing customer lists. QR scan rates on well-targeted campaigns commonly run 2-8%.
These are ranges, not guarantees. Your results depend on list quality, message quality, offer strength, and repetition. Use the QR scan data in your [Global Scan List](/qr-and-tracking/global-scan-list) to build a real picture of what's working.
## Related
- [Sign Up and Send Your First Mailer](/getting-started/sign-up-and-first-send)
- [Campaigns & Automation](/campaigns)
- [QR Codes & Tracking](/qr-and-tracking)
---
## Just Rented Postcard
A "Just Rented" postcard lets property managers and real estate agents announce a successful rental placement. It's a simple way to show landlords in your area that you can fill properties quickly - and to generate inquiries from neighbors who own investment properties nearby.
The setup is the same as a Just Listed or Just Sold postcard: upload your recipients, choose a postcard template, and send. You can include a photo of the property using the Street View image feature and a QR code pointing to a home-value or contact page.
## Related
- [Neighbor Blast - Just Listed / Just Sold](./neighbor-blast-just-listed.md)
- [Absentee Owner Outreach](./absentee-owner-outreach.md)
- [Dynamic Images - Street View](/ai-and-personalization/dynamic-images)
---
## Mail + Text Sequence
# Mail + Text Sequence
## Who it's for
Anyone using a CRM or automation platform (Zapier, HubSpot, HighLevel, GoHighLevel) who wants to layer a text message on top of a direct mail send to amplify response rates.
## The play
Send a physical mailer today. Three days before estimated delivery, send an SMS to the same recipient with a brief message referencing the card they're about to receive: "Hey %FIRST_NAME%, keep an eye out for something in your mailbox from us."
When the card arrives, they already know to look for it. When they open it, there's a QR code. When they scan, you get notified and call them.
## Expected signals
- Mail + text sequences commonly outperform mail-only sends by 20-40% on response rate
- The text dramatically increases the likelihood the physical piece gets opened
- QR scan rates on mail-then-text campaigns typically run 4-10%
## Step-by-step
**Send method: Send Mail Wizard** (for the mailer) + **Integration** (Zapier, HubSpot, or HighLevel for the SMS delay).
### 1. Create your Message Template
In the left navigation, go to **Message & QR Templates** and create a new template. The mailer should feel like the follow-through on your SMS:
> Hi %FIRST_NAME%,
>
> As promised - here's what I mentioned.
>
> Scan the QR code to learn more.
>
> %YOUR_FULL_NAME%, %YOUR_COMPANY%
> %YOUR_PHONE%
Save the template - you'll select it in the wizard in the next step.
### 2. Send your mailer with First Class postage
1. Click **Send Mail** in the left navigation to open the Send Mail Wizard.
2. Choose your mailer type (4×6 Postcard or Notecard).
3. Select your Image Template and the Message Template you just created.
4. In the **Recipients** step, add your contacts (manual entry, existing list, or CSV upload).
5. At the postage step, choose **First Class** - this gives you a predictable 3-5 business day delivery window, which you need to time the SMS correctly. Standard postage varies too much.
6. Review the proof and place your order. Note the send date; add 3-5 days for expected delivery.
### 3. Set up the SMS trigger
In your CRM or automation tool, create a workflow that fires an SMS approximately 3 days after the mail order is placed:
**Using Zapier:**
1. Trigger: New row added to your mailing list (or new thanks.io order placed via webhook).
2. Action: Delay 3 days.
3. Action: Send SMS via Twilio, SimpleTexting, or your CRM's SMS tool.
**Using HubSpot or HighLevel:**
- Add the mail send as a workflow step.
- Add a "Wait 3 days" delay.
- Add an SMS send action.
### 4. Write the SMS
Keep it brief. Reference the card:
> Hi there - keep an eye out for something in your mailbox from us this week. There's a little something inside for you.
Do not make it promotional. The goal is just to prime them to open the mail.
### 5. Track QR scans
Configure scan notifications so you're alerted the moment someone scans. Call within the hour.
## Pitfalls
- **Sending with Standard postage.** Delivery timing is unpredictable with Standard. The SMS may arrive days before or after the mail. Use First Class.
- **SMS that sounds like spam.** A "keep an eye on your mailbox" text that's obviously promotional lowers the effect. Keep it warm and personal.
- **No QR code on the mailer.** If there's no trackable next step, you lose the data.
## Run this play
1. [Send via Send Mail Wizard with First Class postage](/sending-mail/card-builder-walkthrough)
2. [Enable QR tracking on your Message Template](/qr-and-tracking/enabling-qr-codes)
3. [Set up a Zapier workflow to trigger the SMS delay](/integrations/zapier)
4. [Configure QR scan notifications](../14-qr-and-tracking/notifications.md)
## Related
- [QR Scan → Call Follow-up](./qr-scan-followup.md)
- [Your First 100 Mailers](./first-100-mailers.md)
- [Zapier Integration](/integrations/zapier)
---
## Monthly Newsletter Campaign
# Monthly Newsletter Campaign
## Who it's for
Insurance agents, financial advisors, and real estate agents who want to consistently stay in front of their book of business with a genuine, personalized touch - not a generic email blast.
## The play
Every month, send a 1-page branded letter to your entire client list. Design your newsletter in Canva or any PDF tool, upload it to the Send Mail Wizard, and thanks.io prints, addresses, envelopes, and mails it. No AI message or cover letter is added - your PDF is the complete letter.
## Expected signals
- 1-2% call-back rate per send on a warm client book is typical and meaningful
- After 3-6 months, clients start mentioning the letters - the consistency builds genuine presence
- Works well as a renewal-timing anchor (send a newsletter 6 weeks before typical renewal dates)
## Step-by-step
### 1. Set up your client list
Upload your current book of business as a CSV. Required: `First Name`, `Last Name`, `Address`, `City`, `State`, `Zip`. Optional but valuable: `%CITY%` as a custom field for hyper-local copy.
Save as a mailing list (e.g., "Monthly Newsletter").
### 2. Design and send your PDF newsletter
- Design your newsletter in Canva or your preferred tool at 8.5×11
- Export as PDF
- Open the **Send Mail Wizard** and choose **Letter → Windowless** (or Windowed).
- On the next screen ("How Would You Like To Send Your Letter?"), choose **Upload Full PDF** - not "Handwritten Cover Letter". Your uploaded PDF becomes the entire letter with no cover page.
- Upload your PDF, add your client list, and place the order.
- Your PDF is the complete letter - no Image Template or Message Template is added on top of it.
- See [Send a PDF Letter](/sending-mail/mailer-types/send-pdf-letter) for the full walkthrough.
### 3. Update your PDF each month
Each month, design a new newsletter with current content, export it as a PDF, and upload it when placing your next Send Mail Wizard order.
## Pitfalls
- **Generic content.** Insert real local context - a real town event, actual market data, something specific. Generic newsletters become wallpaper.
- **Not updating the PDF monthly.** Sending identical content every month will start getting ignored. Rotate the content.
- **No call to action.** Always end with how to reach you. Phone number, scan, or website.
## Run this play
1. [Upload your client list](/mailing-lists/csv-upload-and-format)
2. [Send as a PDF letter via the Send Mail Wizard](/sending-mail/mailer-types/send-pdf-letter)
## Related
- [T65 Birthday Campaign](./t65-birthday-campaign.md)
- [Drip to Past Customers](./drip-past-customers.md)
- [Send a PDF Letter](/sending-mail/mailer-types/send-pdf-letter)
## Real estate: AI-generated newsletter (no PDF required)
If you're a real estate agent and want to skip designing a PDF every month, you can use thanks.io's AI message generation to write a fresh newsletter each time. Set a campaign to resend monthly, and the AI writes a new letter each time it fires - no PDF needed.
### The prompt
Paste this into the message editor in thanks.io when creating your Message Template. The campaign logic re-runs it monthly so each letter is unique:
```
chatgpt: write me a monthly newsletter less than 300 words that starts with hi %FIRST_NAME% and include 1 fun fact that differs each month and include 1 home owning tip, 1 local event of the month, and 1 market update based on %CITY% using %CURRENT_DAY% + 10 days as reference so it's referencing the month that the letter gets delivered in. Remove subject line. Make sure the current month is used based on %CURRENT_DAY% + 10 days. Sign it %YOUR_FULL_NAME% %YOUR_PHONE%
```
The `%CITY%` and `%CURRENT_DAY%` replacement variables pull in each recipient's city and the current send date automatically, so the content stays locally relevant and timed to when the letter actually arrives.
---
## Neighbor Blast for Home Services
When you finish a job at a house, the neighbors have already seen your truck in the driveway. That's the best moment to introduce yourself - before that visibility fades. Neighbor Blast for home services lets you automatically mail the addresses surrounding a completed job, turning every project into a built-in lead generation opportunity.
This is a custom feature set up by the thanks.io team for your business. To get started, email [support@thanks.io](mailto:support@thanks.io) or reach out via live chat.
---
## Neighbor Blast - Just Listed / Just Sold
# Neighbor Blast - Just Listed / Just Sold
## Who it's for
Real estate agents who want to mail the neighborhood every time they list or sell a property. The goal: generate listing inquiries from neighbors who want to know what their home is worth.
## The play
Every time you add a listing address to a dedicated mailing list, thanks.io automatically finds the neighbors within a set radius and mails them a postcard. The postcard shows a photo of the subject property (via Google Street View), your contact info, and a QR code.
The whole thing runs automatically. You add one address; the campaign does the rest.
## Expected signals
- Typical Neighbor Blast: 50-100 neighbors per address
- QR scan rate: 3-8% on a well-designed card with a relevant offer
- Result: 2-8 warm leads per listing, passively generated
- Cost: roughly $50-$100 per blast depending on neighbor count and plan tier
## Step-by-step
**Send method: Automated Campaigns → Neighbor Blast** - add a listing address to your list and postcards fire automatically to surrounding neighbors.
### 1. Create a dedicated "Blast" mailing list
In **Mailing Lists**, create a list named something like "Just Listed Blasts." This is the list your Neighbor Blast campaign will watch. Every address you add here fires a new blast.
:::tip[Real estate accounts come with preloaded templates]
Real estate accounts are preloaded with **Just Listed** and **Just Sold** dynamic image templates that are already set up with Street View and the right layout. We recommend using those instead of building from scratch - just select them when choosing your Image Template in the campaign setup.
:::
### 2. Create Street View Image Template
1. In the nav bar, go to **Image Templates**.
2. Click **Dynamic Builder**.
3. Set the Background Image to `~STREET_VIEW~`.
4. Add a header and subheader - for example:
- Header: *"Just Listed in Your Neighborhood"*
- Subheader: *"Curious what your home is worth? Scan to find out."*
5. Save the template.
Every postcard now auto-generates with a Street View photo of the listing address. See [Dynamic Images](/ai-and-personalization/dynamic-images) for full setup details.
### 3. Create your Message Template
In the left navigation, go to **Message & QR Templates** and create a new template. Keep it simple:
> Hi %FIRST_NAME%,
>
> Your neighbor at %ABSENTEE_STREET% just listed / just sold. The market is active in your area right now.
>
> Curious what your home is worth? Scan the QR code for a free instant estimate, or call me directly.
>
> %YOUR_FULL_NAME%, %YOUR_COMPANY%
> %YOUR_PHONE%
Enable the QR code and set the destination to your home-valuation landing page or your phone number. Save the template - you'll select it in the campaign setup below.
### 4. Set up the Neighbor Blast campaign
1. Go to **Automated Campaigns** in the left navigation.
2. Click **Add Automation**.
3. In the **Add Automation** modal:
- **Select What To Send:** choose your postcard format.
- **Select An Image Template:** choose your Street View listing template.
- **Select A Message Template:** choose your "Just Listed" message.
- **Select A Mailing List:** choose your "Just Listed Blasts" list.
- In the **Sending trigger** dropdown, select **Neighbor Blast (radius around an address)**.
- Set **Number of Neighbors to Send To** (10-100 is a good starting range).
- Set **Enter Day After Added to List** to **1**.
- Under **Select the Property to Display in Google Street View**, choose **Target property (radius search center)** - this shows the listing address on the postcard, not each neighbor's own house.
4. Click **Save**.
### 5. Add a listing address to fire the campaign
Add your listing address to the "Just Listed Blasts" list. The campaign picks it up within minutes and queues postcards to all neighbors in the radius.
That's it. Every future listing you add to this list fires a new blast automatically.
## Tracking what worked
- Check **All Campaign Neighbor Blasts** - it's your complete record of every neighbor reached across all blasts.
- Check your **Global Scan List** to see which neighbors scanned and when.
## Pitfalls
- **Not choosing Target property (radius search center).** Without it, the postcard shows a photo of each neighbor's own house - which is odd and not what you want for a listing announcement.
- **Radius too large.** 100+ neighbors per blast can get expensive fast. Start tight and expand if the economics work.
- **No QR code.** You lose all tracking data. Always include one.
## Run this play
1. [Enable Street View / Subject Property on your Image Template](/ai-and-personalization/dynamic-images)
2. [Set up Neighbor Blast campaign](/campaigns/neighbor-blast)
3. [Set up QR tracking](/qr-and-tracking/enabling-qr-codes)
## Video Guides
**How to manually send Just Listed / Just Sold cards:**
**How to set up automated Just Listed / Just Sold sending:**
## Related
- [Absentee Owner Outreach](./absentee-owner-outreach.md)
- [Farming with evenFLOW](./farming-with-evenflow.md)
- [QR Scan → Call Follow-up](./qr-scan-followup.md)
---
## QR Scan → Call Follow-up
# QR Scan → Call Follow-up
## Who it's for
Anyone running a QR-enabled campaign who wants to act on scan data while the prospect is still warm - within the first 24 hours after they scan.
## The play
When a recipient scans your QR code, thanks.io can automatically move them to a "Hot Leads" mailing list. You get an instant scan notification (text, email, or webhook). You or your team calls them within the day. The next day, they also receive a follow-up Notecard or postcard from a Days After Added campaign tied to the Hot Leads list.
Two-channel follow-up (phone + physical mail) within 24-48 hours of a QR scan is one of the highest-converting sequences in direct mail.
## Expected signals
- QR scan to call conversion depends on list quality and offer relevance, but warm-list scans that receive a same-day callback close at materially higher rates than cold outreach
- The follow-up mailer arriving 3-5 days after the scan reinforces the call attempt
## Step-by-step
**Send method: Automated Campaigns → Days After Added** - set it up once and it fires automatically when contacts land in your Hot Leads list.
### 1. Set up a "Hot Leads" mailing list
In **Mailing Lists**, create a list called "Hot Leads." This is where scanners will be automatically moved.
### 2. Enable QR tracking on your Message Template
1. Open your Message Template.
2. Enable the QR code and set the destination URL (landing page, calendar link, or phone-number click-to-call).
3. Save.
See [Enabling QR Codes](/qr-and-tracking/enabling-qr-codes) for setup details.
### 3. Configure "Move Recipient on Scan"
1. Go to **Mailing Lists** and open the source mailing list (the list your campaign is sending to).
2. Find the **Whenever a recipient on this list scans a QR Code, add them to the following lists** field.
3. Set the destination list to your "Hot Leads" list.
4. Save.
Now, every time someone scans, they are automatically added to Hot Leads.
### 4. Set up scan notifications
In **Account Settings** (click the gear icon in the top-right, or go to `profile/account`), scroll to the **Notifications** section under Contact Information and toggle on:
- **Email on QR Scan** - instant email to you when a scan occurs
- **Text on QR Scan** - instant SMS to your phone number on file
Click **Save Changes**.
See [QR Scan Notifications](../14-qr-and-tracking/notifications.md).
### 5. Set up a Days After Added follow-up on the Hot Leads list
1. Go to **Automated Campaigns** in the left navigation.
2. Click **Add Automation**.
3. In the **Add Automation** modal:
- **Select What To Send:** choose Notecard or 4×6 Postcard.
- **Select An Image Template** and **Select A Message Template** for your "Following up on our conversation" piece.
- **Select A Mailing List:** choose your "Hot Leads" list.
- In the **Sending trigger** dropdown, select **A Number of Days After a Recipient Is Added**.
- Set **Enter Day After Added to List** to **1** (fires the day after they're added).
4. Click **Save**.
When a scanner lands in Hot Leads, they automatically receive a follow-up piece the next day.
## Sample follow-up message (Day 1 after scan)
> Hi %FIRST_NAME%,
>
> I saw you scanned our QR code - I'd love to connect if you have any questions.
>
> Give me a call or just reply to this card.
>
> %YOUR_FULL_NAME%, %YOUR_COMPANY%
> %YOUR_PHONE%
## Pitfalls
- **Not calling the same day.** The scan is a buying signal. Every hour of delay reduces conversion. Set up SMS notifications so you know the moment someone scans.
- **No follow-up mail.** The phone call alone is great. The phone call + a physical follow-up piece that arrives 3 days later is better.
- **Scan destination is a dead end.** If the QR code goes to a generic homepage with no clear next step, scans don't convert. Use a landing page with one clear ask.
## Run this play
1. [Enable QR codes on your Message Template](/qr-and-tracking/enabling-qr-codes)
2. [Create a Days After Added follow-up campaign](/campaigns/days-after-added)
3. [Monitor the Global Scan List](/qr-and-tracking/global-scan-list)
## Related
- [Your First 100 Mailers](./first-100-mailers.md)
- [Neighbor Blast - Just Listed / Just Sold](./neighbor-blast-just-listed.md)
- [Mail + Text Sequence](./mail-then-text.md)
---
## Postcard & Gift Card Templates for Roofers
Thanks.io includes ready-made postcard and gift card templates built specifically for roofing companies. Whether you're reaching out to new prospects after a storm event or rewarding a customer for sending you a referral, these templates give you a polished starting point that you can customize with your logo, contact details, and message.
The video below walks through the available template options for roofers.
---
## Tip - Start By Mailing People You Already Know
It's easier and more efficient to generate more business from the leads, customers and clients you already have.
It's highly recommended that you **start with a campaign that re-engages the leads or contacts you already have, instead of trying to use direct mail to generate New "FRESH" leads.**
There are a few reasons for this, which we'll quickly bullet point here below.
👉 **Generating fresh leads with mail requires a fair amount of money to test new ideas on large sample sizes. It also requires considerable patience...** it could take months and a number of tests and iterations to figure out what really works on a cold audience who doesn't know you yet. If you don't have $1000's to invest in a cold lead generation campaign, focusing on re-engagement is better.
👉 **The people you've already worked with are MUCH more likely to respond to a mail campaign and re-engage, leave a review, or refer someone to you**.... because, yep, they already know you and trust you on some level. (or if you're using automation for lead follow up, they would have seen your website or lead magnet in recent memory.)
👉 **It's pretty easy, and affordable to "set and forget" campaigns that automatically re-engage your current contacts.** [Thanks.io](http://thanks.io/) can be connected up to your CRM or Shopping cart. Or you can upload a contact list and automate using our campaign features like date based, birthday, holiday, and "staggered send" options. After the initial setup (which we'll help you with), your re-engagement mail will go out on autopilot. Our goal is to make it so you hardly ever even need to login to the platform after the first few days!
👉 **We're called "Thanks" for a reason :)** The initial idea for this company was based around automatically sending a postcard as a follow up "conversion booster" to leads we we're generating online. We've consistently grown our own business by using digital ads to generate fresh opportunities, and our own platform (combined with other retargeting channels) to re-engage and convert the leads we generate into paying customers. We suggest you do the same :)
Examples of some ideas we can help you execute:
- Sending Automated Birthday or Holiday cards to your past client database.
- Sending automated retargeting postcards to your anonymous website visitors.
- Sending automated thank you notes and gift cards to people who send you a referral.
- Dropping something in the mail to help generate more engagement from sales leads and purchases that occur on your website.
### **👉👉 If you would like help implementing any of the above for your business, you can chat with us from the dashboard or [click here to schedule a 1 on 1 concierge session.](http://calendly.com/thanks-io)**
### **👉👉 If you're more of a DIY Type, [Click Here to learn the basics](/getting-started/basics) of sending and automating mail with Thanks.io.**
---
## T65 Medicare Birthday Campaign
# T65 Medicare Birthday Campaign
## Who it's for
Insurance agents who sell Medicare plans and want to reach prospects automatically in the enrollment window - roughly 3-6 months before their 65th birthday.
## The play
Upload your prospect list with birth dates. Set up a **Birthday campaign** - the system fires automatically ahead of each recipient's 65th birthday. Everyone on the list gets a personalized mailer at the right moment without you manually tracking who is turning 65.
## Expected signals
- Well-timed T65 mail during the enrollment window sees higher engagement than general insurance mail
- QR scan rates on targeted T65 lists commonly run 3-8%
- Most conversions happen within 2-4 weeks of the first touch; a 2-3 touch sequence amplifies results
## Step-by-step
### 1. Prepare your prospect list
Required CSV columns:
- `First Name`, `Last Name`, `Address`, `City`, `State`, `Zip`
- `Birthday` - in `MM/DD/YYYY` format (thanks.io uses this to trigger the campaign)
Upload to a mailing list named "T65 Medicare Prospects."
### 2. Create your Message Template
In the left navigation, go to **Message & QR Templates** and create a new template. Keep it empathetic and informative:
> Hi %FIRST_NAME%,
>
> Your Medicare enrollment window is coming up. If you're turning 65 this year, now is the right time to review your options - before the Open Enrollment deadline.
>
> I specialize in Medicare plans in %CITY% and would love to help you find the right coverage at no extra cost to you.
>
> Scan the QR code for a free consultation, or call me directly.
>
> %YOUR_FULL_NAME%, Licensed Insurance Agent
> %YOUR_PHONE%
Run **Rate My Content** - aim for 8+ on personalization and CTA. Save the template before moving on.
**Send method: Automated Campaigns → On Recipient's Birthday** - fires automatically for each prospect ahead of their birthday.
### 3. Set up the Birthday campaign
1. Go to **Automated Campaigns** in the left navigation.
2. Click **Add Automation**.
3. In the **Add Automation** modal:
- **Select What To Send:** choose your mailer format (Notecard or 4×6 Postcard).
- **Select An Image Template** and **Select A Message Template** for your Medicare outreach piece.
- **Select A Mailing List:** choose your "T65 Medicare Prospects" list.
- In the **Sending trigger** dropdown, select **On Recipient's Birthday**.
4. Click **Save**.
:::note[Timing]
The birthday trigger automatically mails each prospect so the piece arrives about 10 days before their birthday. That's within the Medicare Initial Enrollment Period, so the timing is intentional.
**Want to reach prospects earlier** - say, 3-6 months out? The birthday trigger can't do that. Instead, add prospects to a [Days After Added](/campaigns/days-after-added) campaign and set it to fire shortly after you add them to your list.
Either way, remove contacts from the list once they've enrolled - the birthday trigger runs every year.
:::
### 4. Add a follow-up touch
Consider a second touch 30 days later using a **Days After Added** campaign on a follow-up list:
- Touch 1: Birthday campaign mailer (arrives ~10 days before the birthday)
- Touch 2: If they scan the QR code, move them to a Hot Leads list that triggers a Day 1 follow-up Notecard
### 5. Track QR scans
Anyone who scans is actively researching Medicare. Follow up within 24 hours - this is a warm lead.
## Pitfalls
- **Missing birthday data.** The campaign requires a `Birthday` field in your list. Without it, nothing fires. Ensure the field is in `MM/DD/YYYY` format before uploading.
- **Sending to prospects who've already enrolled.** The birthday trigger recurs every year. Remove contacts from the list once they've signed up for a plan.
- **No follow-up.** A single touch in this window often gets missed. A second touch - or a phone call triggered by a QR scan - significantly improves response.
## Run this play
1. [Upload your list with birthday field](/mailing-lists/csv-upload-and-format)
2. [Set up an On Recipient's Birthday campaign](/campaigns/birthday-and-holiday)
3. [Enable QR tracking on your Message Template](/qr-and-tracking/enabling-qr-codes)
4. [Set up a follow-up with Days After Added](/campaigns/days-after-added)
## Related
- [Monthly Newsletter Campaign](./monthly-newsletter-campaign.md)
- [Drip to Past Customers](./drip-past-customers.md)
- [QR Scan → Call Follow-up](./qr-scan-followup.md)
---
## Send Mail Wizard Walkthrough
# Send Mail Wizard Walkthrough
## What it is
The Send Mail Wizard is the primary design and send interface in the thanks.io dashboard. It walks you through choosing your format, selecting designs, composing your message, adding recipients, picking postage, and reviewing the proof before placing the order.
## Step 1 - Open the Send Mail Wizard
Click **New Send** from the dashboard home, or select **Send Mail** from the main navigation.
## Step 2 - Choose your mailer type
Select the physical format you want to send:
- **Postcard** - 4×6, 6×9, or 6×11
- **Letter** - windowed or windowless
- **Notecard**
- **Gift Card**
- **MagnaCard**
## Step 3 - Select an Image Template
At this step you can only select from templates that already exist or upload a static image. Your options are:
- **Gallery** - browse pre-built templates and your saved designs.
- **Upload** - upload your own static artwork as a one-off image.
Dynamic templates built with the thanks.io Studio editor or Canva must be **created as Image Templates beforehand** - they are not created during this step. Once saved as a template they will appear in the Gallery above.
## Step 4 - Select a Message Template
The Message Template controls the handwritten-style text on your mail.
Select an existing Message Template from your saved templates, or set your message and QR code on the fly without selecting a template. If you select an existing template, you can still edit the copy before sending - the changes apply to this send only and do not modify the saved template.
- Switch between **Manual Edit**, **AI Builder**, and **Real Estate CMA** modes while composing.
- Choose a handwriting style and optionally enable **AI Fonts** with **Realism Mode**.
- Configure a QR code URL if needed.
- Use replacement variables like `%FIRST_NAME%` and `%YOUR_COMPANY%` to personalize each piece.
- Use **Rate My Content** to review quality and apply recommendations in one click.
## Step 5 - Add recipients
Choose how to specify who receives this send:
- **Add manually** - enter a single recipient's name and address directly.
- **Upload CSV** - upload a spreadsheet of recipients.
- **Choose from mailing list** - select one or more saved Mailing Lists.
All addresses go through Duplicate Prevention (36-hour window) automatically.
## Step 6 - Review the proof
Before placing the order, check the print-ready proof:
- Front design looks correct
- Message text renders as expected
- Replacement variables resolve correctly (no raw `%FIRST_NAME%` in the preview)
If anything looks wrong, go back and edit before confirming.
## Step 7 - Confirm and place the order
1. Review the order summary: recipient count, mailer type, and total cost.
2. Click **Place Order** to submit.
Your order enters the processing queue. Orders move to print quickly - cancellation is only possible within one hour of placing the order.
## Limits & gotchas
- Cancellation is only available within one hour of placing the order.
## Related
- [Single Send Overview](./single-send-overview.md)
- [Postage Options](./postage-options.md)
- [Plan Comparison](../13-plans-and-billing/plan-comparison.md)
---
## International Delivery
# International Delivery
thanks.io supports international delivery for all five mailer types - postcards (4×6, 6×9, 6×11), letters (windowed and windowless), Notecards, Gift Cards, and MagnaCards. You can send internationally directly from the Send Mail Wizard, without any special setup.
## Adding an international recipient
1. In the Send Mail Wizard, go to the recipients step.
2. Enter the recipient's address. Include street address, city, region/province, postal code, and the **2-letter ISO country code** (e.g., `CA` for Canada, `GB` for the United Kingdom, `AU` for Australia).
3. If uploading a CSV, include a `country` column with the 2-letter ISO code for each international row.
4. Confirm the address looks correct in the recipient preview before placing the order.
## Postage
International sends automatically use the equivalent of First Class postage. Standard postage is not available for international recipients. Per-piece pricing for international delivery is higher than domestic.
## Delivery times
International delivery is longer than domestic and varies by destination country, local postal infrastructure, and customs processing. Do not plan time-sensitive campaigns around specific international delivery dates.
## Tips & best practices
- Always include the 2-letter ISO country code. Omitting it may cause delivery failures.
- Include the full postal code in the destination country's format (e.g., Canadian postal codes use `M5V 2T6` format).
- For countries where the address format differs significantly from the US format, double-check your CSV column mapping.
## Limits & gotchas
- Supported regions vary. If a country cannot be accepted, you will see an error during address validation.
- Address Verification behavior may vary for non-US addresses.
## Related
- [Postage Options](./postage-options.md)
- [Send Mail Wizard Walkthrough](./card-builder-walkthrough.md)
- [Plan Comparison](../13-plans-and-billing/plan-comparison.md)
---
## Gift Cards
# Gift Cards
## What it is
Gift Cards are branded physical gift cards from leading brands, mailed in an envelope with a real postage stamp. The recipient's address is printed on the envelope in a handwriting font. The envelope color cannot be modified. Each card includes a QR code the recipient scans to redeem their gift.
Unlike every other thanks.io mailer type, **Duplicate Prevention cannot be disabled for Gift Cards.** Even if you turn off Duplicate Prevention in your account settings, Gift Cards always observe the 36-hour window.
## When to use it
- Customer appreciation sends to high-value accounts or loyal buyers
- Win-back campaigns for lapsed customers who haven't purchased recently
- E-commerce post-purchase gifting to encourage repeat purchases or referrals
- Sales prospecting - a physical gift card in the mail gets opened and remembered in a way that a discount code in an email does not
## Tips & best practices
- Pair with a short, personal Message Template. A gift card that arrives with a note referencing the recipient by name has significantly higher perceived value.
- Use for win-back campaigns with a clear CTA: "Here's $X toward your next order."
- Use a dedicated mailing list for each Gift Card campaign to keep reporting clean.
## Gift Card Settings & Gating
Gift Card settings are found just below the message compose area in the Message Template editor. You can set:
- **Gift Card Brand** - choose from available brands
- **Gift Card Amount** - set the denomination
### What is gating?
Gating redirects the recipient to complete an action before they can redeem their gift card. When the recipient scans the QR code, they are sent somewhere else first - and only after completing that action are they forwarded to their gift.
You can gate with:
- **YouTube video** - paste a direct link to a video (not a playlist). The recipient is automatically redirected to redeem their gift after watching it to the end.
- **Website** - paste a URL (such as a booking page, form, or landing page). This works correctly only if the third-party site can redirect the user after they complete the desired action. You must configure that redirect using the **Return Link to Redeem Giftcard** URL shown in the gray box in your settings.
### Examples
Common uses for website gating:
- **Calendly appointment** - paste your Calendly booking page link. Note: Calendly requires a Professional plan to enable post-booking redirects.
- **Typeform** - paste your Typeform link so recipients fill out a form before redeeming.
- **SurveyMonkey** - gather feedback before the recipient claims their reward.
- **Custom landing page** - direct recipients to a product demo, case study, or special promotion.
- **Zoom webinar registration** - place your Zoom registration link so recipients sign up before claiming the gift.
- **Google Form** - collect feedback, opt-ins, or lead information before unlocking the reward.
### Important notes
- When a gift card QR code is scanned (or shown after gating), the gift is instantly redeemed - not at the register, but at the moment of scanning or when the gift is shown on the gating redirect page.
- Once a QR code is printed it cannot be changed. You can still control the gating destination, as long as the URL itself does not change.
- You are notified when a gift card is redeemed.
- Starbucks gifts cannot be merged into existing Starbucks accounts. The recipient can still redeem easily at the register.
- Fraud protections are in place: there is a 30-day limit on gifts to a given address, and gift QR codes are not visible in your dashboard (only placeholders are shown).
## Limits & gotchas
- Gift Cards are the **only** mailer type where Duplicate Prevention cannot be disabled, regardless of your account setting.
- Available brands and denominations vary - check the Send Mail Wizard for current options.
- Per-piece pricing is in addition to the gift card denomination value. See [thanks.io/pricing](https://www.thanks.io/pricing).
- Gift Cards use a real stamp (First Class equivalent) for delivery.
- Including additional inserts (such as business cards or other physical items) inside the envelope is not supported at this time.
## Related
- [Notecards](./notecards.md)
- [Send Mail Wizard Walkthrough](../card-builder-walkthrough.md)
- [Choosing a Mailer Type](../../01-getting-started/choosing-a-mailer-type.md)
---
## Letters
# Letters
## What it is
Letters are 8.5×11-inch mailers sent in envelopes. Two formats are available:
- **Windowed letter** - the recipient's address shows through a transparent window cut into the envelope.
- **Windowless letter** - no address window; the address is printed on the envelope directly.
Both formats support two send modes:
- **Cover page mode** - a designed cover page using an Image Template and a Message Template (handwritten-style font). You can optionally attach additional pages as a PDF appended after the cover. Additional pages can be printed front/back.
- **PDF-only mode** - the entire mailer is a PDF you upload. No Image Template or Message Template is used; your PDF is the complete letter. All pages can be printed front/back.
Both formats support Standard and First Class postage and replacement variable personalization.
## When to use it
- Formal communications where a traditional letter format builds credibility (B2B, legal notices, nonprofit appeals)
- Long-form content that needs more space than a postcard - proposals, newsletters, multi-page donor letters
- Situations where the envelope presentation matters: windowed letters look like official mail and get opened
- Nonprofit fundraising appeals and donor acknowledgments
## Windowed letters
For windowed letters, the address block on your printed letter must fall within the window zone. The editor shows the window zone as an overlay on the design canvas.
- Keep all address content inside the window zone boundary.
- Do not place any other design elements inside the window zone - they will be visible through the envelope.
- Use a white or light background behind the address area.
In cover page mode, the window zone constraint applies to the cover page. In PDF-only mode, your PDF is the entire letter - ensure the address block on page 1 of your PDF falls within the window zone.
## Windowless letters
Windowless letters have no window constraint - full design freedom across the entire letter. The address is handled separately by the printing process. Windowless letters are mailed with a real postage stamp, and the recipient's address is printed on the envelope in a handwriting font. The envelope color cannot be modified.
Use the windowless format when:
- Your design spans the full page without an address zone.
- You're sending a newsletter or multi-page document as a PDF.
## Send modes
Both windowed and windowless letters support the same two send modes.
### Cover page mode
Your first page is a designed cover using an Image Template and a Message Template (handwritten-style font). You can optionally attach additional pages as a PDF appended after the cover. Additional pages can be printed front/back.
### PDF-only mode
Your entire mailer is a PDF you upload. There is no cover Image Template or Message Template - your PDF is the complete letter. All pages can be printed front/back. This is the right mode for newsletters, CMA reports, multi-page proposals, and any document that already exists as a formatted PDF file.
See [Send a PDF Letter](./send-pdf-letter.md) for a step-by-step walkthrough of the PDF-only workflow.
### Multi-page pricing
The first physical page is included in the base per-piece price. Each additional physical page adds **$0.20 per piece**. A physical page is one sheet of paper - a page printed front/back counts as one physical page, not two.
Example: a 4-page PDF where each page is a separate side (2 sheets, printed front/back) = base price + $0.20 × 1 additional physical page.
## Tips & best practices
- Use a clean, professional letterhead for windowed letters - the window creates an impression of official correspondence.
- For nonprofit appeals, a personalized opening line with `%FIRST_NAME%` and a handwritten-style signature can meaningfully increase response rates.
- For PDF newsletters, design at 8.5×11 with 0.5-inch margins to avoid content being trimmed.
## Limits & gotchas
- Both send modes (cover page and PDF-only) are available for windowed and windowless letters.
- Additional pages cost $0.20 per additional physical page. A sheet printed front/back is one physical page.
- Including additional inserts (such as business cards or other physical items) inside the envelope is not supported at this time.
## Related
- [Send a PDF Letter](./send-pdf-letter.md)
- [Postage Options](../postage-options.md)
- [Choosing a Mailer Type](../../01-getting-started/choosing-a-mailer-type.md)
---
## MagnaCards
# MagnaCards
## What it is
A MagnaCard is a 6×9-inch postcard with an integrated detachable magnet section. It mails like a standard postcard but - when it arrives - the recipient can remove the magnet along a perforated cut line and place it on any magnetic surface (refrigerator, filing cabinet, locker, etc.). Instead of being recycled after a glance, your message stays visible for months.
## How it works
1. **Production** - The postcard prints as a standard 6×9 card with a magnet layer integrated into a designated cut-out section.
2. **Delivery** - Mailed via USPS just like any other postcard. The magnet section is marked and ready to be removed.
3. **Recipient interaction** - The recipient flips the card over, sees the marked section, and peels the magnet away along the cut line. It then sticks to any metal surface.
## When to use it
- Real estate agents farming a neighborhood: your contact info stays visible for the entire listing season
- Local service businesses (plumbers, HVAC, pest control): stay top-of-mind between service calls
- Restaurants and food delivery: a menu or QR code on the fridge is a powerful reorder prompt
- Any campaign where you want the recipient to *keep* your mail rather than discard it
## Design tips
- **Include clear instructions on the back.** Add a short line like "Detach this magnet and stick it on your fridge or workspace!" so recipients know the card has a removable piece.
- **Put your most important content on the magnet area.** Contact details, a QR code, or a key call to action work well because the recipient will see them every day after detaching the magnet.
- Include your phone number, website, and key service description in the front design - this is a reference card that will be viewed repeatedly.
- Use high-contrast colors and clean typography. The piece will be viewed at refrigerator distance, often quickly.
- Avoid design that looks purely promotional. A MagnaCard that looks like a useful reference (e.g., a contractor's emergency contact card) stays up longer than one that looks like an ad.
## Design examples
Example of a Magna Card front (the side that includes the magnet section):

## Designing your Magna Card in Canva
We provide a Canva template with clearly marked safe zones and cut lines for both the front and the back of the card.
- [Open the Canva Template](https://dashboard.thanks.io/canva-templates/magnacard)
- [PNG File Template](https://docs.thanks.io/creatives/templates/magnacards#image-templates)
### Steps
1. Open the Canva template using the link above.
2. Design within the safe zones - keep all important content inside the indicated boundaries.
3. Use the cut line guides to position the magnet section correctly on the front.
4. Customize with your branding, messaging, QR codes, and imagery.
### Remove the guides before downloading
The safe zone and cut line guides are for reference only. They must not appear in the final file.
Before downloading:
- Delete or hide all guide layers (safe zones, cut lines, and instructional text).
- Confirm that only your finished artwork is visible.
- Download using the export settings shown in the template.
:::tip
If guide elements are locked in the template, unlock them before deleting or hiding them.
:::
Leaving guide lines in your final file may cause them to print on the card. Removing them ensures a clean result.
## Uploading your Magna Card to thanks.io
1. Log in to your thanks.io account.
2. Go to **Image Templates** in the main menu.
3. Scroll to the **Magna Cards** section.
4. Click **Upload Magna Card**.
5. Enter a name for your design.
6. Select the file you downloaded from Canva and upload it.
After the upload, a preview of your Magna Card will appear. Review it to confirm:
- All important content is inside the safety zone.
- The magnet section is positioned correctly.
- No guide lines or instructional text are visible.
If adjustments are needed, return to Canva, make edits, and re-upload the updated file.
## Video walkthrough
## Tips & best practices
- For real estate farming, combine MagnaCards with the **Neighbor Blast** campaign to send to addresses within a radius of a Just Listed / Just Sold property.
- Use **evenFLOW** to pace large MagnaCard campaigns to a daily limit.
- Pair MagnaCards with a follow-up postcard campaign. The MagnaCard establishes your presence; the postcard prompts action.
- Use the magnet to reinforce follow-up - pair it with a special offer or reorder incentive to drive repeat action.
## Frequently asked questions
**Can the magnet damage mail processing?**
No. The magnet is designed to be compatible with USPS sorting and delivery processes.
**What surfaces will the magnet stick to?**
Any metal surface with magnetic attraction - refrigerators, lockers, filing cabinets, and similar surfaces.
## Related
- [Postcards](./postcards.md)
- [Neighbor Blast Campaign](../../09-campaigns/neighbor-blast.md)
- [Postage Options](../postage-options.md)
---
## Notecards
# Notecards
## What it is
A Notecard is a 5.5x8.5-inch folded greeting card mailed with a real postage stamp. It is thanks.io's most personal-looking format. The front displays your design; the inside carries your handwritten-style message rendered by thanks.io's proprietary digital handwriting engine.
Unlike postcards and letters, Notecards use a real postage stamp rather than a metered imprint, and the recipient's address is printed on the envelope in a handwriting font - both details that make the piece feel like personal mail, not a mass marketing piece. The envelope color cannot be modified.
## Format and orientation
Notecards are landscape-oriented when folded: the front panel and inside message panel each measure approximately 5.5 × 4.25 inches. There is no portrait orientation option.
The front carries your Image Template design. The inside carries your Message Template text.
## Centering your message
By default, the handwritten-style text starts at the top left of the message panel. To visually center shorter messages, add a few blank lines before your text in the Message Template editor to shift it down on the card.
## When to use it
- Post-meeting or post-purchase thank-you notes to individual clients
- VIP customer appreciation touches where the higher per-piece investment is justified
- High-value relationship moments: anniversaries, milestones, referral acknowledgments
- Real estate agents following up with buyers, sellers, or past clients
Notecards are not typically used for high-volume campaigns because the per-piece cost is higher than postcards. They are most effective for curated, targeted sends where the premium feel translates to a stronger relationship.
## Tips & best practices
- Keep the message short and personal. Two to four handwritten-style sentences typically outperform a wall of text.
- Use a warm, conversational tone - recipients expect this format to feel personal.
- Add a QR code linking to a personalized landing page or calendar booking link.
- `%FIRST_NAME%` at minimum. A Notecard that opens with the recipient's name performs significantly better than one that begins with "Hello."
- Use First Class postage - delivery timing is more predictable, which matters for relationship-timed sends.
## Limits & gotchas
- Notecards are higher cost per piece than postcards. See [thanks.io/pricing](https://www.thanks.io/pricing).
- Including additional inserts (such as business cards or other physical items) inside a Notecard is not supported at this time.
## Related
- [Golden Letters Playbook](../../02-playbooks/golden-letters.md)
- [Gift Cards](./gift-cards.md)
- [Postage Options](../postage-options.md)
---
## Postcards
# Postcards
## What it is
Postcards are thanks.io's most popular mailer type. They are full-bleed, printed cards available in three sizes: **4×6**, **6×9**, and **6×11** inches. Every postcard supports a custom front design, a handwritten-style message on the back, and optional QR codes.
## When to use it
- High-volume outreach campaigns where cost per piece matters
- Neighborhood farming and real estate geographic targeting
- Promotional offers, limited-time discounts, and event announcements
- Post-purchase thank-yous and customer retention
- Drip campaigns and evergreen marketing sequences
Postcards are the best starting point for most users - widest template selection, lowest per-piece cost, and they support every automation feature on the platform.
## Choosing your size
**4×6** - the most cost-efficient size. Best for high-volume sends where per-piece cost is the primary factor.
**6×9** - significantly more visual presence in the mailbox than 4×6. Popular for real estate agents, local service businesses, and campaigns where the design needs room to make an impact.
**6×11** - the largest postcard format. Maximum print area for bold imagery, luxury branding, and event announcements.
## Design specs
| Size | Full-bleed canvas | Safe zone |
|---|---|---|
| 4×6 | 1875 × 1275 px | Keep content 10% from each edge (~188 px left/right, ~128 px top/bottom) |
| 6×9 | 1875 × 1275 px | Keep content 10% from each edge |
| 6×11 | 3337 × 1777 px | Keep content 10% from each edge (~334 px left/right, ~178 px top/bottom) |
The editor shows two overlays:
- **Cut line** (red) - the outer edge of the printed card. Artwork should extend past this line (bleed) so there are no white borders after trimming.
- **Safety line** (blue) - the inner safe zone. Keep all important content - text, logos, contact info - inside this line.
See [Print Specs & Safe Zones](../../05-templates-and-design/print-specs-and-safe-zones.md) for the full reference across all mailer types.
## Design tips
- **Full bleed:** extend artwork to the edge of the canvas (plus bleed margin) so there are no white borders after trimming.
- **Safe zone:** keep important content (text, logos, contact info) inside the safe zone shown in the editor.
- **Resolution:** use high-resolution images. The editor warns you if your image is too low-resolution.
- **QR code placement:** the editor reserves space for the address block on the back. Don't place the QR code in the address area.
- **Top-right message area:** if you want content above the address block on the back side, add it through the custom message background image. The handwriting engine does not place text there.
## Personalization
Use replacement variables in your Message Template:
- `%FIRST_NAME%` - recipient's first name
- `%YOUR_COMPANY%` - your company name
- `%CUSTOM1%` through `%CUSTOM10%` - custom fields from your mailing list
Enable **AI Fonts** and optionally **Realism Mode** to make the handwritten-style rendering look more natural.
## Tips & best practices
- Run Rate My Content before sending. A clear CTA and a personal opening line consistently drive better response.
- Use 6×9 or 6×11 for campaigns where you want to make a strong first impression.
- Add a QR code so you can track who responded.
- For time-sensitive campaigns, select First Class postage to reduce delivery variability.
## Limits & gotchas
- Design spec requirements (bleed, safe zone) vary slightly by size - check the editor overlays.
## Related
- [Choosing a Mailer Type](../../01-getting-started/choosing-a-mailer-type.md)
- [Send Mail Wizard Walkthrough](../card-builder-walkthrough.md)
- [Postage Options](../postage-options.md)
---
## Send a PDF Letter
# Send a PDF Letter
## What it is
PDF letter mode lets you upload any PDF document as a windowed or windowless 8.5×11 letter. thanks.io prints it, addresses it, envelopes it, and mails it. You never touch the envelope.
This is the right tool for: newsletters, CMA reports, insurance policy summaries, multi-page proposals, and any document that lives naturally as a full-page formatted file.
## When to use it
- Monthly newsletter to your book of business
- Automated CMA (Comparative Market Analysis) letter to a prospect
- Insurance policy renewal notice or summary
- Multi-page proposal or offer package
- Any content that already exists as a PDF and needs to be mailed
## Cost
The first physical page is included in the base per-piece price. Each additional physical page adds approximately $0.20 per piece. A physical page is one sheet of paper - a page printed front/back counts as one physical page, not two. For current pricing, see [thanks.io/pricing](https://www.thanks.io/pricing).
## Tips & best practices
- Add your phone number, email, and website to every page of the PDF - not just the first page. Recipients sometimes flip to the last page first.
- For newsletters, include one clear call-to-action on page 1. "Scan here to schedule a call" or include your direct phone number with a QR code.
- Use personalized salutations in the PDF if your tool supports it (e.g., Canva doesn't support variable fields; use ChatGPT to pre-generate personalized copies, or use thanks.io's message template field alongside the PDF).
- Test with a single piece to yourself before sending a full list.
## Limits & gotchas
- PDF-only mode is available for both windowed and windowless letters. For windowed letters in PDF-only mode, ensure the address block on page 1 of your PDF falls within the window zone.
- Each additional physical page costs $0.20 per piece. A sheet printed front/back is one physical page, not two. A 4-page PDF (2 sheets, front/back) = base price + $0.20 × 1 additional physical page.
- Duplicate Prevention applies (36-hour window), same as all other mailer types.
## Related
- [Letters Overview](./letters.md)
- [Monthly Newsletter Campaign](../../02-playbooks/monthly-newsletter-campaign.md)
- [AI CMA Letters Playbook](../../02-playbooks/index.md)
- [Postage Options](../postage-options.md)
---
## Postage Options
# Postage Options
Every mail piece you send goes out with either **Standard postage** or **First Class postage**. Your choice affects delivery speed, tracking availability, and per-piece cost.
## Postage comparison
| Postage class | Typical delivery | USPS tracking | Return-to-sender | Per-piece cost |
|---|---|---|---|---|
| Standard | Standard USPS + ~5 or more additional days | No | No | Lower |
| First Class | Standard USPS First Class delivery | Yes | Yes | Slightly higher |
| International | Varies by country | Varies | Varies | Higher than domestic |
:::note
For exact per-piece cost differences, see [thanks.io/pricing](https://www.thanks.io/pricing). First Class adds $0.05 for 4×6 and 6×9 postcards, and $0.21 for 6×11 postcards, letters, Notecards, and MagnaCards.
:::
## Standard postage
Standard postage uses the USPS marketing mail stream and adds approximately 5+ days to delivery compared to First Class. There is no USPS tracking and no return-to-sender service.
**Choose Standard when:**
- Cost per piece is the priority and you're sending high volumes.
- Precise delivery timing doesn't matter (evergreen promotions, drip campaigns).
- You don't need to confirm whether individual pieces were delivered.
## First Class postage
First Class uses the USPS First Class mail stream. It is faster, includes USPS delivery tracking, and returns undeliverable pieces to your return address.
**Choose First Class when:**
- Timing matters - event invitations, time-sensitive offers, birthday mail.
- You want to confirm delivery status per piece.
- List hygiene matters - you want undeliverable pieces returned so you can clean your records.
:::tip
Running a birthday or holiday campaign? Use First Class. Delivery timing is more predictable and you avoid the risk of a birthday card arriving a week late.
:::
## International delivery
All mailer types support international delivery. International sends automatically use the equivalent of First Class postage - Standard is not available for international recipients. See [International Delivery](./international-delivery.md) for country-specific details.
## Limits & gotchas
- Postage class is set account-wide in **Account Settings** and applies to all orders and campaigns.
- Return-to-sender on First Class notifies you of undeliverable pieces - it does not guarantee a piece is delivered.
## Related
- [Send Mail Wizard Walkthrough](./card-builder-walkthrough.md)
- [International Delivery](./international-delivery.md)
- [Plan Comparison](../13-plans-and-billing/plan-comparison.md)
---
## Postal Protect®
Postal Protect® is a proprietary coating applied by our print partner that is designed to safeguard your mail pieces from damage during post office processing. Specifically, it helps prevent smudges that can appear on finished cards after they pass through USPS sorting facilities.
While smudging during mail handling is outside of our direct control, our print partner has invested significant effort into resolving the issue. Their work has included:
- Researching different paper types, printing equipment, ink, and coating options.
- Collaborating directly with USPS sorting facility managers to identify and reduce the root cause.
The result is the Postal Protect® coating, which is automatically applied to your mail pieces.
## Example
The image below shows the coating in action - comparing a treated piece to an untreated one after USPS handling:

## Related
- [Postage Options](./postage-options.md)
- [Send Mail Wizard Walkthrough](./card-builder-walkthrough.md)
---
## Single Send Overview
# Single Send Overview
## What it is
A **single send** is a one-time mail order placed through the Send Mail Wizard or the API. You choose a design, write a message, add recipients, and submit. Once the order processes, printing and mailing happen automatically.
Single sends are distinct from campaigns. A campaign runs automatically over time based on a trigger. A single send is a deliberate, one-off action you take at a specific moment.
## When to use it
- You want to send a batch of mail right now with full control over every piece.
- You're following up with a specific group of contacts after an event or announcement.
- You want to send to a one-time list you won't reuse - no need to set up a campaign.
- You're testing a new design or message before committing to an automated flow.
Use a campaign instead if you want mail to go out automatically as contacts are added, on recurring dates, or at a paced daily volume.
## How to do it
### Option 1 - Send Mail Wizard
1. Click **New Send** from the dashboard or navigate to **Send Mail**.
2. Select your mailer type, Image Template, and Message Template.
3. Add recipients using one of these methods:
- **Manually** - enter individual addresses one at a time.
- **Existing mailing list** - pick a saved list from your account.
- **CSV upload (bulk)** - click **Upload CSV**, map your columns to the required fields (name, address, city, state, postal code), and add optional columns for replacement variables like `%FIRST_NAME%` or `%CUSTOM1%`. Preview the parsed recipients and confirm there are no errors before continuing.
4. Click **Place Order**.
See the [Send Mail Wizard Walkthrough](./card-builder-walkthrough.md) for a detailed guide.
### Option 2 - API
Developers can trigger single sends via the REST API. API access See [API Overview](../08-api/overview.md).
## Tips & best practices
- Preview the proof before confirming every order. Orders enter the print queue quickly and can only be cancelled within one hour of placing the order.
- Use replacement variables (`%FIRST_NAME%`, `%YOUR_COMPANY%`) to personalize each piece even in a bulk batch.
- Run Rate My Content on new Message Templates before a large send.
- If you're sending the same design repeatedly, save it as an Image Template and Message Template.
## Re-sending a past order
If you want to send a new order based on a previous one, use **Re-Submit** from the Order Details page.
1. Find the order on the dashboard and click **Details**.
2. Open the **Re-Submit** dropdown and choose one of these options:
- **Keep Same Addresses** - Starts a new order with all original recipients and opens the **Review** step.
- **Only Failed Addresses** - Starts a new order with only failed recipients and opens the **Review** step. This appears only when the order has failures.
- **Choose New Addresses** - Starts a new order with the same design and message but no recipients, and opens the **Select Recipients** step.
3. Review the order and place it when ready.
### Preview and send now (from a mailing list)
Contacts in a mailing list also have a **Preview and Send Now** option. This lets you trigger a one-off send to an individual contact outside of the campaign schedule. The wizard opens with their data pre-loaded.
## Does the wizard save my progress?
The Send Mail Wizard does not save in-progress orders. If you close the browser or navigate away before clicking **Place Order**, your work is lost. Complete the wizard in one session.
If you are not ready to send, you can save your designs and message for reuse by creating an [Image Template](../05-templates-and-design/image-templates.md) and a [Message Template](../05-templates-and-design/message-templates.md) before starting the wizard.
## Delivery times
Once you place an order, mail enters the print queue and typically ships within 1-3 business days.
| Postage | Typical delivery after order |
|---|---|
| Standard | 7-10 business days |
| First Class | 3-5 business days |
Delivery timelines depend on USPS routing and destination. For time-sensitive sends, use First Class. See [Postage Options](./postage-options.md) for details.
## Limits & gotchas
- Duplicate Prevention applies a 36-hour window. If the same recipient appears in a new order within 36 hours, the duplicate piece is skipped. Note: Duplicate Prevention cannot be disabled for Gift Cards.
- CSV uploads must include a valid physical address for each recipient.
- The wizard does not save progress - complete it in one sitting or save your templates first.
## Related
- [Send Mail Wizard Walkthrough](./card-builder-walkthrough.md)
- [Postage Options](./postage-options.md)
- [Plan Comparison](../13-plans-and-billing/plan-comparison.md)
---
## Add-to-List Webhooks
Every thanks.io mailing list has a built-in webhook URL. When your CRM fires that URL, the contact is automatically added to the list - no Zapier or third-party tools needed.
CRMs with pre-formatted webhook support include **HighLevel**, **kvCORE/Bold Trail**, **Hubspot**, **Salesforce**, and **Sure Send**.
## Finding Your Webhook URL
1. In your thanks.io dashboard, go to **Mailing Lists** and open the list you want to add contacts to.
2. In the left column, scroll down to the **Recipient Add Webhook** section.

3. Click the copy button for your CRM:
- **Copy Generic Code** - for any CRM not listed below
- **Copy HighLevel Code** - pre-formatted with HighLevel merge fields
- **Copy kvCORE/Bold Trail Code** - pre-formatted for kvCORE and Bold Trail
- **Copy Sure Send Code** - pre-formatted for Sure Send
4. Paste the URL into your CRM's webhook settings.
> Each mailing list has its own unique webhook URL. Copy it from the specific list you want contacts added to.
## How the Webhook URL Works
The URL uses simple key-value pairs after the `?` to tell thanks.io where to put each piece of contact data:
```text
key=value
```
Multiple fields are joined with `&`:
```text
name=value&company=value&address=value
```
Your CRM replaces the bracketed placeholders (such as `[NAME]`) with the actual contact data when it fires the webhook. Different CRMs use different placeholder formats - for example `~VALUE~` or `{VALUE}`. Refer to your CRM's documentation for the exact syntax it expects.
All the keys in the grey Webhook URL box are already correct for thanks.io - just copy them as-is.
### Available keys
| Key | Description |
| --- | --- |
| `name` | Full name |
| `firstname` | First name |
| `lastname` | Last name |
| `company` | Company name |
| `address` | Street address |
| `address2` | Address line 2 |
| `city` | City |
| `state` | State / Province |
| `postal_code` | ZIP / Postal code |
| `country` | Country |
| `email` | Email address |
| `phone` | Phone number |
| `dob` | Date of birth |
| `custom1` - `custom10` | Custom fields |
:::tip[Avoid duplicate fields]
`name`, `firstname`, and `lastname` all represent the same data. Use one set or the other - not both. Sending duplicate information can cause issues.
:::
## CRM-specific guides
- [HighLevel](/integrations/highlevel) - step-by-step setup including workflow configuration
- [Bold Trail / kvCORE](/integrations/bold-trail-kvcore) - setup details for kvCORE and Bold Trail
---
## Address Collection Landing Pages
# Address Collection Landing Pages
An address collection landing page is a simple hosted form that lets people enter their own mailing address. Anyone who submits the form is automatically added to the mailing list the page is attached to.
Common uses include open house sign-in sheets, newsletter sign-ups, event registrations, and any other situation where you want to invite people to opt in to receive mail.
## How to create a landing page
1. Go to **Mailing Lists** and open the list you want to collect addresses into.
2. Scroll down to the **Address Collection Landing Page** card on the left side of the list page.
3. Fill in the form fields:
- **Page Title** - the title of the web page shown in the browser tab.
- **Header** - the primary call to action displayed on the form.
- **Subheader** - secondary text shown below the header.
- **Background Image URL** - paste a URL (starting with `http://`) to use a custom background image, or click **Upload** to upload one directly.
- **Redirect URL** - optional. After someone submits the form, redirect them to this URL.
4. Toggle on any optional fields to include them on the form:
- **Ask For Birthday**
- **Ask For Phone Number**
- **Ask For E-mail**
- **Text on Submissions** - receive a text notification when someone submits the form.
5. Click **Publish**.
6. Copy the link that appears and share it wherever you like - on your website, in an email, or in a print piece.
## Tips & best practices
- Give the page a clear, friendly header that tells visitors what they are signing up for.
- Use the Redirect URL to send people to a thank-you page after they submit.
- Enable **Ask For Birthday** if you plan to run a birthday campaign against this list.
- The page URL can be embedded in an iframe on your own website.
- You can use the landing page as the destination for a QR code on a mail piece. After publishing, copy the URL and paste it manually as the QR code target URL when building your message template. Anyone who scans the code will be taken to the form and added to the list on submission.
## Related
- [Mailing Lists Overview](./overview.md)
- [CSV Upload & Format](./csv-upload-and-format.md)
---
## CSV Upload & Format
# CSV Upload & Format
## What it is
CSV upload lets you populate a mailing list from a spreadsheet file. You map the columns in your file to the fields thanks.io expects, review a preview, and confirm the import.
## How to upload a CSV
1. Go to **Mailing Lists** and open the list you want to populate (or create a new one).
2. Click **Upload CSV**.
3. Select your `.csv` file and click **Upload**.
4. The column mapping screen appears - match each column in your file to the corresponding thanks.io field. If a mapping looks wrong, use the dropdown to select the correct field. If required fields are not mapped, a warning badge appears - fix the mapping before proceeding. Click **Save & Preview**.
5. Review the preview rows to confirm the data looks correct.
6. Click **Confirm**.
After import, thanks.io validates addresses. Invalid addresses are flagged in the **Invalid Address filter**.
## Column reference
The column mapping step lets you match any CSV header to the correct field - your column names don't need to match the field names below.
### Required field
The mapper blocks submission until the **Address** field is mapped.
| Field | Description |
|---|---|
| `address` | Street address, or the full address (street, city, state, zip) in a single column |
If your address column contains only the street (not a full address), also map these:
| Field | Description |
|---|---|
| `city` | City |
| `province` | State or province abbreviation (e.g., `CA`, `NY`) |
| `postal_code` | ZIP or postal code |
### Name fields
| Field | Description |
|---|---|
| `name` | Full name in a single column |
| `firstname` | First name |
| `lastname` | Last name |
### Optional fields
| Field | Description |
|---|---|
| `address2` | Apartment, suite, unit number |
| `company` | Company or organization name (also used for spouse name) |
| `country` | Country |
| `email` | Email address |
| `phone` | Phone number |
| `dob` | Date of birth - required for Birthday campaigns. Format: `MM/DD` or `MM/DD/YYYY` |
| `anniversary` | Anniversary date (e.g., house anniversary) |
| `custom1` - `custom10` | Custom fields; accessible via `%CUSTOM1%`-`%CUSTOM10%` in Message Templates and `~CUSTOM1~`-`~CUSTOM10~` in Image Templates |
### Absentee (Subject) fields
Use these when your list targets absentee property owners - the mail goes to the owner's mailing address but references a separate property address.
| Field | Description |
|---|---|
| `absentee_address` | Absentee property street address (or full address) |
| `absentee_city` | Absentee property city |
| `absentee_state` | Absentee property state / province |
| `absentee_postal_code` | Absentee property ZIP / postal code |
**Note:** Absentee fields cannot be combined with Custom 1 or Custom 2.
## Reverse-append email and phone (optional)
At the bottom of the upload dialog, you will see a **Reverse append email and phone number** toggle.
- **Yes (on):** After the upload, thanks.io checks each imported address against an external data service to find a matching email address and phone number. The results are added to the recipient's record automatically. This costs **$0.20 per successful lookup** (some records require two lookups at $0.40). You will be prompted to confirm before the charge runs.
- **No (off):** No lookup is performed. The email and phone fields remain blank unless you included them in your CSV columns.
## Blank name fields
If the `firstname` or `lastname` columns are blank in your CSV and you do not enable reverse-append, the recipient's name is left blank. When that recipient receives a mailer, any message variables that reference their name - such as `%FIRST_NAME%` - will render as empty text.
To avoid blank personalization:
- Fill in name data in your CSV before uploading, or
- Use a fallback phrase directly in your message template, such as "Hello neighbor" instead of "Hello %FIRST_NAME%", for sends where names may be missing.
## Tips & best practices
- Check sample rows carefully - a misaligned column (e.g., city and state swapped) will import silently and produce bad mail pieces.
- If the Address field is not mapped, the **Save & Preview** button is blocked. Map a column to Address to proceed.
- After confirming the import, revisit the **Invalid Address filter** within a few minutes.
- Include `email` and `phone` when available - they are used for QR Append on Scan lookups.
- Use `custom1`-`custom4` to carry CRM data (e.g., lead score, agent name) that you can reference in templates.
- Download a template to start from a correctly formatted file:
- [CSV Template](https://d2md0c8rpvzmz5.cloudfront.net/assets/recipient_upload_example.csv)
- [CSV Template (with Absentee)](https://d2md0c8rpvzmz5.cloudfront.net/assets/recipient_w_absentee_upload_example.csv)
## Limits & gotchas
- Only `.csv` files are supported. Excel `.xlsx` must be exported to CSV first.
- The preview shows a sample of rows, not the full file.
- Invalid addresses don't block the import - they are flagged for review in the **Invalid Address filter** afterward.
- The `dob` field is required for Birthday campaigns.
## Related
- [Replacement Variables](../07-ai-and-personalization/replacement-variables.md)
---
## Duplicate Prevention
# Duplicate Prevention
Duplicate Prevention is an automatic safety mechanism that skips a mail piece if the same recipient address appears in a new order within **36 hours** of a prior send. This protects against accidentally mailing the same person twice in rapid succession.
You can disable Duplicate Prevention for your account in **Mail Preferences** (gear icon ⚙ in the top navigation bar), under the **Duplicate Prevention** section.
## How it works
When you place an order or a campaign fires a send, thanks.io checks whether each recipient address was already sent to in the past 36 hours. If it was, the duplicate piece is skipped for that order.
The 36-hour window is per-recipient address, not per-campaign or per-list.
## The one exception: Gift Cards
Duplicate Prevention **cannot be disabled for Gift Cards**. Regardless of your account setting, Gift Cards always observe the 36-hour window.
All other mailer types - postcards, letters, Notecards, MagnaCards - respect your account setting.
## When this affects you
- If you upload the same list to two campaigns that fire close together, some recipients may be skipped on the second send.
- If you manually add a recipient to a list while a campaign is already running for that same address, the recipient may be skipped.
- If you test with your own address repeatedly, you'll hit the 36-hour window and the send will be skipped.
## Tips & best practices
- Wait at least 36 hours between test sends to the same address.
- If you're intentionally sending a second piece to the same list quickly (e.g., a follow-up the next day), be aware those recipients will be skipped - use separate timing or disable Duplicate Prevention in settings.
- Use separate lists for campaigns that should mail to the same recipients on different days.
## Limits & gotchas
- Duplicate Prevention applies on all tiers.
- The window is 36 hours - not 24 hours.
- Skipped pieces are not queued for later - they are dropped from that order entirely.
## Related
- [CSV Upload & Format](./csv-upload-and-format.md)
- [Mailing Lists Overview](./overview.md)
---
## Exporting Lists
# Exporting Lists
Exporting a mailing list downloads all recipients as a CSV file. Use exports to back up your lists, cross-reference with your CRM, or prepare data for analysis.
## How to export
1. Go to **Mailing Lists** and open the list you want to export.
2. Click the **Export CSV** button.
3. The download starts automatically.
## What's included in the export
The CSV export includes the standard recipient fields:
- First name, last name
- Address, city, state, ZIP
- Company (if present)
- Email and phone (if present)
- Birthday (if present)
- `custom1`-`custom10` (if populated)
Engagement data (e.g., QR scan history) is exported separately from the QR & Tracking section.
## Related
- [Mailing Lists Overview](./overview.md)
- [Suppression Lists](./suppression-lists.md)
---
## Moving Contacts Between Lists
# Moving Contacts Between Lists
You can transfer one or more recipients from one mailing list to another directly inside the mailing list detail view. This is useful for segmenting contacts after a campaign, promoting warm leads to a new list, or reorganizing your lists over time.
## How to move contacts
1. Go to **Mailing Lists** and open the list that contains the contacts you want to move.
2. Check the box next to each recipient you want to transfer. To select all visible recipients at once, check the box in the column header row.
3. Once at least one contact is selected, a bulk-action toolbar appears at the top of the list. Open the **Move to list...** dropdown and choose the destination list.
4. Click **Move**.
The selected recipients are removed from the current list and added to the destination list.
## Notes
- **Moving is not copying.** Contacts are removed from the source list when moved. If you need the contacts to remain in both lists, export the list first and re-upload them to the destination.
- The destination list must already exist. Create it under **Mailing Lists → Add List** before moving contacts if needed.
- If a contact already exists in the destination list, duplicate-prevention rules apply. See [Duplicate Prevention](./duplicate-prevention.md).
## Related
- [Mailing Lists Overview](./overview.md)
- [CSV Upload and Format](./csv-upload-and-format.md)
- [Duplicate Prevention](./duplicate-prevention.md)
- [Exporting Lists](./exporting-lists.md)
---
## Mailing Lists Overview
# Mailing Lists Overview
## What it is
A mailing list is a collection of recipient records - names, addresses, and optional contact details - that you use to drive mail orders. Every send on thanks.io targets one or more mailing lists, whether you are placing a one-off batch or running an automated campaign.
Lists are the connective tissue of the platform. Campaigns attach to lists. QR scan automations move people between lists. Analytics track engagement per list. A well-organized set of lists gives you precise control over who gets what mail and when.
## Creating a list
1. Go to **Mailing Lists** in the left navigation.
2. Click **Add List**.
3. In the dialog that appears, choose **Manually Enter Addresses**.
4. Enter a descriptive name (e.g., "Q3 New Leads" or "Just Listed Farm - Oak Park").
5. Click **Save**.
## Adding recipients
- **CSV upload** - upload a spreadsheet of addresses. See [CSV Upload & Format](./csv-upload-and-format.md).
- **Manual add** - open the list, click **+ Add**, fill in the name and address.
- **API** - add recipients programmatically using the thanks.io REST API. See [docs.thanks.io](https://docs.thanks.io) for the full endpoint reference.
- **Zapier** - use the thanks.io Zapier integration to add recipients from any connected app (e.g., CRM, form builder, or spreadsheet) without writing code.
- **Campaign automation** - campaigns can move recipients between lists automatically on send or scan events.
## Searching and filtering
Use the search bar to find recipients by name or address. Use the **Invalid Only** filter to surface addresses that failed verification and need attention.
## Tips & best practices
- Name lists by purpose and date so they stay organized (e.g., "Birthday Campaign 2026").
- Keep separate lists for different campaign types - don't mix drip recipients with birthday recipients.
- Use the Invalid Address filter regularly before sending.
- Use **Move Recipient on Send** or **Move Recipient on Scan** to build engagement-based segments automatically.
## Plan-based limits
- List management is available on all tiers, including Free.
## Related
- [CSV Upload & Format](./csv-upload-and-format.md)
- [Address Verification](./address-verification.md)
- [Segmenting & Filtering](./segmenting-and-filtering.md)
---
## Radius Search - Purchase a Mailing List
# Radius Search - Purchase a Mailing List
## Mass Marketing Made Easy
thanks.io's built-in **Radius Search** lets you purchase a targeted mailing list directly from your dashboard - no third-party data vendor required. It is also accessible via the [Zapier integration](/integrations/zapier) and the [API](/api).
Various demographic filters are available so you can target exactly the right recipients. Each record is typically **$0.05**, though some lookups cost more depending on the options selected.
---
## How to access it
1. In the left navigation, click **Mailing Lists**.
2. Find and click **Radius Search**.
---
## Radius Search settings
When the Radius Search popup opens, configure the following fields:
| Field | Description |
|---|---|
| **Search Full Address** | Start typing to select the address you want to search from. |
| **Number of Records** | How many recipients to purchase. Each record is $0.05; some lookups require two queries ($0.10). |
| **Record Type** | The demographic filter to apply (see full list below). |
| **Include Condos?** | Set to Yes or No. |
| **Append Email & Phone for $0.20 ea.** | Skip-traces each match to append alternate contact info. Brings total to $0.25/record (some require $0.40). |
---
## Record types
| Type | Description |
|---|---|
| **Nearest Neighbors** | Residents closest to the search address |
| **Apartment Complex** | Nearest neighbors in a nearby apartment complex. Use *Include Search Address In Mailing List* to get a list of units at the complex itself. |
| **Absentee Owner** | Owners of adjacent properties who do not occupy the residence |
| **Likely To Move** | Nearest neighbors with life events suggesting they may need to move |
| **Likely To Refi** | Nearest neighbors with LTV < 50% plus other qualifying criteria |
| **Home Equity 50%+** | Nearest neighbors who own more than half their home |
| **Home Free & Clear** | Nearest neighbors whose property is completely paid off |
| **Possibly Underwater** | Nearest neighbors who owe more on their home than it is worth |
| **Kids in Household** | Nearest neighbors with kids in the household |
| **New Homeowner** | Nearest neighbors who recently purchased their home. Covers purchases made within the past 12 months. |
| **High Net Worth** | Nearest neighbors with income over $200k or net worth over $1 million |
| **Property Has Pool** | Nearest neighbors with an in-ground pool |
| **Renters** | Nearest neighbors who are currently renting |
| **Potential First Time Home Buyer** | Nearest neighbors who are young renters |
| **Retiring** | Nearest neighbors between ages 55-64 |
| **Retired** | Nearest neighbors age 65+ |
| **Only Businesses** | Nearest commercial properties, either leased or owned |
| **New Business** | Nearest new commercial properties, either leased or owned |
---
## Purchasing
Once you click **Buy Mailing List**, thanks.io deducts the cost from your credit balance and creates the list immediately. You can [export your mailing list](/mailing-lists/exporting-lists) from thanks.io at any time.
---
## Targeting businesses and commercial property owners
Yes - the Radius Search supports commercial targeting out of the box. Use either of these record types to reach business and commercial property owners in any area:
| Record Type | Best for |
|---|---|
| **Only Businesses** | Surround mail campaigns targeting all commercial properties (leased or owned) near a given address |
| **New Business** | Targeting newly established commercial properties near a given address |
This makes it straightforward to run surround mail or area-targeted campaigns aimed at business owners and commercial property owners - without needing a separate list vendor. Simply enter your target address, choose **Only Businesses** or **New Business** as the Record Type, and purchase the list like any other Radius Search.

---
## Skip Tracing a Mailing List
Skip tracing lets you enrich an existing mailing list with additional contact data - phone numbers, email addresses, names, and correct mailing addresses - using a data lookup service built into thanks.io.
This is useful when you have a list of property addresses (e.g., absentee owners) and want to also contact those owners by phone or email, or when you want to verify and correct mailing address data before sending.
> **Cost:** $0.20 per successful lookup. Some matches require 2 lookups for best accuracy, bringing the cost to $0.40 per record.
---
## How to skip trace a list
1. In your thanks.io dashboard, go to **Mailing Lists** in the left-hand menu.
2. Open the mailing list you want to skip trace.
3. Scroll to the bottom of the list and click **Append Entire List**.
4. Confirm the action. thanks.io will run a data lookup for each record in the list and append any matched contact data.
Once complete, matched records will have the new data added to their contact fields. Records with no match will remain unchanged.
---
## Related
- [CSV Upload & Format](./csv-upload-and-format.md)
- [Sourcing Custom Mailing Lists (Datazapp)](./sourcing-custom-lists.md)
- [Data Services](../10-account-and-billing/data-services.md)
---
## Sourcing Custom Mailing Lists (Datazapp)
If you need a more specific or granular mailing list than what the built-in [Radius Search](./radius-search.md) offers, you can use [Datazapp.com](https://datazapp.com) to create highly targeted lists, then upload the CSV to thanks.io.
---
## Step 1: Build a list on Datazapp
[Datazapp.com](https://datazapp.com) is a third-party data service. No subscription is required - you pay per record.
**Typical pricing:**
- B2B lists with email and phone: ~$0.02/record
- Homeowner data: ~$0.025-$0.04/record
**Available list categories** include B2B prospect data, consumer lists, political data, and real estate lists (recent home buyers, absentee owners, etc.).
**To run a search:**
1. Choose a data type (e.g., homeowner list).
2. Select the data fields you want - mailing address, phone, email. You can opt to have phone numbers scrubbed against the Do Not Call list.
3. Specify a geography by zip code, city, or metro area.
4. Use advanced filters to narrow further: AI-powered likelihood of selling, empty nester status, home equity, age, income, home value, and more.
Once your search is complete, Datazapp shows the record count and total cost. Purchase and download the list as a CSV.
---
## Step 2: Upload the CSV to thanks.io
1. In your thanks.io dashboard, go to **Mailing Lists**.
2. Click **Add List** and upload the CSV.
3. Map the columns to the correct thanks.io fields. See [CSV Upload & Format](./csv-upload-and-format.md) for details.
4. Double-check the address field mapping - especially for **absentee owner lists**, which often include both a mailing address and a property address. Map the *mailing* address (not the property address) so mail reaches the owner.
5. Confirm the import.
---
## Need help uploading?
If you run into issues or prefer not to handle the upload yourself, email your list to [support@thanks.io](mailto:support@thanks.io) or use the in-app chat. The thanks.io team can import it for you.
---
## Suppression Lists
# Suppression Lists
Any mailing list can be turned into a Suppression List. Once enabled, every address on that list is automatically blocked from receiving mail across all future orders - campaigns and one-time sends - including from sub-accounts.
## When to use it
- A recipient has asked to be removed from your mailings
- You have a do-not-contact list from your CRM
- You want to honor opt-out requests at the account level so they're respected across every future campaign
- Compliance with internal policies that require permanent exclusion for certain addresses
## How to set up a suppression list
1. Go to **Mailing Lists** and open the list you want to use as a suppression list (or create a new list first).
2. Scroll down to the **Suppression List** section on the list's detail page.
3. Toggle **Is Suppression List** to **YES**.
4. Click **Update**.
The list is now a suppression list. Any address already on it - and any address added to it in the future - will be blocked from receiving mail.
## Adding addresses to a suppression list
Add addresses to the list the same way you would any mailing list - via CSV upload, the **+ Add** button on the list's Recipients panel, or integrations. There is no separate suppression-specific import flow.
Address fields must match exactly for suppression to take effect.
## How suppression works
When a send is processed, thanks.io checks every recipient against all suppression lists on the account. Any match is automatically skipped - the order completes for all other recipients, and suppressed addresses are counted as excluded in the order summary.
Suppression applies account-wide, including across all sub-accounts.
## Tips & best practices
- Add opt-out requests to a suppression list immediately upon receipt.
- Export your suppression list periodically as a backup.
## Limits & gotchas
- Suppression applies account-wide - it cannot be scoped to a single campaign.
- A suppressed address cannot receive any mail from your account until it is manually removed from the suppression list.
- Address fields must match exactly - partial matches are not suppressed.
## Related
- [Mailing Lists Overview](./overview.md)
- [Address Verification](./address-verification.md)
---
## VisitorView Website Retargeting
VisitorView is a small script you add to your website. When a visitor loads your page, the script runs automatically and attempts to identify them. If successful, it adds their name and mailing address to a thanks.io mailing list - no sign-up form or action required from the visitor.
Each successful capture costs **$0.20** and is charged to your account. Captures that fail to identify the visitor are not charged.
## How it works
When the script detects a visitor, it runs a skip-trace against multiple data sources using the visitor's location. At minimum it returns the visitor's mailing address. If a name, email address, or phone number is found, those are returned as well.
The captured contact is added directly to whatever mailing list you connected the script to. From there, you can use a campaign to automatically send them a piece of mail.
## Setting it up
### 1. Create or open a mailing list
1. In your dashboard, go to **Mailing Lists**.
2. To use an existing list, open it. To create a new one, click **Add List**, choose **Manually Enter Addresses**, give the list a name, and click **Save**.
### 2. Configure the Retargeting Code section
On the list detail page, scroll down in the left column to **Retargeting Code**.
Configure the options:
- **Max addresses added per month** - sets a monthly cap on how many captures this script will make. Each capture is $0.20. Set this to a limit you are comfortable with. Select **Off** to disable the script entirely.
- **Site/Page Block List** - enter any URLs or paths you do NOT want the script to run on. Useful if your website platform injects a global header or footer and you want to exclude certain pages (such as admin or login pages).
- **Site/Page Permit List** - enter the URLs you want the script to run on ONLY. Use this when you want to limit captures to a specific landing page and connect it to a specific mailing list.
### 3. Get and install the embed code
1. Click **Get Embed Code**. A code snippet will appear below the button.
2. Click **Copy Code to Clipboard**.
3. Paste the code into your website just before the closing `