Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Get started with a platform subscription, paired with unit cost for mail pieces. Features vary depending on the pricing Edition.
Monthly
–
$260
$550
Annual
–
$225
$480
Monthly supported mailings
Up to 500
Up to 3,000
Up to 6,000
On 07/14/2024, the USPS increased postage rates by an average of 7.5%. The USPS reserves the right to routinely update prices within a certain threshold, typically in January and July of each year, to adjust for inflation and increased operating expenses. You can find more details outlined in the USPS Press Release. Please note that Lob does not apply any additional charges when the USPS increases postage rates.
Prices are inclusive of print, postage and envelopes (where applicable).
4x6, First Class
$0.833
$0.573
$0.543
Talk to sales
6x9, First Class
$0.954
$0.634
$0.584
Talk to sales
6x9, Standard Class
$0.933
$0.613
$0.563
Talk to sales
6x11, First Class
$1.211
$0.871
$0.831
Talk to sales
6x11, Standard Class
$0.993
$0.663
$0.613
Talk to sales
5x7, First Class
_
_
_
Talk to sales
5x7, Standard Class
_
_
_
Talk to sales
International 4x6 Postcard Fee
$1.39
$1.329
$1.329
Talk to sales
Prices are inclusive of print, postage, and envelopes (where applicable).
12x9 Bifold, First Class
_
_
_
Talk to sales
12x9 Bifold, Standard Class
_
_
_
Talk to sales
6x18 Bifold, First Class
_
_
_
Talk to sales
6x18 Bifold, Standard Class
_
_
_
Talk to sales
11x9 Bifold, First Class
_
_
_
Talk to sales
11x9 Bifold, Standard Class
_
_
_
Talk to sales
17.75x9 Trifold, First Class
_
_
_
Talk to sales
17.75x9 Trifold, Standard Class
_
_
_
Talk to sales
Prices are inclusive of print, postage and envelopes (where applicable).
Black & White Letter, First Class
$0.98
$0.81
$0.78
Talk to sales
Black & White Letter, Standard Class
$0.77
$0.60
$0.57
Talk to sales
Black & White Additional Page (pdf page)
$0.10
$0.09
$0.08
Talk to sales
Color Letter, First Class
$1.14
$0.85
$0.81
Talk to sales
Color Letter, Standard Class
$0.93
$0.65
$0.60
Talk to sales
Color Additional Page (pdf page)
$0.20
$0.19
$0.16
Talk to sales
Letter over 6 sheet fee
$2.31
$2.31
$2.31
Talk to sales
Perforation
$0.06
$0.02
$0.02
Talk to sales
Return Envelope
$0.04
$0.04
$0.04
Talk to sales
Custom Return Envelope
$0.05
$0.05
$0.05
Talk to sales
Int'l Letter Postage (1st Class Only)
$1.18
$1.18
$1.18
Talk to sales
Certified Mail (1st class only)
-
$6.25
$6.25
Talk to sales
Electronic Return Receipt
-
$2.62
$2.62
Talk to sales
Certified Mail With Electronic Return Receipt
-
$8.87
$8.87
Talk to sales
Registered Mail (1st class only)
-
$22.20
$22.20
Talk to sales
Legal Letters (B/W), First Class
-
-
-
Talk to sales
Legal Letters (B/W), Standard Class
-
-
-
Talk to sales
Legal Letters (Color), First Class
-
-
-
Talk to sales
Legal Letters (Color), Standard Class
-
-
-
Talk to sales
Paper card affix
-
-
-
Talk to sales
Buckslips
-
-
-
Talk to sales
* Extra postage fees for 8.5x11 letters over 6 sheets (6 pages single-sided, or 12 pages double-sided) and 8X14 letters over 3 sheets (3 pages single-sided, or 6 pages double-sided)
Prices are inclusive of print, postage, and envelopes (where applicable).
Snappack (B/W), First Class
-
-
-
Talk to sales
Snappack (B/W), Standard Class
-
-
-
Talk to sales
Snappack (Color), First Class
-
-
-
Talk to sales
Snappack (Color), Standard Class
-
-
-
Talk to sales
Prices are inclusive of print, postage, and envelopes (where applicable).
Checks
$1.111
$0.961
$0.961
Talk to sales
Check Attachment Page
-
$0.220
$0.220
Talk to sales
Check over 6 Sheet Fee
-
$2.305
$2.305
Talk to sales
Questions about pricing? Reach out to your Account Manager or our Sales team.
Grow faster with a new kind of Customer Data Platform (CDP). ActionIQ’s unique composable architecture gives marketers easy and secure ways to activate data anywhere in the customer experience.
The ActionIQ CX Hub empowers everyone to be a CX champion by giving business teams the freedom to explore and action on customer data while helping technical teams extend and enhance existing technology investments to manage data governance, costs and performance. AIQ CX Hub gives all teams direct but controlled self-service access to customer data to discover audiences and orchestrate experiences at scale.
Direct mail from Lob enables you to fully realize the CX potential of the AIQ CX Hub at the mailbox, providing flexible, automated direct mail production, delivery, and analytics, fully integrated with your CX stack.
The AIQ CX Hub orchestrates customer journeys across all channels and touchpoints, automated across hundreds of out-of-the-box integrations. However, due to limitations of legacy direct mail tools and lack of automation offline, omnichannel orchestration fails to reach its full potential, resulting in time-consuming execution, static content disallowing personalization seen in digital channels.
Lob automates direct mail production, enabling AIQ users to send direct mail when they need it, without downstream hassles or delays. That means you can orchestrate campaigns across all channels, with precise timing, personalization, and visibility.
The ActionIQ CX Hub provides robust trigger creation and activation capabilities, enabling you to deliver real-time outbound experiences across any channel based on any signal you chose, from streaming data like abandoned carts, to historical customer profiles like total spend.
Lob brings this capability to the mailbox, with unlimited customizability, quick processing and delivery, and tracking across the entire customer journey. Giving users the ability to trigger any message, design, or form factor based on any customer signal.
The AIQ CX Hub is a powerful tool for orchestration and optimization, enabling users to rapidly design, execute, test, and iterate on marketing and sales campaigns across multiple channels. However, legacy workflows and low visibility can cut direct mail out of the loop, forcing users to silo direct mail, and limit your ability to track results, improve campaign performance, and fully integrate mail into your multichannel or omnichannel workflow.
Lob’s API solves this problem, integrating fully with the AIQ CX Hub, enabling users to treat direct mail just like your digital channels. That means you can structure the customer journey, track ROI, test new strategies, and iterate your campaigns across all channels, without the need for a siloed direct mail track.
The AIQ CX Hub provides powerful tools to shape and adapt your brand voice, while personalizing down to the microsegment. This gives you the ability to make the most of each touchpoint, while maintaining a single voice across all channels. Lob is able to then utilize all of the AIQ CX Hub intelligence to programmatically send personalized, timely, and quality mail pieces to your customers.
The AIQ CX Hub is designed for B2B and B2C companies with large customer bases and complex data needs across a wide range of industries, including financial services, retail, consumer packaged goods, grocery, travel & hospitality, healthcare, and B2B tech.
Lob caters to a wide range of both marketing and transactional use cases, from small businesses to multinational enterprises. For Lob users, whether or not you adopt a CX Hub depends on the factors above, as well as your use case.
Marketing direct mail: If you need the ability to conduct multivariate testing, featuring 1-1 personalization and quick iteration capabilities, you’re more likely to benefit from a CX Hub. Typically, acquisition-focused marketing campaigns in particular can benefit from these capabilities.
Transactional or operational mail: Industries with heavily regulated customer communications will benefit from a CX Hub. For example, if you send financial statements, policy change notices, explanations of benefits, or bills through direct mail, a CX Hub can help ensure you’re meeting the legal requirements of each state, country, and region. Companies operating in multiple industries also tend to have complex regulatory obligations, which can benefit from the AIQ CX Hub.
Want to learn more? Please reach out to partners@lob.com
Blueshift has built a direct integration to Lob from within their platform. This empowers marketers to automatically send personalized behavior-triggered mail to every user, on demand.
Read more about the integration in the Lob + Blueshift integration factsheet.
Instructions on how to connect Blueshift and Lob can be found in Blueshift's documentation here.
Hubspot is a popular marketing automation software tool. In early 2022, Hubspot added Custom Code functionality to their Workflows, enabling a direct connection to Lob. Hubspot’s Workflows can be used to automatically trigger a mailpiece to be sent, via Lob.
(Looking for a no-code integration option? See here.)
A developer plan for testing with Lob is free, but you will need to create a Lob account to get your API Keys.
If you do not already have one, create a Hubspot account here. You’ll want to enable Operations Hub / Marketing Hub Professional trial (note this lasts 14 days): Automation > Workflows > Start 14 Day Trial
You can create manually, or import from a CSV by clicking Contacts > Import. From there, walk through the flow to import a file from your computer: Start an Import > File From Computer > One File > One Object > Contacts. Ensure your contacts have address parameters; you can use this CSV as an example.
We will be creating a list in the next step, so for this walkthrough, do not select “Create a List from this Import”.
In the Map File screen, for ‘Address2’, select ‘Create A New Property’, and name it ‘Address2’.
Contacts > Lists > Create List > Select ‘Static’ List > Contact-based > Name your List
Select Automation > Workflows
Click Create Workflow
Click Contact Based > Blank Workflow
For example, List Memberships > Select List you previously created > Is Member of List
Click + button on Workflow, beneath the Trigger
Select Custom Code
Here you can select Python or NodeJS. For this example, we will select Language: Python. Then we will map Lob’s API fields to Hubspot properties, and enter our custom code. For this example, Map Properties To Include in Code as follows:
Finally, enter your Python code, with properties defined as per the prior step. See example code below to test with.
If copying and pasting the Python code above, it is advised to run it through a Python code validator to ensure that no formatting issues occur as a result.
Next we need API credentials from our Lob account. Retrieve these credentials from your Lob dashboard by clicking on the Settings menu on the sidebar, then clicking on the API Keys tab.
In the example Python code, replace YOUR_API_KEY
with your Test API Key.
ENSURE YOU ARE USING YOUR TEST API KEY
You should also replace the front and back "HUBSPOT_CREATIVE
" with your own HTML, template IDs, or links to hosted static creatives. For example:
You can then log into your Lob account to verify that a mailpiece was generated.
Once you’ve tested, you can Publish your workflow. From there, it will run whenever the trigger you set is fired. For example, if you followed the above example, you can now add some contacts to your list. This should automatically create mailpieces for each person on the list.
Now you can replace the Test API key in your Python code with your Base64 Encoded Live API Key, and your Automation is live. If you are using other test resources like address IDs or template IDs, those will also need to be transferred to your live environment.
Use the following as an addendum to the Braze integration documentation for using Lob with Braze.
This integration will allow customers to send data from Braze to Lob. A pre-designed webhook can then be used within a campaign to trigger mail to customers. After sending through Braze, the mail data can be accessed from within the Lob dashboard.
Add Custom Attributes for user mailing address information:
address_line1
address_line2
address_city
address_state
address_zip
address_country
Update user profiles with mailing addresses.
Anything highlighted is a custom variable that will need to be updated for each customer or use case.
Create a webhook template (Braze Documentation). Once this template is made it can be used for your future campaigns as well. In the case that you have different variations of sends, meaning you are going to perform one send with postcards and one with letters it is recommended that you create 2 separate webhook templates in Braze for this.
Additionally, if you are going to be doing small variations such as sending first-class vs standard class depending on the recipient, then you can leverage Braze's conditional logic. You can build this logic into the template and have one webhook template support multiple variations.
Compose tab:
Webhook URL: https://api.lob.com/v1/postcards
Request body: Raw Text
Braze's default webhook template does not include the opening and closing {}
brackets, so ensure those have been added before saving.
Compose tab:
Webhook URL: https://api.lob.com/v1/letters
Request body: Raw Text
Compose tab:
Webhook URL: https://api.lob.com/v1/self_mailers
Request body: Raw Text
Be sure to leave the :
after the Lob API key you paste in between the apostrophes.
REQUEST HEADERS:
Authorization: Basic {{ 'YOUR_LOB_API_KEY:' | base64_encode }}
Content-Type: application/json
Idempotency-Key: {{${user_id}}}
It is recommended that you leverage idempotency keys to prevent duplication of mail being sent. It can be any value you seem fit but often it is userID or a combination of userID and campaign name.
HTTP METHOD: POST
Test your new webhook template and check your Lob dashboard to ensure desired results. It is recommended to run a one-off test in Braze to see if the request format is set up appropriately and then run a full end-to-end test where you send an entire campaign through your test environment.
When running a one-off test it is useful to have test users in your system who have the correct data needed to send mail and validate your creatives. Here is an example of a test we would perform.
401 Unauthorized
If you receive this error message, your API key is incorrect.
422 Unprocessable Entity (Invalid request payload JSON format)
If you receive this error, it is likely that your payload is not formatted correctly. It needs to match JSON formatting.
Generally speaking, the rules that are often broken are:
All keys and values are enclosed in double quotes ("
).
Commas after every key-value pair except for the last one.
No newline characters in any values and no extra spaces between fields.
422 Unprocessable Entity (Other)
Other than JSON errors, you can receive 422
errors in the payload sent to Lob does not match our requirements.
For example, if you are missing address_line1
in the payload you will get an error saying that is needed. For these errors, you can make the appropriate adjustments and retry your requests.
The "testing" functionality in Braze is sending a one-off request to Lob, this means if you have your LIVE API key in the template it will create mail and if you have your test key it will not.
Make sure when you are testing that your cancellation windows are set to an ample time (2 hours is recommended) to make sure you can always cancel mail if you make a mistake.
To leverage merge variables, in Braze you will reference the merge variable in your HTML file as the Key and the user attribute as the value.
For example, if you had a merge variable called f_name
in your HTML, then in the section of your payload called merge_variables
you would have a key of f_name
and a value of the user attribute in Braze. Here is an example of what that would look like in Braze
See more information on file format types here
Essentially you can either host your HTML in the Lob platform where you can then reference the template ID that is created for you, or you can leverage Braze’s Media Library where you will be provided with a URL that can be used as the value for these parameters.
Here is an example of what you could see in Braze:
Braze’s Data Transformation tool enables you to capture webhook events from Lob, and use them to either update Attributes or create Events within Braze.
Steps:
Set up a Data Transformation in Braze. This will generate a Webhook URL you can use to pass events into Braze.
Create Lob Webhook for the events you want to track, using the Braze-provided URL
Set up the Transformation Code in Braze to listen for the event. You can use this to either update an Attribute or generate an Event.
See Example 1 below for a 'Letter Viewed' example, in which it both updates an attribute within Braze and creates an Event.
Send a Test webhook and check the resulting Output to ensure the data is successfully being captured, and the subsequent attribute/event updates are occurring within Braze
Example 1: Braze Transformation Code for Letter Viewed, which updates the attribute 'external_id' and generates an Event named 'Letter Viewed' when the webhook from Lob is received:
Example 2: Braze transformation output after webhook received, showing the updated attribute 'external_id' and creating the Event 'Letter Viewed'.
String manipulation, date formatting, etc. See Braze’s Liquid documentation.
See Managing mail settings > Idempotent requests
By default, all accounts and their corresponding Test and Live API Keys have a rate limit of 150 requests per 5 seconds per endpoint
Lob's mission is to help the world send intelligent mail, one mail piece at a time. By making direct mail sends as easy as email through the use of modern APIs, Lob strives to modernize this often overlooked channel of direct communication.
Lob is a great fit for all users of direct mail from all walks of life:
Are you brand new to direct mail as a channel, and looking for ideas and best practices on getting started?
Are you looking to infuse direct mail automation into your existing business workflows and seeking for ways to modernize your enterprise solutions and tools?
Or are you building a highly sophisticated experimentation program using this rapidly iterative and performative channel?
Start at a pace you're most comfortable with, and Lob can help meet your direct mail needs, one step at a time.
Sending mail in an accurate, reliable, and programmatic way involves the following four steps:
The first step to any successful direct mail program is to put together an audience list for effective targeting.
Whether you are using your own customer data or augmenting with third-party lists, make sure that you create targeted mailing lists with select attributes to maximize your responses and channel ROI.
Easily upload your campaign audience list in Lob Campaigns, or send a recipient address per mail piece in your API calls.
You can also improve the deliverability of your mail pieces by passing your addresses through Lob's National Change of Address functionality to reduce bad addresses, or incorporate Lob's Address Verification product to fully ensure your mail data is as accurate as possible to maximize your intended reach.
Next, our API-first solution provides incredible flexibility in determining how you want to send your mail: send high-volume campaigns quickly and at scale, or build automated mail sends triggered through omnichannel business workflows.
In order to use direct mail with Lob, there are three components that must be thought through to send mail via our platform:
Design: generate clear and concise instructions around what you're sending, including creative artwork and copy. Learn about designing creatives in Lob.
Data in: pass data that determines how you want to send mail and get it delivered, including address data, merge variables for personalization, postage and delivery strategy. Learn about building your mail strategy in Lob.
Data out: pass data that exports mail tracking information to enable downstream workflows or measure attribution for better performance. Learn more about how to calibrate your mail data in Lob.
Based on your API call submission and send settings, a printer from a strategically distributed network of printers managed by Lob will fulfill your orders. Once printed, your mail orders will be handed off to USPS for delivery.
Track your mail order at each stage of production (and delivery) by utilizing our mail tracking, and get near real-time updates via our webhooks.
Once production is fulfilled by our printers, your mail will be on its merry way to be delivered to its final destination! Lob uses USPS for delivery in the US; as such, Lob does not have physical control over your mail once USPS has taken possession.
However, working hand-in-hand with USPS as our partner, Lob is able to provide granular digital tracking details of each individual mail piece as it moves towards its destination. As the mail makes its way through every distribution or sorting facility, or arrives at the area post office, USPS will send mail tracking details to Lob. Lob will then surface this information in near real-time, ensuring your mail pieces were delivered in a timely manner and received by the intended recipient.
Depending on where you are in your quest for intelligent mail, or given your available budget or resources, there are multiple ways to leverage Lob's platform and accelerate your growth. Read on!
We're not your average direct mail experience. Explore Lob and see how we can meet your immediate needs for direct mail automation.
Dive right in: Send your first campaign via our easy-to-follow dashboard UI to get a feel for intelligent direct mail.
Explore our APIs! Check out our API quickstart quide to explore our APIs in your preferred programming language, explore our our Postman collection, and go to GitHub to access our supported SDK libraries.
Understand other ways in which you can up-level your direct mail program.
Explore how to operationalize dynamic personalizations to create mail pieces that can truly resonate with your audience
Experiment with different methods of mail sends and mail delivery strategy to see how to best increase relevance and conversion
Ingest mail tracking data, set up notification alerts via webhooks, or add QR codes to improve attribution and reporting
Access advanced features and more mail formats to improve audience responses as needed
Generate a campaign hypothesis, and build split-test or multivariate test cohorts to see which creative or campaign resonates with your segment
Explore our integrations so you can learn how to tap into your existing tech stacks and augment your datasets to expand the possibilities of creating seamless and timely omnichannel experiences with a touch of direct mail.
If you are a world-class technology company interested in partnering with us, learn more here.
Integrate Lob with your existing tech stack to maximize the effectiveness of your direct mail campaigns
Customer data platforms (CDPs) serve as a source of truth for customer data, while customer relationship management systems (CRMs) manage customer relationships for sales. By using data piped from these systems, marketing automation tools can orchestrate multichannel campaigns based on the customer journey, or sequence business workflows, triggered by user actions, events, milestones, or other logic.
Lob integrations enable automated trigger-based campaigns, so you can incorporate direct mail into your omnichannel marketing campaigns and make operational workflows more efficient.
We offer two types of customer data integrations optimized for your direct mail strategy, technology stack, and available resources.
We collaborate with third-party data providers to offer data enrichment options for sending direct mail, enabling you to reach a broader audience.
We are continually enhancing our capability to convert creative from popular design tools into HTML, to empower more users to benefit from the personalization that HTML provides.
Make, previously known as Integromat
Allows you to create your own custom app through the Developer Platform
Supports functions in the same manner as Excel
Choose whether to retrieve data from the past or dynamically after activation to inform your Scenarios
Best fit for teams that are sending small - medium sized mail campaigns (<1,500 per run)
Make's platform allows users to build Scenarios by connecting Modules. By linking together multiples Modules of your favorite apps/services, you can easily create a Scenario that will automate data transfers between apps and subsequent workflows.
Integration occurs in three easy steps:
Connect Lob to Make
Create an account by clicking on the Sign Up button on the top right of the screen
In the Make dashboard, click on "+ Create a new Scenario" button at the top right corner of the home screen
Search for "Lob" in the app directory and hit "Continue"
In the visual Scenario builder, click on the Lob icon and select the action you’d like to take from the drop down menu
Example actions: Send a letter or postcard, verify an address, make an API call
Use your Test Lob API Key initially to ensure that everything is working as expected, then switch to your Live API Key later to send live mail
Once you've tested your first Scenario, switch the API key to the Live key and begin sending physical mail!
Create a Letter: Takes your API key, to/from address data, creative data (HTML or PDF), and Mail Class
Create a Postcard: Takes your API key, to/from address data, creative data (HTML or PDF), and Mail Class
Create a Self-mailer: Takes your API key, to/from address data, creative data (HTML or PDF), and Mail Class
Verify a US Address: Takes your API key and address data
Verify an International Address: Takes your API key and address data
Send a Generic API Request to Lob: Takes your API request payload
For example, to connect Google Drive to Make:
Create credentials for the new project, adding Make to the project’s Scope and allowing external users
Create the application
Retrieve Client ID and Secret
Use ID and Secret to establish Make connection
Watch how you can easily connect addresses stored in Google Sheets to Lob with Make to send a simple postcard in three steps:
Blueprints are detailed plans for how a Scenario (low-code workflow) is set up and how it will work. This allows other stakeholders to understand the composition of your automation in detail, share it with other teammates, and troubleshoot when necessary.
The ‘blueprint.json’ file will then be downloaded to your device’s folder.
In the scenario builder screen, click on the “More” button (same box as above). Click “Import Blueprint.”
Once the file has been submitted to your Import Blueprint builder click on the “Save” button.
Once complete, you will receive a confirmation banner along the bottom right side of your scenario builder screen.
Incorporating Intelligent Mail into Customer.io Workflows
Once you reach the workflow screen, you can begin crafting your customer journey by creating the event path your users will follow. Below is a standard example of an event trigger (User Purchase) followed by a standard Welcome Email.
We can incorporate Intelligent Mail into this Workflow in a similar manner to email by adding a Webhook node. We can do this by dragging in a Send And Receive Data tile from the left-side menu.
You can configure it as follows:
Webhook Name: The Description of your Mail Event
Sending Behavior: Send automatically
Click on Add Request to begin the setup process.
Next to POST, you will construct the Lob endpoint URL for the type of resource you are trying to create.
The format is as follows: https://+[YOUR LOB API KEY]+@api.lob.com/v1/[RESOURCE TYPE]
Below is sample JSON you can test within your Customer.io webhook.
Before testing this, replace the front and back with template IDs from your own Lob account.
Once your webhook has been configured, you will want to test it.
Remember that you should be using your Test API Key for this, as you will otherwise generate live mail.
You can send a test by opening up the Request and clicking on Send Test in the top right corner.
Once you confirm and send, you will want to see a 200 OK response in your Test Results. This will indicate that the request has successfully reached Lob.
You can also check the Test Results to ensure the request fields were correctly populated by the Liquid Statements.
You can then log into your Lob account to verify that the mailipiece was successfully generated. Preview it to make sure all of the details are correct. If so, then you have successfully set up your Customer.io to Lob integration, and are ready to send Live Intelligent Mail.
Start by creating a new Campaign within Customer.io and select: Create Your Own Trigger From A Webhook as the trigger.
This will generate a URL to catch the webhook. Copy that to use within Lob in the next step.
Under Create A New Webhook, enter a webhook description and paste in the URL generated by Customer.io.
Finally, select the event you want to capture in Customer.io.
From here you can use the data on the incoming webhook to track as events or update attributes for users within Customer.io. This also enables you to trigger subsequent events—for example, you can imagine an omnichannel customer journey in which a customer receives a Lob postcard, and that automatically triggers an email to that same customer telling them to check their mailbox for a great offer.
Once you have incorporated both sending Lob mail and capturing Lob events within Customer.io, you will have truly automated direct mail, and integrated within your broader digital customer journeys.
In heavily data-driven industries, the customer journey is the destination. It’s not enough to be able to nurture leads, win conversions, and retain customers — you need to continuously engineer and optimize your customer relationships to keep customers engaged over many, many touchpoints.
It’s these industries where Optimove really shines. Optimove is more than just a CRM — it’s a Cross-Channel Campaign Management platform built to drive your entire marketing process. Combined with Lob, Optimove can drive strong customer relationships online and offline, integrating direct mail and digital marketing into a seamless whole.
Sustaining high customer engagement depends on centralized orchestration, backed by data-driven insights. Optimove provides a hub for all of your relationship marketing channels, orchestrating campaigns across all owned channels. Powerful analytics and a cutting edge decisioning engine enable you to react to customer signals in real time, making the most of every interaction.
Lob adds next generation direct mail automation, with the power, convenience, and speed of a digital channel. You can dynamically personalize and trigger mailpieces to drive conversions, nurture relationships, and capitalize on every customer action and interaction.
Customer demand is always changing. To keep up, high-frequency businesses need to treat each interaction as a chance to collect data, test strategies, and analyze outcomes.
Optimove uses test and control groups to turn every interaction into a learning opportunity. Built-in AI and machine learning constantly crunch the data, providing an endless flow of data-driven optimization insights.
Lob completes the picture, bringing total visibility to your direct mail campaigns. You can track receipts, conversions, and delivery times for every mailpiece just like with digital channels.
You don’t need to be a mechanic to drive a high-performance car, and you shouldn’t need to be a technical savant to use a high-performance CCCM. Optimove consolidates customer data into a custom data model, built for your business, industry, and priorities, driving deep insights for even non-technical users.
Lob replaces complex legacy direct mail workflows with an automated system, using our nationwide network of print partners. That means you don’t need to build your direct mail strategy around the limits of your print partner, or the peculiarities and cadence of your internal workflow.
Together, Lob and Optimove enable non-technical users to see, interact with, and serve customers like never before — without having to dive under the hood or work around archaic workflows. That means less time working around the limits of your tools (and your help desk), and more time growing your business.
Optimove is ideal for data-driven companies, including:
High-bandwidth communication: Organizations that need to be able to automate and orchestrate simultaneous messages across many channels, or scale up their communication strategy
High Frequency interactions: Companies that have many interactions with customers, such as frequent purchases, media streaming, and gaming
Promotion-heavy brands: Organizations that need help gauging the impact of promotions, and optimizing their promotion strategy
Replenishable products: Pet food, gaming deposits, subscriptions, and telecommunication services where customers need to frequently replenish the product
Lob is designed for any organization looking to automate direct mail, improve personalization capabilities, or better integrate direct mail with their technology stack. Lob provides unlimited scalability, so you can send as many or as few mailpieces as you need to without having to plan and purchase printing capacity ahead of time. This makes Lob a perfect fit for small startups and nonprofits, massive multinationals, and anything in between.
Klaviyo is a popular marketing automation software tool. It frequently uses integrations like Shopify to external systems like Lob. In early 2022, Klaviyo added webhook functionality, enabling a direct connection to Lob (prior to this, data had to be extracted from Klaviyo and passed to Lob via a separate system). Klaviyo’s webhooks can be used to automatically trigger a mailpiece to be sent, via Lob, within a user Flow.
Klaviyo’s webhook functionality within their flows interface provides an easy connection point to trigger automated, personalized Direct Mail.
In order to send mail from Klaviyo, Lob requires a mailing address to be stored for each profile. Klaviyo does not require mailing addresses by default, so before attempting to send mail, ensure that your recipient profiles contain properties for:
Address
City
State
Zip Code
In the Klaviyo dashboard’s left-hand panel, click on Flows. Then click to Create Flow, then select a predefined goal, or click Create From Scratch and give your flow a name. Then choose a Trigger Setup option in the left panel.
For this example, we will be selecting List, and choosing a list from the resulting drop-down to trigger the flow.
Once you have configured your trigger, an actions menu will appear on the left panel. Select Webhook, and drag it into your flow beneath the trigger.
Select the Webhook in your Flow, and the configuration panel will appear on the left side. You can configure it as follows:
This is where you will enter the Lob API URL for the mail format you would like to trigger.
Example: https://api.lob.com/v1/postcards
. Note that Lob has separate endpoints for various mail formats.
This is where you will enter the headers Lob requires in order to correctly process and authenticate the incoming requests.
You will be required to enter at least two headers: Content-Type and Authorization. Click Add Header.
For the Content-Type header, enter the following:
Key: Content-Type
Value: application/json
For the Authorization header, you will need your API keys.
Ensure you are using your Test API key, not Live API key.
For example, if your API key was test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc
, you would enter test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc:
into a Base64 Encoder tool, the result of which would be something like dGVzdF8wZGM4ZDUxZTBhY2ZmY2IxODgwZTBmMTljNzliMmY1YjBjYzo=
.
Note that we added a colon (:
) to the end of the API key before encoding it, you are recommended to do the same.
Once you’ve encoded your API key, add the Authorization Header and use the encoded key as the value. For example:
Key: Authorization
Value: Basic dGVzdF8wZGM4ZDUxZTBhY2ZmY2IxODgwZTBmMTljNzliMmY1YjBjYzo=
This is where you will pass Lob the information that informs the mailpiece. The field names (name
, address_line1
, etc) represent the information that Lob’s API will require. The values on the right represent what you will pass to Lob to populate the given field.
The values can be mapped to attributes from Klaviyo profiles by using Klaviyo’s Profile Variables. You can find the Profile variables for each attribute by taking the following steps:
Note that if you are copying the below example, you will want to replace the values being passed for ‘front’ and ‘back’ with your own Lob template IDs or linked creative.
You will want to replace the values being passed for ‘front’ and ‘back’ with your own Lob template IDs or linked creative. For example:
You can test that your webhook is configured correctly by clicking on ‘Preview Webhook’.
The resulting panel will show an example of the data being passed to Lob for a specific Profile. You can look at the JSON to verify that the Klaviyo Profile Variables are being correctly replaced. For example, instead of {{ person|lookup:'$address1'|default:'' }}
you will see an address, such as ‘185 Berry St.’
If this all looks correct, double-check that you used your Test API Key (rather than your Live API Key), then click on Send Test Request. If it was configured correctly, you will see the message: "Successfully sent webhook."
You can then log into your Lob account to verify that your postcard was generated. (The below is the result of the example creative.)
You will need to add payment information to your Lob account should you actually wish to print and send mailpieces. When you are ready, you can replace your Test API key with your Live API key. If you are using other test resources like address IDs or template IDs, those will also need to be transferred to your live environment.
Note: the "testing" functionality in Klayvio is sending a one-off request to Lob, this means if you have your LIVE API key in the template, it will create mail and if you have your TEST key it will not.
401 Unauthorized
If you receive this error message, your API key is incorrect.
Make sure you have the header Authorization and that you are encoding your secret API key as explained above
422 Unprocessable Entity (Invalid request payload JSON format)
If you receive this error, it is likely that your payload is not formatted correctly. It needs to match JSON formatting.
Generally speaking, the rules that are often broken are:
All keys and values are enclosed in double quotes (").
Commas after every key-value pair except for the last one.
No newline characters in any values and no extra spaces between fields.
422 Unprocessable Entity (Other)
Other than JSON errors, you can receive 422
errors in the payload sent to Lob does not match our requirements.
For example, if you are missing address_line1
in the payload you will get an error saying that is needed. For these errors, you can make the appropriate adjustments and retry your requests.
Each Webhook you create will connect to an HTML template that you have stored in your Lob account. You will map your Iterable data fields to the dynamic Lob merge variables in the HTML template, and trigger mail sends via either an individual user action (such as email unsubscribe, for example) or to a group of users via a batch send.
Navigate to "Integrations" -> “Journey Webhooks”
Now click on "New Webhook" near the top of the page.
4. Configure as follows:
b. Authentication: None
We recommend using your Test Lob API Key in order to test and validate your integration. Then switch to your Live API key when you are ready to send mail.
Use the encoded key as the value for the Authorization
header and that you are encoding your secret API key with a colon after the key like this Basic {{ 'YOUR_LOB_API_KEY:' | base64_encode
The fields on the left are the required Lob request parameters, and your corresponding data fields are on the right.
The right column is where you can dynamically map to Iterable attributes, by using the corresponding Iterable variable for a given attribute.
Iterable variables will need to be enclosed like so: {{your_variable}}. For example, if you have a field that maps to “to{name}” in your data and you want the variable first_name to be used as that mapping, you would put {{first_name}} next to the “to{name}” field on this page.
Be sure to map to all of the necessary merge variables. For example, if you have a merge variable “name” in your template you need to add a form field of “merge_variables[name]” and set the desired value on the right.
5. Click 'Create Webhook.'
6. Ensure you are mapping all the required templates.
Postcards and Self-Mailers will utilize two templates, one each for the front and back of the postcards.
Letters have just one template, mapped to the parameter ‘file’ on the left side.
7. Click 'Save' on the right when you are finished.
8. Navigate "Messenging" -> "Journeys" (previously called “Workflows”)
9. Click on the Journey you want to incorporate this webhook into, or create a new Journey.
10. Find the event that will trigger your Lob webhook (for example, a customer is Added to a List, or opened an email), then drag in the “Call Webhook” tile and place it after that event in the Journey.
11. Open up that Webhook, and toggle on ‘Use Preset Journey Webhook’, then select the webhook you have created.
12. After you have successfully set up your Journey, send a test trigger by clicking on ‘Test Journey’. Check to see whether Iterable notes any errors.
We strongly recommend testing any planned mail sends and webhooks by first using your Test Lob API Keys, and ensuring that the resulting records created in Lob match your expectations. Only then should you proceed to use your Live Lob API Key to actually generate mail.
To leverage HTML creatives in Lob, you will want to save your HTML as a template within Lob, or host your HTML and generate a corresponding hosting URL. These can be passed to Lob from Iterable, but you are not able to pass a full HTML string directly to Lob from Iterable.
There are 3 common scenarios in which Iterable Journeys trigger Lob mail sends:
Single, triggered mailpieces from individual user actions. For example, someone unsubscribes to an email list, then a message is sent to Lob to trigger a single mailpiece.
A regular job is run, resulting in mail being sent to all users who meet specific criteria.
An audience list is exported from Iterable and uploaded to Lob, and mail is generated for each user in the list.
These scenarios all result in different volumes of mail requests being sent to Lob in a single batch, and there are some best practices for ensuring your integration is seamless for each batch size.
For any send types that will trigger fewer than 500 mailpieces in a single batch, as is typically the case with the first scenario above, you won’t need to take any additional steps to those listed above in this doc. However, for the second and third scenarios, in which single sends will contain more than 500 mailpieces, it is recommended that you connect with your Lob representative to discuss leveraging a Lob solution to manage non-rate-limited requests from Iterable.
Additionally, for the second and third scenarios above, you can take some additional steps to ensure that all requests reach Lob within the rate limit. For example, one possible workflow enhancement for batches typically between 500-3000 mailpieces is to include audience splits in the customer journey, with delays included to stagger the sends to Lob, thus reducing rate limiting errors. For large batches, it is also an option to export the audience list from Iterable and send it via Lob’s Campaign Dashboard, as it is purpose-built to handle batch sizes into the millions, and will ensure that all expected mail is generated.
Either way, if you expect to send batches above 500 mailpieces at a time, it’s beneficial to connect with your Lob representative so that we can walk through the best solution for sending at scale while preserving the automation benefits of connecting through Iterable.
Make sure to hit ‘Save’. Then you can open your custom code back up, scroll to the bottom of the panel, and click Test Action. Select a contact, and click Test to fire off a test request.
Make sure you have the header Authorization
and that you are encoding your secret API key with a colon after the key like this Basic {{ 'YOUR_LOB_API_KEY:' | base64_encode }}
(formerly known as Integromat) is a free online automation tool that connects apps and automates manual workflows by using an easy to use, no-code, visual builder. With Make, you can quickly connect your favorite apps, services, and devices with each other to automate your custom workflows and save time - without needing to know how to code or hire a developer.
Create Scenarios (no-code workflows) that connect Lob with hundreds of popular
Sign up for a to create custom workflows or use prebuilt Scenarios
Sign up for and
Create custom workflows, or use ones
Navigate to Make's website at
Start with a free developer’s account, or sign up for a that suits your needs
Log in to your and accounts
In the dropdown, click on “Add” to name your connection, add your Lob , and click “Continue”
Once the connection is completed, finish building your Scenario or browse pre-built Scenarios to leverage
Here are (functionality clusters) to automate your Lob Print & Mail and Address Verification workflows:
If you are using online apps like Google Drive or other app/services to store your customer data and would like to import them into Lob to automate your mail sends, Make can your online apps to Lob.
Create a
Using the , create a new project.
You can find more information about connecting Make to Google Services in this .
For more information on how to build custom Scenarios or create Connections, visit .
Using pre-built is typically an easier place to start than building one from scratch:
From your scenario builder screen in Make, navigate and click on the “More” button (see below box with an ellipsis). Click “Export Blueprint.”
When the Import Blueprint menu is launched, click on “Choose Files” and select blueprint.json from your files. →
If you are using Google Sheets or any other app/service to store your customer data and would like to import them into Lob to automate your mail sends, can help connect your online apps to Lob with zero coding.
In the Connection menu that follows, click on the “Add” button. In the new window, enter a name for the connection (eg. a personal Google Sheets). Once you have your name, select the “Continue” button.
You will then be prompted to select your Google account to grant access to Make.
You can find more general information about creating Connections in Make . If you want to create a connection with Lob and Integromat, see .
Feel free to contact Make’s support team via their for issues on the Make side, or email for Lob-specific debugging!
is an easy-to-use online tool for creating forms, surveys, and questionnaires without needing any coding skills. With its drag-and-drop interface, you can quickly design forms that look great and fit your needs. It comes with a ton of templates and integrates smoothly with other apps, making it handy for everything from gathering data to handling payments.
Lob Blog:
Jotform’s Lob Address Verification widget allows your form respondents to check if they’re entering a correct address in your form’s address field. .
Alternatively, , and make magic happen automatically in Lob.
is a popular messaging automation platform that empowers its customers to create personalized message flows to engage their audience. Traditionally these have been channels like email and SMS. However, with Lob, you can bring Intelligent Mail into your omnichannel customer journey and manage it just as easily as your digital channels.
Log into your . To start you’ll need your . It is highly recommended that you use your (secret) test API key first for testing.
Have a (HTML template) ready to use.
Sign in to your
We will be bringing Lob into Customer.io within the Workflow step of a Campaign. In order to set up a Workflow, you will need to first create the Campaign within Customer.io and configure your Trigger, Settings, and Goal & Exit steps. Complete instructions on this can be found in
Now you will have an empty webhook, which you can configure by clicking to open it. This will open an edit screen in the left panel. You can find
Add Request: This is where we will add the Lob Endpoint URL and the JSON code that will format the information being passed from Customer.io to Lob. More details on this below in
Your API key will be either your Test or Live , which you can find in your Lob dashboard under Settings. It is strongly recommended that you begin with your Test API Key to ensure it is working, before switching to your Live API Key.
The Resource Type will depend on the mail format you are trying to send. For example, postcards, letters, or self_mailers. You can find all of the available resource types in .
In the black box, you will construct your JSON to pass the required information to Lob’s API to generate a mailpiece. For example, see
You will pass in the Customer attributes to populate this by using .
This will enable to you not only pass in the recipient’s name and address, but also personalize your mailpiece by using Liquid to populate dynamic merge variables. (.)
You can set up Webhooks within Lob to pass mail events (for example, Postcard Delivered) from Lob into Customer.io by using .
Navigate to to set up the webhook event you want to capture.
Want to learn more? Please reach out to
Lob & Optimove: blog post
Lob & Optimove: , we sat down with Pini Yakuel, Founder and CEO of Optimove, to discuss how marketers can embrace AI to create successful marketing campaigns.
We’ll assume you have a account and you have already registered with (for your API Keys and the like) to follow along.
If you are importing new profiles to Klaviyo, simply ensure that you have CSV columns for each of those properties. An example CSV to import Profiles is .
For the Authorization header, you will need to have your Base64-encoded Lob API key ready to enter, so Lob can associate the request with your account. You can find your in your Lob account settings, and you can use a to encode it.
An example of a populated JSON body could look something like the following. You can find more information on each of these fields in our .
"front": “"
"back": ""
For more about designing/formatting creative for Lob, .
Make sure when you are testing that your are set to an ample time (2 hours is recommended) to make sure you can always cancel mail if you make a mistake.
is a cross-channel marketing platform that powers unified customer experiences and empowers you to create, optimize and measure every interaction across the entire customer journey. Automated connections in Iterable, called (Journey) Webhooks, can be set up in minutes with no coding. Webhooks can automate your day-to-day tasks and enable workflows with Lob that otherwise wouldn't be possible.
To get started with Iterable, you will need to sign up directly with Iterable (see ) or have your Iterable account enabled by your company.
for a free Lob account; from there you can jump right in with sending requests for free with your secret . Instantly begin sending real mail by simply adding a payment method to your account and switching to your Live API key.
to your Iterable Account.
a. Endpoint: Make sure the URL matches the resource you want to create (i.e., that you are sending postcard requests to the postcard endpoint). See URLs .
c. Custom headers: Use the Authorization Header and your Base64 Encoded to connect your Lob account
You can use a to encode your (test) API Key.
d. Body: select ‘URL-encoded Form’, then add form fields below to map the to the associated attributes within Iterable. Example:
13. Assuming no errors were caught, head over to your Lob and verify the results of the test. (Reach out to your CSM if you need assistance navigating the Lob dashboard.)
Simon Data is a customer data platform (CDP) that enables businesses to leverage their data to create personalized marketing campaigns and drive customer engagement.
Simon Data brings a simple, highly effective workflow to multi-channel marketing. Through its powerful CDP, Simon allows marketers to integrate data from any source, unify customer profiles, segment in real time, and orchestrate customer journeys across all marketing touchpoints. Lob empowers Simon users to coordinate direct mail with their online channels, using consistent and personalized messaging to drive customer loyalty and engagement across email, SMS, push, and other digital channels.
Simon Data’s powerful B2C marketing orchestration capabilities empower your marketing team to provide consistent, relevant messaging throughout the customer lifecycle. Simon combines powerful, predictive modeling with sophisticated testing and experimentation. The result is a system that enables you to maximize engagement, fine-tuning each customer journey with the right messaging, touchpoints, and product recommendations. Lob enables you to fully harness Simon’s capabilities offline, bringing automated direct mail production, personalization, and analytics to your multi-channel stack. That means you can truly engage with customers, build loyalty, and drive CLTV across all channels, all from a single hub.
40% of marketers rate their “inability to link different technologies” as a top technological challenge. Siloed data, disconnected channels, incompatible schemas, and the sheer complexity of your marketing stack can hamstring your marketing team. You can’t engage customers in real-time if you’re forced to wait on manual data pulls, or slog through elaborate workarounds. Legacy direct mail in particular is a major pain point, because it is almost completely siloed. The slow cadence and separate, manual workflow of legacy DM prevent marketers from fully integrating it with digital channels into a coherent customer journey.
Simon’s CDP provides a unified customer view to your marketing workflows, coordinating all your tools and data sources into a seamless whole. Targeted communications are infused with historical and real-time data, supported by robust segmentation and personalization capabilities. Lob integrates fully automated direct mail into Simon, enabling you to plan, execute, and track your omnichannel campaigns with a single workflow. That means you can focus on getting the right content to the right audience across the right touchpoints.
Traditionally, direct mail optimization is limited compared to digital channels. Most companies using legacy direct mail have little ability to personalize letters or track results, forcing them to rely on less effective techniques like mass mailers. Lob provides 100% personalization for every mailpiece, and enables you to track deliveries and conversions just like you would with email. Combining Lob’s direct mail automation with Simon’s powerful optimization and orchestration capabilities lets you truly optimize your multi-channel campaign.
Simon’s native integration with Lob supports triggered campaigns for a variety of loyalty and retention use cases. and streamlines workflow for both technical and non-technical stakeholders. Marketers can get hands-on with customer data, experiment and execute campaigns, and analyze results all within the same UI. And your team can conduct the same experiments, tests, and analyses on DM campaigns as they would for any digital channel.
Consumers are harder to track than ever before. They research products and engage with brands across multiple channels, devices, and accounts, making it difficult to identify individuals and tie together interactions. At the same time, they expect a highly personalized experience from the brands they interact with. Simon Data solves your identity resolution challenges with Simon Identity. This enables you to merge multiple customer interactions into a single profile, without depending on a single identifier like email address. Lob augments this capability with automated address verification, so you can engage with your customers online and offline.
Simon Data is a powerful CDP designed around the unique needs of B2C marketing. With powerful native tools and extensive integration, it can serve a range of use cases, including:
A centralized hub to unify and consolidate your customer data sources
A self-service automation and segmentation tool, enabling marketers to fully utilize their data without depending on the help desk
A rapid testing and optimization toolset to fine-tune and personalize customer experience
A sophisticated data integration and governance platform, managing your entire customer data ecosystem
Because Simon Data serves so many roles, Lob users in B2C industries should weigh Simon Data’s capabilities against their current pain points and tech stack functionality to identify use cases.
For more support related to our SFMC API integration, please contact your Account Manager or support@lob.com to discuss your requirements and use case.
(Looking for a no-code integration option? See here.)
Salesforce is a customer relationship management (CRM) platform that helps businesses manage customer interactions, track sales, and automate various business processes.
The Salesforce integration with Lob allows you to automate direct mail campaigns within the Lob dashboard, based off any event trigger change that occurred within your Salesforce account.
No-code integrations are exclusive to our users on paid plans. Upgrade your Print & Mail edition to gain access, or contact our sales team to learn more.
Within the Lob Dashboard, navigate to the Integrations page and click on “Salesforce” to view the Salesforce connection page. When on the Salesforce page, click the “Connect” button to begin.
This will launch a modal to sign into your Salesforce account. Any Salesforce accounts you have previously used may be automatically detected. When prompted, enter the credentials to the Salesforce account you wish to connect.
Your organization must be on a paid Salesforce plan/tier with API access enabled.
The user in the account must have Admin level permissions, with access to the tables needed.
Once the account is authenticated, Lob will start the ‘Connect’ phase, and will read the schema of your Salesforce instance. (This is so you can use the objects and columns later when setting up a campaign.) Depending on your Salesforce instance’s size, this may take a few minutes but runs asynchronously, requiring no active monitoring.You will receive an email when this is complete.
Once you have successfully connected your Salesforce account to Lob, the label will show “Connected”.
Once you’ve successfully connected Lob to your Salesforce account, you can set up an Automated campaign from within the Campaigns flow.
Coming soon!
This platform is in closed beta. reach out to your Account Manager to enable or sign up here.
Pipedrive is a user-friendly CRM designed to help businesses manage and streamline their sales processes. By integrating direct mail into your customer journey with Pipedrive, you can add a personal touch that complements your digital efforts, making your outreach more engaging and effective. This combination ensures you’re reaching your customers in multiple ways, helping to close deals and strengthen relationships.
No-code integrations are exclusive to our users on paid plans. Upgrade your Print & Mail edition to gain access, or contact our sales team to learn more.
Coming soon!
This platform is in closed beta. reach out to your Account Manager to enable or sign up here.
Agile CRM is an all-in-one customer relationship management platform that helps businesses streamline their sales, marketing, and service processes.
By integrating direct mail into Agile CRM, you can enhance your multi-channel marketing strategy, reaching customers in a more personalized and impactful way. This combination allows you to engage with your audience both online and offline, driving higher response rates and improving overall campaign effectiveness.
No-code integrations are exclusive to our users on paid plans. Upgrade your Print & Mail edition to gain access, or contact our sales team to learn more.
Utilize External Services to automate direct mail
Lob is pleased to offer an API integration within Salesforce, the world’s #1 CRM. Integrating Lob with Salesforce streamlines your direct mail campaigns by automating personalized outreach, enhancing customer engagement, and driving measurable results directly within your CRM.
With an integration via External Services, any Salesforce user can send automated direct mail, easily and at scale. External Services in Salesforce allow you to connect your Salesforce org to an external API. Using declarative tools and OpenAPI specifications to describe the external API functionality, External Services automatically creates invocable actions within Salesforce.
(Looking for a no-code integration option? See here.)
Download this JSON file (Lob OpenAPI specs) to use in Step 2.
First, create a new legacy credential for Lob.com in Salesforce.
Give it a label, a name, and set the URL field to https://api.lob.com/
Under Authentication, set the identity type to Named Principle, and set the authentication protocol to Password Authentication. In the username field, enter your test or live Lob API key. For the password field, copy and paste an empty character from a website like https://emptycharacter.com/.
Under Callout Options, there are no changes needed to the default selections.
Save the Named Credential.
Next, go to the External Services page and create a new External Service from API specification.
Fill in an External Service Name, an optional Description, then select "Complete JSON" for Service Schema, and select the Named Credential you just created.
In the JSON field, paste the entirety of the Lob OpenAPI specs you downloaded.
Click Save and Next. This will bring up a list of operations that you can do that were imported from those Lob OpenAPI specs.
In this step, we will set up the trigger and corresponding flow; in this example, when a lead is updated in SF, send a postcard from Lob.
Although this documentation uses a postcard flow as an example, you can still follow along for letter and self-mailer creation. (Swap in "letter" or "self-mailer" where you see "postcard" if using those form factors.)
Create a new Flow Trigger explorer and set it as an Actions and Related Records type.
Choose the object field and configure it for when the record is created or updated. (Ensure that Actions and Related Records is selected.)
Add a Scheduled Path called "zero hour delay" and set it to 0 hours after the record is created.
Next, create a new resource called "postcard_payload" with the data type as Apex defined and set it to postcard editable.
Use the Assignment node to map the required fields for creating a mail piece in Lob.
Map merge variables (optional)
If you plan to send creatives as HTML templates, you'll need to map out merge variables. One of the limitations of this integration within Salesforce is in how merge_variables are named. You'll notice that within the <mailpiece>_payload.merge_variables
field that there are parameters variable1
- variable10
listed. This is because there is no way to name merge variables dynamically within External Services for Salesforce.
So to work around it, any HTML templates used with Salesforce can only have merge variables named the same way, variable
1 - variable10
. The values of these can then be set accordingly within the Assignment action.
Back in the Flow, add an Action node to send a mailpiece creation request to Lob's API using the External Service you created earlier.
Map the "postcard_payload" resource to the "body" field in the Action.
Save and activate the flow. (You can debug it by selecting a test record and pressing the Debug button.)
Pro tip: Add a Fault Path for the action in case the SalesForce flow (not Lob API) fails at this step.
From the mail execution action, there was a resource created called Outputs from send_<mailpiece>
. There are three subfields; this data can be used within the flow to map information back into records.
200: the body of the successful request - this includes all data returned in the Lob API response, including "id," recipient information, "URL," "send_date" and so forth
default Exception: if the mailpiece was unsuccessful, including the error message and code
responseCode: the status code of the API request made to Lob, which is useful for making decision trees
Although you have successfully integrated and know where to retrieve output data, it's important to evaluate your responses. It's the difference between knowing whether your request to create a mailpiece was successful or not!
We can see this detail above in the image of a sample Salesforce flow, where we use the "Decision" action to evaluate if the mailpiece was sent.
You can edit the Decision:
Now, you have two forked paths:
success - your mailpiece request was successfully processed
Default Outcome - your mailpiece request failed (for example, because the address passed was undeliverable)
Now, you can add actions to the success path to act on the data you received back from the successful send (Outputs from send_postcard -> 200), or you can add actions to the Default Outcome path and perhaps notify an admin of the reason why the mailpiece request was denied (Outputs from send_postcard -> defaultExc -> error -> message )
Congratulations! You've successfully integrated Lob.com's API with Salesforce using External Services.
There are a number of computing resources that need to be monitored for SalesForce activities in order to ensure uninterrupted operations, Flows included!
These computing resources include:
CPU Time: There is a limit on how much CPU time can be consumed during a single transaction (e.g., 10 seconds). When your flow or other processes exceed this limit, you'll get a CPU time limit exceeded error.
SOQL Queries: Salesforce imposes a limit on the number of SOQL (Salesforce Object Query Language) queries that can be executed per transaction.
DML Operations: There's also a limit on the number of DML (Data Manipulation Language) operations like INSERT
, UPDATE
, DELETE
etc. that can be performed per transaction.
Heap Size: This is essentially the limit on the memory storage space used by variables, objects, etc., during a single transaction.
Callouts: These are HTTP requests to external services. There are limits on the number of callouts that can be made.
Elements: For flows specifically, there are limits on how many elements (like assignments, decisions, loops, etc.) you can have in a single flow.
If a flow exceeds a hard limit (like CPU time), it will be terminated immediately, and an error will be thrown. This can disrupt the business process that the flow was designed to manage. To manage these limitations, Salesforce administrators and developers have to keep a close eye on resource consumption and optimize flows and other customizations accordingly. Using tools like Salesforce Health Check can help you monitor your organization’s performance and stay within limits.
Need support? You can reach us at support@lob.com or submit a request.
Automate campaigns from the Lob dashboard
Easily set up and manage trigger-based campaigns to integrate direct mail into your customer journeys. These solutions are best-fit options for teams that don't have easy access to engineering resources to build a full API integration and would like to connect to their customer data right from the Lob dashboard.
From the Integrations dashboard, users can connect and authenticate their CRM account, then from within the Campaigns tool, manage what changes or events trigger mail and automate the dispatch of individual mailpieces using these triggers.
No-code integrations are exclusive to our users on paid plans. Upgrade your Print & Mail edition to gain access, or contact our sales team to learn more.
Zoho*
More to come! Don't see your tech stack on the list? Please note your interest here.
Starred platforms are in closed beta. reach out to your Account Manager to enable or sign up here.
Once functionality has been enabled in your account, you will be able to execute the following.
From the Integrations tab on the Lob dashboard, you can add or manage available connections. Detailed instructions for each available platform are linked above.
Users can directly create an automated campaign from the Integration section or click the “Create Campaign” button at the top of any dashboard page to launch the campaign creation flow.
When you enter the Campaigns workflow, select the Automated option. This setting means that the mailpiece you create will be automatically sent out when the designated trigger, i.e., the change in the database, occurs. (You will set up the trigger in Step 2.)
In Step 1: Configure campaign, select Postcard, (8.5x11) Letter, or Self-Mailer (other mail types or inventory not available).
In Step 2: Add Audience, you will set up a Campaign Trigger. A trigger is the criteria in your database that signals Lob to create mail
First, you will select the Integration Type, or CRM you have connected to, then indicate the Table where the data resides. Next, specify the Function, or what change Lob will be looking for: A new row is added, A row is updated, or Date-based triggers. You will then have the option to Add Filters from there.
Trigger details
Row/record is added
A new member signs up or creates an account, prompting first touch outreach
Row/Record is updated
Something about an existing recipient has changed, i.e., their email address fell off, their address changed, a status changed (a prospect became a customer, or a customer downgrades), so a mailer wants to reach out
Future Dates
Mailer wants to reach out to customers whose renewal is in exactly 60 days, or falls anytime within the next 60 days
Past Dates
Mailer wants to reach out to members who signed up for a trial 14 days ago and encourage sign up for a paid plan
Filters
Filter by all types of attributes: - string: cities, states, etc.
- dates: birth dates, sign up dates, etc.
- boolean: true false attributes (e.g., Legacy customer = True or False)
- numeric: number of purchases, etc.
“IS” and “IS NOT” are supported
Apply Advanced Settings.
Delay to Print: Timing when the mailpiece gets sent to the recipient
Frequency: If the same household meets the trigger logic, the user can control how many times they want to send this out
Suppression: Do not send mailpiece if the recipient has converted (coming soon)
Next, you will map the required address variables from columns in the CRM. The data for these variables must be in the same table as the trigger.
Then continue your campaign setup: Step 3: Choose Creative, and Step 4: Review campaign.
Your Lob Credits balance must be $25 or more to place an order for an automated campaign.
After you "Place Order" the automated campaign will remain in an "Active" state and Lob will send out the designated mailpiece when the trigger occurs (whenever a selected change in the CRM/CDP happens).
An automated campaign can be managed as you would any other in the Lob dashboard: select Campaigns from the left navigation. Filtering is available and you can click into any single campaign for more detail.
Summary-level and detailed information about your campaign will be displayed on the details page.
Pause Campaign or Resume Campaign at any time by clicking the button on the Campaign detail page. When a campaign is paused, Lob will not produce mail in response to any new trigger matches. Any already triggered/queued mailpieces will still go out.
Mailpieces can be canceled individually or in bulk from the View All Mailpieces tab on the campaign's detail page.
Lob looks for trigger matches and generates mailpieces in response at the following times:
When then the campaign is first ordered
A scheduled job every 30 minutes specifically looking for trigger matches
If you do not see mailpieces, it is possible that the sync job has not occurred yet to look for trigger matches.
Mailpieces that do not match your campaign’s trigger criteria will not generate any mailpiece records. The trigger logic and settings are always available on the Campaign Details page to verify setup.
If you are missing mailpieces and would like additional help, please email us at support@lob.com for assistance.
Lob performs daily checks to ensure that the tables and columns used in your Automated Campaigns are still available. If a table or column used in an Automated Campaign is modified in your integration instance, we automatically pause the campaign and notify you via email.
To resolve this issue, you can either restore the deleted table or column, or rename another table or column to match the original naming convention.
Segment is a platform that captures and stores all first-party customer data regarding your product or service in a centralized place. More specifically, Segment collects events from your interfaces (websites, web apps, etc.), and from that information, helps you create more personalized customer experiences across various channels.
We will plug Lob into our Segment flow by making a custom destination function. Destinations are business tools or apps to which you can send the data you collect in Segment. Depending on which mailpiece form factor you want to send (postcard, letter, etc.), building a destination function that sends it merely involves reading the data and calling Lob’s API. These steps are outlined below.
Make sure you have a Lob account and your API keys. It is highly recommended that you use your (secret) test API key first
Have a creative file ready to use (hosted PDF file or HTML template)
Have your Segment account ready
Learn more about destination functions API at https://segment.com/docs/connections/destinations/destination-functions
In the sidebar, navigate to “Connections” -> “Catalog,” and then click the Functions tab:
Click the “New Function” button:
Under “Select Function Type,” click “Destination,” and then click “Build”:
Enter your Javascript code in the editor on the left, and test your function on the right; refer to the following section on form factors for details. Click “Configure” when done:
Give the function a name (required), description, and logo, and click “Create Function” to save:
The following are sample functions to send a Lob mailpiece from a given Segment event, organized by mailpiece. Segment provides six different event types that destination functions can operate on:
Identify: who is the customer?
Track: what are they doing?
Page: what web page are they on?
Screen: what app screen are they on?
Group: what account or organization are they part of?
Alias: what was their past identity?
The following sample code translates Track events into Lob mailpieces by defining an onTrack function. (For other functionalities, just define a similarly named function, e.g., onPage for Page events.)
Remember to test your mail sent through Segment by using your test API key first. Once you do, plug in your live key, and enjoy sending intelligent, automated mail pieces with Lob and Segment!
Given how useful Segment is for integrating multiple different interfaces for collecting and operating on customer data, this tutorial gives us the ability to add Lob as one of many possible powerful tools for accomplishing data-driven, instantaneous operations on that data. Luckily, plugging Lob into Segment is as easy as making a destination function and using it in your workflows.
Here are two other resources that might help with crafting your workflow:
Zapier gives you the ability to connect Lob to thousands of other business tools - like Slack, MailChimp, Gmail, and Trello - to automate your tedious workflows. In just minutes, you can set up automated Zaps to correct, standardize, and enrich addresses, as well as send automated letters or postcards using Triggers from pre-built integrations.
Zapier integrates Lob with thousands of other business applications
Set up automations, called 'Zaps', to automate repetitive tasks
No coding required
Sign up for a free Zapier account to create automated workflows
Zapier integrations are great for sending mail at small scale, instead of manually, but are not a replacement for a proper integration when sending mail in large batches (hundreds/thousands).
If you are passing in links to image files for your content, use a high availability service like S3 to avoid issues with timeouts. If we are unable to access your content it will not render properly.
Sign up for Lob and Zapier accounts
Connect Lob to Zapier, within the Zapier interface
Connect any other apps/services (for example, where you store customer data) to Zapier, in order to then connect them with Lob
Create custom workflows or leverage popular automations with pre-existing Zaps
Every Zap requires one connected app to be used as the Trigger, which is where your information comes from, and this causes one or more Action steps to occur in other apps, which is where your data gets sent to.
Sign up for a free Lob account. You can send Test API requests for free to start, or instantly begin sending real mail by simply adding a payment method to your account.
Sign up for a free Zapier account, where you will begin building the automation.
Log in to your Lob Account
Log in to your Zapier account
Navigate to "Connected Accounts" from the top menu bar in Zapier
Now click on "Connect new account" and search for "Lob"
Use your Test Lob API Key to connect your Lob account to Zapier
Start with your Test API Key so that you can set up and test your Zap without sending live mail initially.
Once connected, you can start creating an Automation! Use a pre-made Zap, or create your own with the Zap Editor.
Need inspiration? See everything that's possible with Lob and Zapier
Once you've tested your first Zap, all that is needed is switch your Lob API key to the Live Key to begin sending actual mail!
To help you hit the ground running, you can choose from one of many popular pre-made Zaps:
Use Lob’s Zapier integration to automatically send postcards whenever new users are added to your mailing list.
Before starting, make sure to open accounts with Lob + Google + Zapier before starting to create this automation. Here, we will be using a Google Sheets file as our existing mailing list. This kind of setup significantly reduces the amount of manual work needed to send out mail and can be generalized for a number of different situations.
From the Zapier home screen, click on a “Make a Zap!” button to get started
Select Google Sheets in the dropdown of available Trigger Apps, then Choose Trigger: “New Spreadsheet Row”
This means whenever a new row is created in our Google Sheet, Zapier will take an action on your behalf
Connect your Google account to Zapier and give Zapier access to the account
Once your account is connected, test out the connection using the “Test” option. If the connection works you will see the grey “Test” box turn into a green “Success!” box.
Pick a spreadsheet + worksheet to pull information from
As this is the starting point for your automation, make sure that the correct information is being pulled
Once a spreadsheet and a worksheet are selected, Zapier will pick a sample row. If the information accurately reflects what is found on the sheet, select the “Continue” option.
In the next stage, you will configure the action you want Zapier to take after your trigger is initiated.
Continue to build your Zap by clicking on the blue “Your Zap currently lacks an Action step. Add one now!” text. Alternatively, you can also click on the “+ Add a Step” button on the left side of your screen.
Select Lob to be your Action App.
Select “Send Postcard” as the action Lob will take after the Zap is initiated by the Trigger.
Connect your Lob account to Zapier and give Zapier access to the account, so it can take action on your behalf.
Once connected, you may receive a pop-up instructing you to verify this request by entering your Lob API key.
Use your Lob Test API Key; any requests sent with your Test API key will not cause mail to be sent or charges to be incurred. Once the integration is working, you can return to this step and swap in your Live API Key.
Once the API key is passed, you will have the option to test the connection. If you click the “Test” button on the right and everything is valid, then you will see a green “Success!” button.
Fill in the appropriate information needed to complete your mail. Note that some fields are optional and others are required.
The green “Setup Preview” icon allows you to see an example of what your named variable would look like in your Zap. If you do not enable it you will not see an example.
Be sure to you prepare your content images correctly. For this example, we are inserting HTML of the artwork directly into Zapier for both front and back sides of the postcard.
For more information on how to properly set your mail content for Zapier/Lob, see here. Example HTML templates can be found in our Template Gallery.
Alternatively, provide a link to a hosted PDF, PNG, or JPG file
Add the address that will receive this postcard.
We’re going to use Zapier’s named variables function here; this time on the Address.
By using the named variable function, Zapier will pull the corresponding information for me every time a new entry is added to the Google Sheet.
Lob defaults to USPS First Class Mail (a faster option), but Standard Class mail is also an option.
Test the entire Zap (From Trigger to Action) by clicking on the "Send Test to Lob" button.
Zapier will run a test, and once it runs through successfully you will be notified at the top of the page. An additional alert will tell you how long it’s been since the test was successful.
Formally name your Zap and turn it on. If the Zap is not on, then Zapier will not execute against the workflow you set up in Stages 1 + 2).
With Lob you are able to track each step of a mailpiece's journey from production through to delivery. In addition to making these metrics available in the platform, Lob offers webhooks for each event, allowing you to listen to these events and pull this event data back into your own systems. With Zapier, the process is as follows:
Lob sends out a webhook when the mailing gets created
Zapier "catches" the webhook notification
Zapier notifies you that the mailer was created, scanned, delivered, etc.
Webhooks by Zapier can be configured if you have a premium subscription with Zapier. There’s no native integration for outgoing webhooks to Zapier, but there’s a way to catch these events using a generic webhook configuration. You can learn more about Webhooks by Zapier integrations and all the apps that are available for use.
In this example, we will set up a Zap to automate the following: every time Lob sends a new event for your mailpieces—and Zapier receives (the Trigger), Zapier will send you an email notification via Gmail (the Action).
Start by clicking “Create Zap” on the homepage.
2. First you will Next, select the option “Webhooks by Zapier.”
3. Under “Choose app & event,” select “Catch Hook” from the “Event” dropdown options and hit continue. This is what starts the Zap.
On the “Set up trigger” screen that follows, hit “Continue.”
4. A URL will be generated, which you will need to configure with Lob.
When an event occurs within Lob architecture and you have a webhook subscribed to that event type in that environment (Test vs. Live), we will attempt to make a POST
request with the entire event object to the URL provided.
5. Copy the Webhook URL then login to your Lob dashboard; on the Webhooks page, click “Create a new webhook.” Name your webhook, then paste the URL provided by Zapier into the “URL” field.
Then choose the EVENT TYPES you want sent. Due to the inherent limitations of Zapier, we advise selecting from one form factor (postcards, letters, etc.) per Zapier integration. See here for a full list of all available event types that you can subscribe to.
In Live mode, you can only have as many (non-deleted) webhooks as allotted in your current Print & Mail Edition. There is no limit in Test mode.
6. Now click the “Debugger” button on the top right-hand side corner.
The Debugger allows you to trigger webhook attempts to a specified URL with a generated event body. This should mainly be used to determine JSON structure, as all IDs and URLs within the event bodies sent are not real.
Select one EVENT TYPE from the dropdown options, and click “Send.” You should receive a 200 OK response.
7. Now go back to Zapier. Test the connection by clicking “Test trigger.”
8. You should see your event. Click “Continue.”
9. Now select which integration/app you want to Action on. Here we selected “Gmail” to receive event notifications for each mailpiece via email. Select “Send Email” and hit “Continue” to connect your Google account to Zap.
10. Fill in the required fields, and for the ones you would like to map the Lob webhook events to, click the field, select “Show all Options,” and select the option of your choice.
In this example, we want to receive notifications for the event_ID
, date
and time
when this event gets created, and the sender's information on the postcard. Note this will be redacted as this contains Personal Identifiable Information (PII). You can choose any of the fields from the available options that you would like to receive notifications about based on your preferences.
Fill out the rest of the fields where you’d like to receive these webhook notifications, review the contents, and you’re almost done! Select “Publish Zap.”
You should receive an email with the webhook events that you selected.
The last thing needed is to Name your Zap (if you haven’t done so already) and to “Turn on Zap.” If the Zap is not on, then Zapier will not execute against the workflow you set up (Trigger to Action).
11. If all the steps are set up correctly, then you should receive a green checkmark on both “Trigger” and “Action.”
If Zap failed to create, then you will receive a message on where to fix the issue and an additional message regarding the error. Here’s a link to the HTTP status codes that the API would return in case of an error that may help in troubleshooting.
To integrate merge variables on Zapier, you would need to paste the full HTML string directly into the text box, then use the built-in merge functionality from Zapier to insert variable content. This is an example of what that might look like:
Watch the screencast above for more context.
Feel free to email contact@zapier.com for issues on the Zapier side, or support@lob.com for Lob-specific debugging!
HubSpot has a customer relationship management (CRM) tool that helps companies manage their contacts, deals, and tasks.
The HubSpot integration with Lob allows you to automate direct mail campaigns within the Lob dashboard, based on any change within your HubSpot instance.
No-code integrations are exclusive to our users on paid plans. Upgrade your Print & Mail edition to gain access, or contact our sales team to learn more.
Within the Lob Dashboard, navigate to the Integrations page and click on the “HubSpot” tile view the HubSpot details page. Click on the “Connect” button to begin.
This will open a modal to create a new HubSpot account or sign in to an existing one. If you’re already logged into HubSpot in another window or tab, it may auto-detect. Enter the credentials for the HubSpot account you want to connect.
The account used must have permission to share Contact information to authenticate.
After authentication, Lob will begin the ‘Connect’ phase, reading your HubSpot schema. This async process may take a few minutes, depending on the size of your HubSpot instance. You will receive an email when it’s complete.
Once you have successfully connected your Hubspot account to Lob, the label will show “Connected."
After the initial connection, Lob will update to pull the latest schema from your account. Changes to HubSpot objects or columns will be reflected once complete.
This can also be completed manually if you need to pull in these changes prior to building a campaign: From the Integrations page, then the HubSpot Integration Details page, click “Refresh Schema."
Once you’ve successfully connected Lob to your Hubspot account, you are ready to begin the Campaigns workflow. See set up an Automated campaign for a general overview, or watch the detailed video tutorial below.
After the initial connection, Lob will update to pull the latest schema from your account. Changes to HubSpot objects or columns will be reflected once complete.
This can also be completed manually if you need to pull in these changes prior to building a campaign: From the Integrations page, then the HubSpot Integration Details page, click “Refresh Schema."
Microsoft Dynamics 365 (MD365) is an integrated suite of business applications that combines customer relationship management (CRM) and enterprise resource planning (ERP) capabilities. This platform helps organizations streamline their operations, improve customer engagement, and make data-driven decisions.
The integration of MD365 with Lob enables businesses to enhance their operational efficiency by triggering mailpiece creation populated by data within MD365. This ensures a cohesive and effective approach to business process management and customer interaction strategies.
Once in the Azure Portal, navigate to the App Registration page (you can use the search bar at the top to find it.)
Click New Registration at the Top
Set the Redirect URI to
Click on Register to create the application.
Select Manifest tab, in the manifest editor, set the allowPublicClient
property to true
and click on Save.
Select the API permissions tab and then go ahead and click "Add a permission".
Search for and choose Dataverse under the APIs my organization uses tab. If Dataverse is not found, then search for Common Data Service.
Click on Delegated permissions, check the options, and click on Add permissions. This will wrap up registering your app in the Azure Active Directory!
Within the Lob Dashboard, navigate to the Integrations page and click on “Microsoft Dynamics 365.”
Click the “Connect” button to begin.
Client ID is on the overview page
A Client Secret can be made by navigating to the "Certificates and Secrets" tab on the left
Click " + New Client Secret"
Give it a description
The Value is your Client Secret (NOTE: Save this value somewhere else just in case!)
The Organization ID and Environment URL can pulled by your admin in the "Power Platform admin center" page under "Environments."
Click the environment you want to integrate with.
For Environment URL, you will need to prepend with https://
Once you have connected your Salesforce account to Lob, if successful the “Not Connected” label will show “Connected."
Struggling with HTML templates to leverage Lob's personalization feature? Can't find dedicated designers and engineers to convert your designs to HTML with each iteration? Fear no more!
You can now easily import your creative designs from popular design programs and quickly spin up merge variables. Take advantage of our full breadth of capabilities for hyper-personalization and leverage intelligent mail.
Enriching data can help overcome limitations with your digital customer data by adding any missing information or rectifying incorrect information in your database, such as e-mail IDs, phone numbers, physical addresses, or demographic data of your target segment. For example, if you are missing postal information for anonymous site visitors, consider appending your online data to send direct mail for retargeting purposes to take advantage of their potential purchase intent.
We partner with third-party data providers to offer a wide range of data augmentation capabilities for sending direct mail:
In-market lead lists
Website identity resolution
Record completion
Demographic or specialty appends: geographic, demographic, behavioral, psychographic
Lookalike or predictive modeling
Conversion analysis
Our valued partners include:
Coming soon!
By adding direct mail to your customer journey in Zoho, you can enhance your outreach strategy with a personal, tangible touch, making your customer interactions more memorable and impactful. This integration bridges the gap between online and offline communication, driving stronger engagement and deeper customer connections.
This document is intended to provide you with a high level overview of the Inbound Insight and Lob integration and the process for sending mail therein. If you are interested in learning more about either platform, contact the corresponding organization's support team. This information is subject to change as the partnership evolves and more functionality is released.
The first thing you need to do is navigate to the “LOB API” section on Inbound Insight, where you will be able to initiate your send.
After you have entered your credentials, make sure you save them. Once complete, navigate to step 2 - "Set Up Lob Campaign."
Once you arrive on the campaign setup page, it is time to insert all of the details for your campaign. What is the name you will use to identify the campaign? What metadata keys and values will you use to analyze your data inside the Lob dashboard or fetch via API?
Continue scrolling and you will be prompted to select the API key you want to use for the campaign, the form factor, postage type, as well as the from address in the Lob system
After you have entered the relevant information click save and move on to step 3 where you will select your campaign and send off your mail!
A plugin for Figma that converts Figma files to Lob-ready HTML
In order to use this plugin, you will need to host your own creative images and font assets, so that the publicly-sourced URLs may be referenced within your HTML templates.
This feature is currently in beta, and is subject to change without notice.
Create and open a blank design template.
Open the plugin at the top and select the desired mail format. (We currently offer templates for Letters: 8.5x11, Postcards 4x6, 6x9, 6x11 , and Self-Mailers 6x18, 12x9, 11x9)
Click "Create Template"
Now that you have your template set up, you should go ahead and design as you normally would! There are only two things to keep in mind when you are designing.
Mark dynamic text with double brackets. e.g. {{first_name}}
Name Images that should be dynamic with double brackets.
Once your design is ready, it's time to convert that mail piece into HTML. To do so we want to follow these steps.
Hide all guides. They are elements on each page called "_guides
"
Open the Plugin
Select the form factor you are using
Click Export
Once your design is exported, it's time to upload it into Lob. To do so, you will need to follow these steps.
Upload any image assets to a publicly hosted location
You will be prompted that they will need to be hosted and pointed to via merge variable
You can either edit the document and include them inline
Or you can use the provided link merge variable to point to a hosted CSS file which contains your custom font-face stylings
If this process is unfamiliar to you, you may want to consider foregoing the use of custom fonts.
Change local image paths to remote image paths
Copy HTML, and paste into the Lob dashboard, within the HTML Template section
Preview Template
Salesforce Marketing Cloud, not to be confused with Salesforce.com (SFDC), is a marketing automation platform used for managing and executing personalized customer journeys across marketing channels.
Our Salesforce Marketing Cloud integration allows you to create automated direct mail campaigns from within the Lob dashboard, based on any event trigger change within your SFMC account.
Within the Lob Dashboard, navigate to the Integrations page and click on “Salesforce Marketing Cloud” (SFMC) to view the SFMC connection page. When on the SFMC page, click the “Connect” button to begin.
You will be prompted to enter your SFMC account credentials using the client id, secret, and subdomain of the account you would like to connect with Lob.
Your SFMC account / organization must be on a paid SFMC plan.
Lob will read the data extensions, fields, and data types that are available within that profile. This may take some time depending on your SFMC instance. Feel free to navigate away from the Integrations page or Dashboard while it completes. You can check the status on the Integration Detail page in the Integration section.
How to speed this along: The best way to limit data extension access is to create the integration ("Installed Package") underneath a business unit that has a limited number of data extensions. That way Lob will only need to iterate through the shared data extensions for that business unit, rather than all data extensions.
When you have successfully connected your SFMC account to Lob, the label will show “Connected”.
You can find your client ID, client secret, and subdomain inside one of your installed packages:
Your subdomain is a 28-character string that begins with the letters "mc." You can find it within the REST Base URI after the https:// and before the “.auth” portion of the string. In the example above, the subdomain would be mc1111111111111111111111111111.
Follow the steps below to create one to then get your client ID, secret, and subdomain key.
First, open SFMC and click your profile icon in the top right of the screen.
Click Setup under the settings dropdown
Once in Setup, under Platform Tools navigation, click Apps, then Installed Packages
Click New to create a new package if there isn’t one currently installed.
In the New Package Details window, enter a Name and (optional) Description and click “Save”
Within the package, click “Add Component” and select API Integration as the component type; click “Next”
Then select Server-to-Server integration; click “Next”
Within the Server-to-Server integration, select the following properties to grant Lob the ability to gain access to the appropriate data sets to send automated direct mail campaigns from:
Data
Data Extensions: Read, Write
Contacts
Audiences: Read, Write
List and Subscribers: Read, Write
Marketing Cloud Connect
Read, Write
Automations
Automation: Read, Write, Execute
Journeys: Read, Write, Execute, Activate/Stop/Pause/Resume/Send/Schedule
Channels
Web: Read, Write, Send
Event Notifications
Callbacks: Read, Write, Update
Webhooks
Read, Write
After selecting the checkboxes to enable the component properties, click “Save”
You will then see a screen confirming the package information you have just set up, which highlights your Client Id and Client Secret keys within the Components section of the page.
SFMC data will reflect the state of the table objects and fields at the time of the sync. Each night at 12am PST, Lob will run an update to pull the latest data that is available to the user’s profile to which Lob is connected.
This platform is in closed beta. reach out to your Account Manager to enable or
To begin, you'll need to your associated Azure account as an admin. If you do not have an Azure account, you learn how to create one .
Once you’ve successfully connected Lob to your MD365 account, you can from within the Campaigns flow.
Our creative conversion tools are in beta and subject to change we ask that you reach out to your Account Manager or for access and support.
Have a need for other datasets and data providers you don't see on our list? .
This platform is in closed beta. reach out to your Account Manager to enable or
is a versatile CRM platform that helps businesses manage their sales, marketing, and customer support with ease.
No-code integrations are exclusive to our users on paid plans. Upgrade your to gain access, or contact our to learn more.
Before getting started, be sure to take a look at our and in order to ensure you have the relevant details on hand to begin sending mail.
You will be prompted to insert your Test and Live API keys. You can find those keys within your . Paste them in their respective field on the page.
Need help? Contact support at .
This plugin will enable designers to create within a familiar design tool environment, rather than having to code templates in HTML. Designers will no longer have to hand their designs to a developer to make them dynamic; instead, they can use this plugin to have their design instantly converted into Lob-ready HTML, including image and text variables.
You can , but reach out to your Account Manager or for more information or to provide you with access to the tools.
Once you have , you will want to create a new base file by creating a template. To do so follow these steps.
If you are using custom fonts (ie. fonts not available at )
If you have any questions on the plugin, contact your CSM or .
No-code integrations are exclusive to our users on paid plans. Upgrade your to gain access, or contact our to learn more.
Once you’ve successfully connected Lob to your SFMC account, you can from within the Campaigns flow.
You can read more about SFMC’s permission scopes .
Lob is a valued partner of Speedeon, who helps businesses with customer acquisition, lead generation, and growth through data-driven digital marketing solutions.
Reach out to your Account Manager or contact sales if you would like to learn more.
When you send an API request to Lob, you are sending 3 pieces of information:
the "To" address,
the "From" address, and
the content.
Below are some best practices to follow around formatting your address data with Lob.
An address gives the location of a structure or land using identifiers to help with navigation to that location. They also aid in the routing of mail.
The delivery address is the most important information on your mail piece. Use the following format for your delivery addresses:
Name (or attention)
Company* (if applicable)
Delivery address: Line 1, and Line 2* (if applicable)
City, State, ZIP Code, Country*
Items marked with a * are optional.
For more details on character limits etc., reference our API docs or see the Formatting fields and record values in our Campaigns audience guide.
The Address Book is a collection of a customer’s addresses uploaded and stored in our system, which can be accessed in the Lob dashboard or you can leverage the address_id
to retrieve that entry's information programmatically. Rather than passing the full address + mail information in one API call, customers can also pass the address_id
(provided upon creating the address in the address book) that will look for the associated address information. This makes requests faster and simpler.
We cleanse all newly created addresses in order to optimize for maximum deliverability.
All US addresses will be automatically standardized, cleansed, and verified through our CASS-Certified Address Verification system before being returned back to you in the API response.
All international addresses will simply be standardized by being transformed to all uppercase.
Mail requests will be run through CASS and NCOA, as these are requirements for sending with USPS. This may result in the final mailing address being different from the ones you see in your API requests and Dashboard.
The Coding Accuracy Support Systems (CASS™) certification process is designed in cooperation with the mailing industry to improve the accuracy of postal codes, i.e., Five-Digit ZIP Code, ZIP+4, delivery point codes (DPCs), and carrier route codes that appear on mail pieces.
Lob is CASS™ certified (Cycle O) to ensure your addresses are standardized before any mail is sent.
National Change of Address (NCOALink) is a service offered by the USPS, which allows individuals or businesses who have recently moved to have any mail forwarded from their previous address to their new address.
Addresses will be corrected to reflect an individual's or business's new address in the case that they have moved (only if they have registered an NCOA with the USPS). The National Change of Address (NCOALink) database check only runs for US-based addresses. It does not run for non-US addresses or for non-deliverable US addresses. For more visibility of address changes, learn more about additional NCOA functionality offered here.
You cannot edit any existing addresses via the dashboard or API request. You can however delete the current address and add a new one with the updated information. For more details on adding a new address to your address book, refer to the API documentation.
If you are interested in mass-deleting addresses, you will need to set up a delete address request script. See more details on deleting in our API documentation.
Note that Lob is not permitted to add or delete addresses on behalf of customers.
Autoverify is included in all US Print & Mail subscriptions. Lob verifies the deliverability of all addresses before sending a request to our print partners.
Depending on what business logic you'd like to take, based on your verification result, you can toggle your US address strictness settings in your Lob dashboard. There are three possible strictness levels: Strict, Normal, and Relaxed.
Learn more about the importance of mail strictness settings and how to adjust them as required by your business.
The purpose of including "Current Resident" as the recipient of your mailpiece is to ensure that your message reaches its intended audience. This serves well in a case in which you're uncertain that the person(s) living at that address are the intended recipients and you do not wish to risk offending the current residents by potentially sending someone else's mail. Using the phrase "Current Resident" can be a good idea if your mailpiece is time-sensitive and the recipient may be variable.
To make an informed decision on whether or not to include the phrase, consider the purpose of your mailpiece and your target audience:
If your mailpiece is intended to be a personal communication or a marketing message that relies on building a relationship with your audience, then you may want to avoid using the phrase "Current Resident." Learn more about dynamic personalization here.
On the other hand, if your mailpiece is informational and the message is more important than the recipient, then you may want to include the phrase, as any recipient can still respond.
To indicate your recipient as "Current Resident," simply provide that as the name
value where you would normally input a recipient's full name.
Utilize Lob’s Target Audience product to build audience lists targeted to specific geographic locations and demographic traits. A name is the only required field for your audience, but we recommend utilizing our targeting capabilities for the best results.
You can search a location by address, city, state, zip, or landmark. The search box will return a list of locations that match your search, and you can click the result that you would like to move forward with. Once a location is selected, it will appear under the location search box, and you can edit the name of the location and radius targeting from there. You can also manually pin a location by clicking the pin icon on the map and then clicking where on the map you want to drop the pin. You can search for or pin as many locations as you need to target, and if no location is added to your audience request, the entire US population will be included. Below locations, you'll find all the demographic traits that we offer. You can target as many as you need for your audience.
Exclusion lists allow you to avoid purchasing addresses for customers you already have access to. This feature is as simple as uploading a csv of the customers you would like us to exclude from the audience we build for you. The csv can have postal addresses, email addresses, or phone numbers. The more information that is included in the file, the higher likelihood that we can successfully find and exclude the customers.
After your exclusion list is successfully uploaded, we ask you what information is in the file, and then we ask you to tell us which columns in your uploaded file map to our required fields.
After your desired filters are selected, click “Submit Audience Request” to actually submit your request. There is no cost to submitting a Target Audience request. You will be notified by email when your list is ready, and at that point, you can choose to proceed with purchase or not.
To see your requested audience lists, go to the Requested tab on the Audience Lists table. When a list has a status of "Processing", this means that we are still working on building the audience for you. When a list has a status of "Ready for Purchase", this means that the the count of records and cost of the list is ready for your review. All requested lists will be available for 14 days, and then they will be permanently deleted if no purchase is made.
You can click on any requested audience to go to the detail page for the request. The detail page will show you a summary of the audience request, the total number of addresses, and the total cost for those addresses. On the right side, you'll have the option to buy the full audience list or to buy a subset of the audience list. If you select the subset option, you'll need to tell us what your budget is for purchasing this audience, and we will automatically calculate how many addresses you can buy within that budget. Clicking "Place Order" will complete the purchase, so please ensure you have reviewed all details in advance.
To see your purchased lists, go to the Purchased tab on the Audience Lists table. You can click on any purchased list to go to the detail page where you will see an "Export" button in the top right corner. All audience lists will be available for export in the Lob dashboard for 180 days from the purchase date, and then they will be permanently deleted.
Lob Audience is the ultimate audience targeting tool for direct mail, enabling you to buy customized audience lists through a streamlined self-serve experience.
Click on the “Audience” navigation and then on the “Audience Lists” sub-nav. From here, you can view all your purchased audiences, requested audiences, or create a new audience.
To create a new audience, click the “Create Audience” button at the top right of the Audience Lists page. From here, you’ll be brought into the Target Audience creation flow.
The first step to any successful direct mail program is the ability to piece together an audience list for effective targeting. This is because reaching customers with direct mail that is relevant and contextual to their needs can maximize your responses and lead to high channel ROI.
The days of sending mail indiscriminately to every household within a given area using the "spray and pray" method are long over. However, good audience segmentation and targeting is heavily dependent on having quality data, which can impact how your mail is planned, produced, mailed, and converted.
Lob provides various ways to improve your address data hygiene and deliverability, offers connections to your existing customer database, and can augment your first-party data with additional datasets to increase reach.
How to check/save files in compliance with Lob’s PDF guidelines
Preflight is a print industry standard term for checking files for things that might cause issues in the physical output before you start the printing process. It is however NOT a standard set of checks or ways to solve those problems. Every printer has its own flavor of Preflight that does the checks and/or resolution steps in a different order.
Lob’s preflight module requires each file to meet the PDF-X/1a standard. PDF-X/1a is a standard for creating reliable and predictable PDF files for print production. (The "X-1a" part refers to the specific version of the PDF/X standard, which has certain requirements and restrictions to ensure compatibility and consistency.) To render and execute your campaigns quickly, and at scale, our ability to audit every file is limited. We run an automated check—where fixes are automatically applied—but in doing so, it may negatively impact your mailpieces.
To ensure each mailpiece is rendered exactly like you intend, please submit print-ready files by following the preflight checklist below.
Please note the Lob can and cannot support.
Fonts must be outlined (preferred) or Fonts that have not been outlined or embedded might change or render incorrectly, specific letters may be substituted with incorrect glyphs.
See also: How to download a profile on Acrobat to remove the printer marks on.
Customers must meet certain requirements to access this additional NCOA functionality. Please review the below and reach out to your Account Manager to see if you are eligible.
National Change of Address (NCOA) is a service offered by the USPS, which allows individuals or businesses who have recently moved within the US to have any mail forwarded from their previous address to their new address.
As a CASS-certified Address Verification Provider, all mail sent through Lob Mail will be run through CASS and NCOA, as these are requirements for sending with USPS. Addresses will be corrected to reflect an individual's or business's new address in the case that they have moved (only if they have registered an NCOA with the USPS). The National Change of Address (NCOALink) database check only runs for US-based addresses. It does not run for non-US addresses or for non-deliverable US addresses.
Lob also offers additional NCOA functionality to our Print & Mail customers, providing more visibility. Customers must meet certain requirements in order to access this functionality; please review the below and reach out to your Account Manager to see if you are eligible.
In order to have the Lob NCOA report feature enabled, our customers must sign a Processing Acknowledgement Form (PAF), which is required by the USPS. NCOA reporting cannot be enabled if a PAF has not been signed.
Reach out to your Account Manager to see if you are eligible to sign a PAF.
Due to privacy concerns and USPS constraints, for customers with the NCOA feature enabled, our API responses for a limited set of endpoints differ slightly in the case when an address has been changed through NCOA.
With Lob NCOA feature enabled, there are no changes to API requests sent to Lob. This is true whether you are using our client-facing libraries, or making raw HTTP(S) requests to our API. If you have Lob NCOA reporting enabled, all live API requests to the following endpoints will be run through NCOA. However, there are some changes to the API responses for the following endpoints:
POST /v1/addresses
POST /v1/checks
POST /v1/letters
POST /v1/self_mailers
POST /v1/postcards
POST /v1/campaigns
POST /v1/uploads
Though there are no changes to API requests received, there are significant changes to our API responses, but only in the event that an address has been changed through NCOA. If an address has not been changed through NCOA, the response would be identical to our standard API responses, except with the addition of a recipient_moved
field, which is false
for unchanged addresses.
Due to the USPS constraints mentioned above, if an address has been changed through NCOA, we are required to suppress the following response fields for that address:
address_line1
address_line2
The +4 portion of the ZIP+4 (5-digit ZIP code will still be present).
How do I know if an address went through NCOA?
The black boxes in the address block mean the address went through our National Change of Address (NCOA) process. If you ever see the primary and secondary lines blotted out but not the city, state, and zip (without plus 4), that likely means it has gone through NCOA. If you’d like to know if an address went through NCOA, you’re also welcome to reach out to Lob support.
Below is an example of how this would look like in your Lob dashboard.
In addition, if an address has been changed through NCOA, the address will have a recipient_moved: true
flag. For more details about the response format, see the NCOA information in our API docs.
In addition to our API responses, the suppressed fields will (almost) always be suppressed in other places within the Lob platform as well. This includes:
In the PDF proofs and thumbnails generated for Print & Mail requests
In Exports for Postcards, Self-Mailers, Letters, Checks and Addresses resources
API Logs & Event Logs
Webhooks
Dashboard Search
There are two locations where these fields are not suppressed:
In the physical mail piece that will be sent to your customer.
In an NCOA export from the Lob Dashboard (discussed in more detail below).
The NCOA export is the only way in which you will be able to access the suppressed response data for addresses that have been changed through NCOA.
In order to allow our customers to access NCOA'd data, the USPS has given us the following constraint:
Customers must send at least 100 addresses through NCOA within one week in order to gain access to NCOA'd data.
This means that in order to access this data, you must send at least 100 live API requests in a one-week time span to any of the following endpoints:
POST /v1/addresses
POST /v1/checks
POST /v1/letters
POST /v1/self_mailers
POST /v1/postcards
POST /v1/campaigns
POST /v1/uploads
Additionally, the USPS has defined a "week" to be the following time ranges:
1st-7th of the month (inclusive)
8th-14th of the month (inclusive)
15th-21st of the month (inclusive)
22nd-28th of the month (inclusive)
29th-30th or 31st of the month (inclusive, when a month has more than 28 days)
Once you have sent at least 100 live API requests in a one-week time span, you can access suppressed data through an NCOA export, which can be accessed in the Lob Dashboard Settings, under the Reporting tab.
Once in the Reporting Tab, you can select any week from the previous month or the current month, and generate an export for that week. Additionally, you have the option of only exporting addresses that have been changed during the NCOA process. This option is selected by default, as this tends to be the more useful option.
Once you have clicked the "Export" button, an email should arrive in your inbox with the exported data. Depending on how many requests you've sent and how many addresses have been changed through NCOA, this can take anywhere from a few seconds to a few hours.
The export is a CSV, which has the following fields:
id
- The Address ID (not the mailpiece ID) for the address that has been changed.
name
- The name
passed with the API request.
company
- The company
passed with the API request.
phone
- The phone
passed with the API request.
email
- The email
passed with the API request.
address_line1
- The full, unsuppressed address_line1
, which represents the new address for the recipient.
address_line2
- The full, unsuppressed address_line2
, part of the new address for the recipient.
address_city
- The city of the recipient's new address.
address_state
- The state of the recipient's new address.
address_zip
- The ZIP code (including the +4) of the recipient's new address.
address_country
- The country of the recipient's new address. Always UNITED STATES
.
metadata
- The metadata associated with this address.
date_created
- The timestamp this address was created.
One important thing to note is that the export only includes an address ID, and not a resource (postcard/self-mailer/letter/check) ID. This means that you must keep track of address ID for inline addresses created in Postcard, Self-Mailer, Letter and Check requests.
Usually, NCOA records get updated once every two weeks contingent on USPS updating their internal database. Since this is a recipient-led process, Lob does not have control over how often NCOA changes happen nor how often the database is updated by USPS.
Whenever you send a mailing through Lob, you reap the benefits of accurate address cleansing and verification powered by our CASS-Certified Address Verification API. Verifying addresses is a necessary part of sending mail at scale, to optimize the efficiency and accuracy of your mail delivery.
Note: All measurements are in inches, denoted by the double prime symbol (e.g. 4"x6").
The sizes of our mail pieces and their respective print layout requirements can be found in each respective section of the Mailpiece design specs in the Help Center. Note that the API will return an error if you input a non-HTML file with the incorrect dimensions.
In the above postcard, you'll notice that the file that you are sending to Lob is actually 4.25" x 6.25" instead of 4" x 6". This extra space is what we call the Bleed Area. The Bleed Area is included in postcards and self-mailers to ensure that creatives get printed all the way to the edge. This is because the creative gets printed with slightly larger dimensions than the actual card area and is subsequently trimmed down in production. Backgrounds and graphics should be extended into the Bleed Area. If they don't extend into the Bleed Area, it can result in a white or unprinted border on the edge of the postcard or self-mailer.
There is no need to include crop marks in your submitted content.
The Trim Zone captures the finished size of a mail piece, which will result from the printer trimming down a larger sheet of paper. Artwork that extends into the Bleed Area will be trimmed down to the size of the actual mail piece.
Keep all critical text and artwork within 1/8" from the edge of the final size to ensure no important content is ever trimmed off.
On our artboard templates, there is a space marked as *RED: INK-FREE AREA* on the backside of the mail piece. Anything in this area will not be printed, as this space is where the postage and address information will be printed during the production process.
Address blocks for 4" x 6"
postcards measure 2.375" x 3.2835"
, and all other postcard, self-mailer, and snap pack blocks measure 2.375" x 4.0"
.
On letters, the address block is 3.15" x 2"
and is located 0.6" from the left edge and 0.84" from the top edge. A white box will be printed, upon which will be printed the address and barcode information. Any content in this area will be covered and will not be visible.
On checks, the check itself will be printed at the 8.5" x 3.625"
area at the top. This area must thus be left blank. Anything printed in this area will not be printed to leave room for check details, including address information, payment amount, signature, and bank routing numbers. All text and important information should be included within the safe zone of the check bottom or check attachment pages. Special characters, such as emojis, should not be submitted for the address block.
Lob is committed to setting a new sustainability standard for direct mail and helping our customers and partners meet their sustainability goals. Lob has partnered with USPS to include a Carbon Neutral Mail certification to help customers demonstrate to their end-recipients that they are sending mail in an environmentally responsible way.
The Carbon Neutral Mail certification will automatically be included within the official use address block of postcards and self-mailers. (Support of this certification may be expanded to other mail types printed by Lob in the future.) It will not impact your workflow or the way you design your creatives in any way.
The certification measures 0.349" x 0.349"
, and is printed in either full color or black & white, depending on the letter settings. Address block placement and measurements for applicable formats can be found below. You will be able to see the Carbon Neutral Mail logo in the proof PDF.
For any questions on our Carbon Neutral Mail certification, reach out to your CSM or support@lob.com.
On postcards or self-mailers, the Carbon Neutral Mail certification will be placed between the return address, postage indicia, and IMb, within the address block.
This red area in our templates represent a white box, which will be printed on top of all submitted artwork to hold return and recipient addresses as well as the IMb information.
Be mindful of where the red address box of ink-free zone is placed on different-sized postcards and self-mailers in relation to the edge of the actual mailpiece (trim), as well as the middle fold for folded self-mailers.
Address block size: 2.375" x 3.2835"
Placement within red box:
From right: 1.33"
From bottom: 1.69"
Address block size: 2.375" x 4.0"
Placement within red box:
From right: 1.33"
From bottom: 1.69"
On letters and checks, there is a small QR code and a set of sequence IDs that will be printed on the bottom left corner during the mail production process, which are used as part of Lob's internal quality control process. These codes get scanned by cameras on our printers to ensure that the correct pages go into each corresponding mail piece as they get inserted into envelopes. They will both appear on each page that contains content, and cannot be removed.
While the red zone around the QR code is 0.5" x 0.5"
large, keep a 0.58" x 0.58"
sized area at the bottom left corner of the letter clear of any content as it will be covered and obscured by a white box that will be printed around the QR code.
Sequence IDs itself are 1.45" x 0.09"
long, and is located 0.3" from the left edge and 2.2375" from the bottom edge of the page. Any content behind the sequence ID will be covered and obscured by a white box that will be printed to make the ID legible.
Plan your artwork submissions accordingly by avoiding printing any important text or artwork in the area saved for the printer QR code and sequence numbers.
The Intelligent Mail barcode (IMb) is a 65-bar US Postal Service barcode used for mail sorting and tracking. It includes the routing ZIP and tracking information. USPS requires the use of the IMb in order for Lob's mail to benefit from automated processes.
Stamp or indicia artwork: There is a risk that the USPS will reject mail that includes artwork that resembles a stamp or fake indicia.
Postcards & self-mailers: Indicias are automatically printed within the address block (see above section). Fake indicias should not be part of your submitted artwork elsewhere.
Custom envelopes: There is no need to include indicia outlines in your artwork for the risk of rejection.
Artwork near the indicia: Artwork (such as eagles or American flags) is sometimes added to the left of an indicia box to add a sense of importance or urgency to a mailed piece. A 0.125" clearance on all sides from the indicia is necessary for this addition.
Lob will print the actual indicia in the address block area.
Leave enough space near indicia. No need to show the indicia box in artwork submissions, as Lob will print the indicia at the time of printing.
We do not recommend placing any address in your creative in the bottom 2.375" of a mailpiece opposite the address panel. This will prevent the USPS from accidentally scanning the wrong side of the mailpiece.
In the following example, promotional text (in the form of an address) included on the opposite side of the postcard could be mistaken by USPS scanners for the "To:" address.
Instead, if you would like to include a promotional address in your creative, we recommend you:
Place it above 2.375" from the bottom OR
Choose light text on a dark background (to clearly distinguish from the address/postage block)
The foundation of any effective marketing campaign strategy is to have a specific and defined audience of contacts. Creating a targeted audience list by utilizing important customer data, such as past purchase history, product engagement or site interaction, or loyalty or subscription data, can be an effective way to test your marketing performance.
As you export your campaign audience list to bring it into Lob, keep the following guidelines in mind when using the Campaigns feature, either in the Dashboard or the API.
All CSVs, or comma-separated values, are required to contain recipient address data. If you are using HTML templates with merge variables for your creative, your CSV must also include merge variable data.
Files must have a .csv filename extension and must not exceed 5GB. Also note, though this is typically already the default, UTF-8 encoding is required for CSV files.
CSV output will always start with the first row returning the column field names. Then the data itself will follow as CSV records.
Whitespace characters (spaces, pilcrows, and carriage returns) will be trimmed at the start and end of each value to ensure we can process the CSV. For example, " John Doe " will be trimmed to "John Doe". Any whitespace characters inside the value will not be trimmed.
You are not required to name your columns to Lob's naming convention, as you can easily map them in the Dashboard. However, any fields that use Lob's naming convention will be automatically mapped. The Lob naming convention for CSV column headers are indicated below in bold.
name
: Recipient name must be 40 characters or less
Note the name as it appears in this column will appear in the "To" field in the address block on your mail piece
If more than 40 characters are needed, you can also utilize the (optional) company
field; when both are provided, they will be printed on two separate lines above the rest of the address.
address_line1
: Must be 64 characters or less
address_city
: Must be 200 characters or less
address_state
: 2-letter US state short-name code (e.g. CA for California)
address_zip
: Must follow the ZIP format of 12345 or ZIP+4 format of 12345-1234
Lookout! MS Excel and Google Sheets may attempt to drop leading zero.
Any merge variable data
When using merge variables that point to a URL, like images or custom fonts, ensure the link is public and can be accessed by Lob
address_line2
: Must be 64 characters or less
company
: Must be 40 characters or less
address_country
: Must be in ISO 3166-1 alpha-2 convention (e.g. US for the United States of America)
Tagging your mailpieces with metadata can help identify and group your mail sent in any given campaign for easier reporting and attribution. While optional, if you choose to add metadata tags, you cannot add more than 20 Key-Value pairs. Keys can be at most 40 characters and values must be at most 500 characters.
Recipient metadata: is passed in the CSV and applies to each individual row, or recipient. Recipient metadata is great for tags that are specific to each recipient of mail, like state:NC
or first_name:John
.
Recipient metadata can be passed in the CSV one of two ways:
As regular column data: You can use any number of the CSV columns as metadata for your mailpieces such as “name”, “address_line1”, etc. The values for this column for each row should be regular text and not JSON formatted. See our API documentation on how to use more than one column from your CSV file as metadata.
Example: If you have a column header in your CSV file called “recipient
” and the value of the cell for this column in the first row is “john_smith
”, then the metadata that gets attached to your mailpiece for this row will be “recipient: john_smith
”
In multiple columns, prefixed with metadata_
. For example, your file could have metadata_key1
and metadata_key2
columns, and then the values that correspond to each mailpiece in each row.
This is different than Campaign Metadata
It is configured on the POST /v1/campaigns
API call or in the Lob dashboard, on the Campaigns Configure Settings screen in Step 1 at the bottom in the “Add campaign-level metadata tags” section.
Note: Campaign metadata is not configurable within your CSV
Each individual mailpiece created through the campaign will inherit Campaign metadata. This is ideal for tags you’d like to apply to an entire campaign and can be set in Step 1.
Only 1 of the above methods can be used at once. If you have a column name prefixed with metadata_
in your CSV file but you’ve also selected a regular column to be used as metadata for your mailpiece, then the the values from the metadata_
prefixed column will NOT be used. We prioritize the manually selected columns to be attached as metadata.
If you have not manually selected any column from your CSV file to be used as metadata and the CSV file contains a metadata_
prefixed column, then the data from the metadata_
prefixed columns will be used as metadata for each mailpiece automatically.
Column names prefixed with metadata_
DO NOT need to be manually selected as metadata. They are automatically applied. If you would like to manually select this column, then simply remove the metadata_
prefix from the column name.
See Using Metadata to learn more about how this powerful feature can help parse your mail.
Upload your CSV file in Campaigns > Step 2: Add Audience.
When sending the POST
or PATCH
request to the /v1/uploads
endpoint, you will need to pass in an array of key-value pairs in the requiredAddressColumnMapping
property. The keys will be the Lob-required field names, and the values will be the column headers in your CSV.
For the other properties that you can pass in the payload, refer to our API documentation.
Example: POST /v1/uploads
Within campaigns, you're able to choose if you'd like to have a single return address or a personalized return address for your recipients. A return address is optional depending on the form factor (e.g. Postcards), but required for other form factors (e.g. Letters).
A single return address allows you to select a return address that you have created within Lob, to use across all of your recipients in your campaign. In this case, every recipient will have the same return address on their mail piece.
A personalized return address allows you to have a unique return address for each recipient within a Campaign.
Within the campaign flow, in Step 2: Add Audience, a block will appear to set up your return address after you have added your audience to the campaign. The default option is to use a Single Return Address, or you can select Personalized Return Address.
When you select Personalized Return Address and new mapping fields to map the return address values will appear if you have already uploaded your audience file. Similar to the address mapping for a recipient delivery address, the return address mapping connects to the CSV file uploaded in one-time campaigns and the integration table for automated campaigns.
If you have Personalized return address selected, then the fields below will be required in order for you to submit the campaign:
Default return address
If there is any data field missing in your audience file for a particular recipient, the default return address will be used as a fallback option to still produce a valid return address on your mail piece.
Return_address_name
The name (first/last) for the return address
Return_address_line1
Return_address_city
Return_address_state
Return_address_zip
Optional return address fields can be added to the return address, but are not required to be filled in to submit the campaign:
Return_address_line2
Return_address_company
Return_address_country
Required fields are denoted in the UI with a red exclamation icon, whereas the optional fields show a gray exclamation icon.
Similar to the recipient delivery address mapping, if your audience file includes the column headings that match the return address variables above, then we will auto-map these variables together. If we can’t detect which column to auto-map to, then you will need to manually map these fields together to properly connect.
You cannot use the same return address column data as used in a recipient address delivery field. For example, if you have an “address_line_1” column in your audience file and you map that to the recipient address line 1 field, you can’t also use that same address_line_1 field for the return address line 1. In this case, if you have already used that field in another mapping, then when you go to select that column in the return address mapping it would say “already mapped”. There's handling in place that prevents a user from mapping the same address to a recipient to the return address so that a customer doesn't go around the return address in a way they aren't supposed to. When you have all of the mapping implemented correctly you should see a green success indicator for each return address field and no more red exclamation icons.
After you have successfully added and mapped your return address fields on step 2 of campaigns, you will see a confirmation of the field mapping on step 4 of campaigns. Verify the information in step 4 for your return address is correct. If you haven’t done so already, we recommend you generate a creative proof to have a full preview with the address data inserted on the address block for the return address.
After you submit the campaign, in the campaign details page, select the details tab to view the return address details that were submitted with the campaign. At this point, each mail piece created from the campaign will be using a return address based on the mapping you had outlined.
Merge variable data (if applicable) is mapped in Campaigns > Step 3: Choose Creative
This can either be configured in Step 2 during the initial POST
request or updated using a PATCH
. When sending the request, pass in an array of key-value pairs in the mergeVariableColumnMapping
property. The keys will be the merge variable names defined in your HTML template and the values will be the column headers in your CSV.
Example: POST /v1/uploads
When uploading your CSV audience file, ensure the filetype is correct.
To ensure compatibility, ensure your CSV is UTF-8 encoded (Unicode).
Your file should have an extension that ends in .csv.
In rare cases, your file type might appear to have a .csv extension but actually be saved in a different, unsupported format.
Avoid opening up your audience CSV in a spreadsheet program like Excel if possible.
If you do need to open the file, avoid saving the file or making updates. These programs will automatically make changes to your file when saved, which could potentially cause issues on upload.
Stripped leading zeros for zip codes are the most common issue. For example, the program turns Zip Code 07751 into 7751. Zip codes that begin with “0” are in the Northeast, specifically CT, MA, ME, VT, NH, NJ, RI.
Avoid line breaks in your audience file to prevent your CSV from being rejected.
If you need line breaks as part of a merge variable, consider using two merge variables at this time.
Avoid commas in your audience file to prevent your CSV from being rejected.
Check if your CSV file has commas that are separating values that belong in unique columns per the specifications above.
Every form factor starts with your creative, or the content of your mail piece. Lob’s core technology is built around modern APIs that remove the typical complexities and limitations of the print and mail industry. We can accept static PDFs, but similar to email sends, HTML enables dynamic personalization so each and every mail piece is unique.
Artboard or layout templates can be found under each mail format (see Mail piece design specs). Or, visit Lob's Template Gallery on our website for pre-designed templates to help you get started; you can download these to use as inspiration and a guide to create your own designs.
We recommend designing your direct mail in HTML to enable personalized content at scale. HTML allows you to include dynamic merge variables, similar to how you would personalize an email campaign, to maximize engagement and conversions.
See dynamic personalization for more details on how to take advantage of HTML and merge variables.
You can submit your creative file in PDF format, but keep in mind that PDFs are static and don’t support personalization.
We ask that you follow our PDF formatting guidelines outlined in our PDF preflight checklist to help ensure successful and accurate printing. Here are some tips to create print-ready PDFs with InDesign.
All fonts in any PDFs you provide should be embedded. Embedding a font in a PDF ensures that the final printed product will look as it was designed. Fonts can vary greatly in size and shape, even within the same family. If the exact font used to design the artwork is not used to print, the look and placement of the text is not guaranteed to be the same.
We make an exception for "standard fonts," a set of fonts that we have identified as being common. Otherwise, the request will be rejected. See our full list of supported PDF Fonts in our API docs.
We support the following web font formats:
TTF
SVG
EOT
Google web fonts
Custom fonts within your HTML templates (any links must be accessible to Lob)
OTF (Can be converted into another type we support)
Type 1 fonts (Exception: standard base14 fonts)
Type 3 fonts
Adobe (Typekit) fonts (These fonts require white-listing a specific domain, which Lob is unable to do. We recommend hosting the font yourself and using it within your HTML, or finding an appropriate non-Typekit font to replace it with.)
PNG: This is a raster image format that can have a transparent background. It is generally of higher quality than other image formats.
JPEG: This is a raster image format that is often used for photographs. It does not allow for a transparent background.
When using PNGs or JPEGs with Lob, we require a minimum of 300 dpi. The dpi is calculated as (width of image in pixels) / (width of product in inches) and (length of image in pixels) / (length of product in inches). For example: 1275px x 1875px
image used to create a 4.25" x 6.25"
postcard has a dpi of 300. It is also recommended that you don't greatly exceed 300 dpi, as this will result in unnecessary additional file size.
Submitted images must have the same length-to-width ratio as the chosen product. Images will not be cropped or stretched by the API.
When you pass an image or send HTML in your API request, Lob will then render and host the content.
If you are sending at high volumes, we recommend you host the content yourself on a performant file hosting provider, such as Amazon S3, and send Lob a hosting URL to the content in your API request. This will reduce your API request time.
All URLs must be accessible. For example, broken links, missing files, and incorrect permissions will all cause mail pieces to fail. See here if you are experiencing rendering errors.
We highly recommend using the Adobe Creative Suite (Adobe Illustrator, Photoshop, or InDesign) to design your content. This will give you design flexibility and multiple export options.
Please note that PNG files are RGB only—to prepare a file for printing, our rendering engine must convert this color profile to CMYK. During this conversion, there may be a slight variance in color that would impact the print result. If you require a very specific color experience (to abide by brand guidelines for example), then we recommend providing a PDF file and/or evaluating the color in Adobe Photoshop Pro.
If you want to take advantage of the personalization opportunities of HTML, we recommend using a developer to convert your PDF designs to HTML. We'd estimate 15 minutes to 2 hours of development time for the average file. Some applications like Adobe Illustrator come with HTML export options, but note that their exports won't typically produce HTML that conforms to Lob's requirements.
Need help with converting your creative files to HTML? You can now easily import your creative from popular design programs and quickly spin up merge variables. See Creative conversion tools for more info on our design tool integrations.
To see how your HTML is rendered, create a Test API request either through the API or view a preview in the dashboard (HTML templates). Lob's HTML renderer is based on Webkit. For this reason, using the Safari browser will show previews more accurately.
This works for PDFs as well as long as the submitted PDF follows our guidelines. If a PDF not following guidelines is submitted, the rendered proof may not reflect the final printed product.
If using Campaigns in the dashboard, the Creative Proof will render and present a single mail piece. (It will include merge variables, address block, Lob carbon-neutral logo, and indicia, plus return address and QR codes if included.)
We highly recommend sending yourself a printed piece to validate the mail piece's appearance.
Best practices when exporting a PDF from InDesign
If you use Adobe InDesign to create PDFs for Lob, you can use this video to do some checks on your creative before it is sent to Lob.
All fonts in your PDF should be embedded. If you are having trouble embedding your fonts, this is most likely because of a licensing issue. The preferred resolution would be to find/renew the font license but if that is not possible, you can always use InDesign to create an outline of the text. Remember that this option is to be used sparingly because it dramatically increases the size of the resulting PDF. (By default InDesign will embed fonts when exporting PDFs.)
Image resolution should be 300 dpi for the best print quality; the video will walk you through adjusting the resolution.
Images must use a CMYK color profile: GRACoL 2006 or GRACoL 2013. This will make sure that colors show up correctly in the final printed product. Setting the correct color profile also goes for any artwork/pictures that you import into InDesign as well.
Flattening the transparencies is VERY IMPORTANT. If you fail to do this, certain artwork/pictures won’t show up in the final printed product. Make sure to set the option to “High Resolution” to cover any edge cases that may show up in your PDF.
Keep your file size under 5MB. Tips on saving space include using text outline sparingly, not using a giant picture as the background, and making pictures/artwork the same size as will be used in the design.
Run a diagnostic on the generated PDF. If you have Adobe Acrobat Pro, you can use the Preflight function under the Edit menu to run a report on your PDF. This will alert you to any issues. Set the profile to the “PDF-X/1a (GRACoL 2006)” and select “Analyze and Fix”. See our full PDF preflight checklist here.
Lob occasionally encounters problems with the creative when rendering mailpieces; this can occur with either PDFs or HTML. To avoid sending out erroneous mailpieces, Lob provides visibility of these errors, with proactive notification of rendering errors in place.
We always recommend testing; and where possible, sending yourself a printed mailpiece.
Lob will fail HTML that includes inaccessible assets (images, fonts, any other URLs):
the link to an asset is incorrect
the asset referenced in the file is missing
Lob has not been given the correct permission to access the asset (ensure that the link is set to public viewing, and not private)
when a remote asset references a local asset (for example, a remote asset is at www.example.com which then references something local in that directory)
slow or under-resourced server providing the asset (we recommend using a performant service, such as Amazon S3, to host the content)
If your HTML contains an inaccessible asset, your HTML preview will error. Details of the error will be displayed in a future release.
When creating your Campaign, you may be notified when you generate a Creative Proof (if the sample mailpiece that is rendered results in an error); if this occurs you should troubleshoot against the above list.
After placing the order, you will be notified in the dashboard, and the reason for the error will be provided (click to enlarge):
The Lob support team will proactively reach out.
API customers will receive an error notification in the API response.
The Lob support team will proactively reach out.
Under Webhooks in the dashboard, in the Live environment, click Create.
Check [formfactor].failed; click Create.
If subscribed to postcard.failed, letter.failed, and/or check.failed, and Lob fails an order during rendering, the following error messages are possible:
"Rendering failed due to asset issue:
The requested asset was not found: <asset link>"
The requested asset is not permitted: <asset link>"
Authentication is required to access the requested asset: <asset link>"
An internal server error occurred for: <asset link>"
The requested asset timed out: <asset link>"
An unknown server error occurred for: <asset link>"
The requested service is unavailable for: <asset link>"
An unknown error occurred for: <asset link>"
If not one of the most common errors above, or a PDF failure, "try re-render” will be returned.
Letter envelopes can be customized with branding, artwork, or messaging to communicate vital information to your recipients even before they open the envelope. Lob offers limited customization for some envelopes, including standard #10 outer envelopes (single-windowed) and #9 return envelopes (no window / single-windowed options).
Paper cards can now be affixed to letters, providing a compelling method to direct customers to special promotions and drive engagement, both online and in-store. Having “faux” cards can serve as a tangible and memorable reminder for any upcoming marketing promotion.
Cards must be created, ordered, and printed, and available in your inventory before they can be utilized.
Upload your front and back designs to create a new card, then order inventory for your card. Cards can be purchased as a one-off order or through auto-reordering.
Allow an estimated 20 business days for cards to be available for use in your Lob dashboard.
The minimum order quantity is 10,000 cards per artwork design submitted.
Spoilage is an industry norm that occurs during print set-up and processing. Based on the industry average, we recommend adding 2-3% to account for spoilage.
Timing and delivery is dependent on order size and complexity, and may be additionally delayed by forces outside of Lob's control (e.g. USPS delays, printer site shutdowns due to Covid, paper shortages, extreme weather events).
Once cards are ordered, they cannot be sent with letters until your Lob dashboard indicates they are fully stocked and available in your inventory. An email will notify you once your cards are in stock and are ready to be sent with letter campaigns.
The minimum send quantity is 5,000 cards per letter campaign. If a letter campaign is created with a specified card ID that is not in stock, the request will be rejected. Affixing charges will be billed with each Letter API call made, which is separate from the initial card order.
Special considerations when sending card-affixed letters:
Letters with card affix are limited to a single sheet at max (can be double-sided)
Cards can only be affixed horizontally to the top fold of a tri-folded letter, and to the face letter on the first page
Card-affixed letters will be sent in a standard #10 double-windowed envelope
Card-affixed letters cannot be sent with custom envelopes or buckslips at this time
Card-affixed letters cannot be used with Certified or Registered Mail at this time
When using the Letters API single endpoint (https://api.lob.com/v1/letters)
, cards must be sent in groups of at least 5,000 card-affix letter API requests during any 24-hour print-day period from 10AM PT to 10AM PT. If you do not, you may incur setup costs of $250/day on your monthly usage invoice. Reach out to your dedicated Customer Success Manager if you have questions.
Currently we do provide the following card affix offering:
Cards affixed to letters (one sheet total, front-side only)
Static, non-personalized artwork designs for paper cards
Horizontal card orientation in a single size
Cards affixed to the top fold of a trifold letter towards the right
Letters sent in standard #10 outer envelopes
We do not support the following offerings:
Cards affixed to any other mail format (e.g. self-mailers)
Cards affixed to letters that totals more than a single page, or on the back-side
Dynamic, personalized artwork designs that are unique to the recipient
Plastic cards (e.g. credit or loyalty cards)
Vertical card orientation or different card sizes
Cards affixed to any desired location on a letter
Letters sent in customized #10 outer envelopes
Card affix for Registered or Certified letters
Buckslips are small mail inserts that can be sent with letters to improve your ROI on marketing campaigns. These attention-grabbers can add pops of color in an otherwise plain-looking letter, and combined with compelling promotions, can be a very cost-effective solution to boost your response rates.
Anything sent with Buckslips will have a 4-day SLA.
Check out our:
Or watch a quick demo of ordering buckslips and sending them with letters via the dashboard
Buckslips must be created, ordered, and printed, and available in your inventory before they can be utilized.
Upload your front and back designs to create a new buckslip, then order your inventory. . Buckslips can be purchased as an one-off order or through auto-reordering.
The minimum order quantity is 10,000 buckslips per artwork design submitted
Allow an estimated 10 business days for buckslips to be available for use in your Lob dashboard.
Spoilage is an industry norm that occurs during print set-up and processing. Based on the industry average, we recommend adding 2-3% to account for spoilage.
Once buckslips are ordered, they cannot be sent with letters until your Lob dashboard reflects they are fully stocked and available in your inventory. An email will notify you once your buckslips are in stock and are ready to be sent with letter campaigns.
The minimum send quantity is 5,000 buckslips per letter campaign. If a letter campaign is created with a specified buckslip ID that is not in stock, the campaign request will fail.
Special considerations for sending letters with buckslips:
Only 1 buckslip max per letter request
Buckslips counts as one sheet in a letter
Any letter including a buckslip can have a maximum total of 6 sheets (5 letter sheets + 1 buckslip) to fit in a #10 standard envelope
Said another way, a buckslip cannot be inserted in letters over 6 sheets, as it cannot be inserted in a flat envelope at this time
Custom envelopes (outer & return envelopes) are supported for letters with buckslips
Buckslips cannot be sent with card-affixed letters at this time
Buckslips cannot be used with Certified or Registered Mail at this time
Buckslips cannot be sent using the single endpoint Letters API at this time
Depending on the custom mail type selected, you will see some of the following details of your ordered design:
Design
Size
Type
Finish
View the number of remaining custom items in your inventory and the number of orders that are still outstanding or fulfilled. Inventory statuses include:
Available: Inventory currently in stock and ready to use
Reserved: Inventory allocated for scheduled campaigns
Remaining: Inventory available, less reserved inventory
Inventory for custom items will decrement as you send letters with the add-on item of a specific design, and increment if you cancel a letter request. It may take a few minutes for the inventory quantity to update after any action.
Alternatively, use a GET
call to the item endpoint to return a list of all items on your account, and any available and pending inventory.
Buckslips: https://api.lob.com/v1/buckslips
Cards: https://api.lob.com/v1/cards
Envelopes: https://api.lob.com/v1/envelopes
Accurate inventory management is essential for ensuring that we have the right products available to meet our customers' needs. Lob has automated tools and physical audits in place for regularly reconciling inventory, but we need to account for product spoilage.
We are focused on addressing routine product spoilage that occurs during print set-up and assembly: Mailpieces generated during setup and testing are discarded along with any misprints or damaged pieces. For items printed on demand, this is not an issue, but for orders using pre-printed custom inventory, this ultimately impacts the accuracy of Lob's reported inventory.
By addressing this issue and accounting for spoilage at the time of processing, we can improve the timeliness and accuracy of our inventory, to the benefit of your mail campaigns.
An auto-triggered overnight job will calculate spoilage from the previous production day and Lob will decrement it from your inventory accordingly.
As a proactive measure, based on the industry average, we recommend adding 2-3% to account for spoilage when ordering custom inventory (custom envelopes, cards, buckslips).
By addressing this issue and accounting for spoilage, we can improve the timeliness and accuracy of our inventory, to the benefit of your mail campaigns.
Given add-on items require additional lead times for printing and stocking in inventory, we recommend enabling auto-reordering for any items that will be continuously utilized to ensure there will be no risk of running out. When reordering is turned on, a new order will be submitted whenever the remaining inventory quantity falls below 20%. A confirmation will show the reorder quantity and price that will be charged.
To turn on auto-reordering:
Select the design you would like to auto-reorder
Go to the Auto-Reorder Settings section, click Set Up, set auto-reorder to on, and hit Save
Add a reorder quantity, the number of items to be ordered when your most recent order falls below 20% of the original order quantity, and hit Save
To turn off auto-reordering:
Go into the same Auto-Reorder Settings
Set the auto-reorder button to off, and hit Save
Order details for any particular item design will be populated in the order history window once submitted, including order date, item ID, order quantity, inventory status, and expected availability date.
Order status: Provides current item status
Pending: Lob is reviewing the order submission
In Production: The order is being fulfilled
Available: Item is available in inventory and ready for use
Expired: For envelopes only; indicates if envelopes expired (after 6mo)
Canceled: Customer canceled order while status was pending
Estimated date: Lob’s rough estimation of when items may be available in your inventory. However, an email confirmation will be sent when they are actually ready for use.
Expand details: Each order under a specific design can be expanded by clicking on the ‘+’ sign to the right in each row, where the expiration date (envelopes only), unit price, and total order cost will become visible
Self-mailers can grab attention with their creative design unfolding to tell your brand's story. They offer more room for your messaging but are folded to a compact size. Their all-in-one format eliminates the need for envelopes, encouraging immediate engagement from recipients and facilitating a quicker response.
Check out the following resources to get started with self-mailers
Lob currently supports the following self-mailers:
Make sure all artwork submissions are facing upright for both inside and outside panels. Our printers will invert the inside panel of submitted customer artwork during the production phase.
We use a few pre-approved papers across our commercial printer network. In ensuring uniform quality and consistency across all of our mail pieces, each paper source specification must fall within a small range. The specification/value range pairs are listed below:
Basis Weight: 80# Cover with Gloss
GSM: 218
Full Bleed
1 Side UV Gloss
6x18" bifold self-mailer
W x H: 4 x 2.375"
0.15" from the center fold line
0.25" from the bottom edge (including bleed)
Placement: Left panel outside
12x9" bifold self-mailer
W x H: 4 x 2.375"
0.15" from the center fold line
0.25" from the right edge (including bleed)
Placement: Top panel outside
11x9" bifold self-mailer
W x H: 4 x 2.375"
0.15" from the center fold line
0.25" from the right edge (including bleed)
Placement: Top panel outside
17.75x9" trifold self-mailer
W x H: 4 x 2.375" 0.15" from the center fold line
0.25" from the right edge (including bleed)
Placement: Top panel outside
Glue zone 9”x.5” (at 12” score)
Stain-resistant, low tack, clear fugitive glue is used for adhesives on the folded self-mailers.
Glue is positioned within 0.25" of the opening edges and placed opposite the final fold. Glue is applied by one of the following methods:
Continuous glue line at least 0.125" wide
Three or four glue spots at least 0.375" in diameter
Three or four elongated glue lines
Ensure your self-mailers get to their final destination by following these guidelines:
The from
field is required for all self-mailers, regardless of the destination
HIPAA-compliant self-mailers are not offered at this time, as self-mailers are not placed in envelopes
Postcards stand out in direct marketing for their ability to deliver eye-catching, concise content that engages recipients instantly, making them highly effective for promotional campaigns. For transactional or operational communications, their streamlined, envelope-free design ensures important information is immediately visible, enhancing clarity and response rates for critical updates or calls to action.
Let's get started! First, be sure to check out the following resources:
The front side of the postcard is fully available for customization.
For the backside of the postcard, follow the guidance provided in the templates below to leave enough room for ink-free areas.
We use a few pre-approved papers across our commercial printer network. In ensuring uniform quality and consistency across all of our mail pieces; each paper source specification must fall within a small range. The specification/value range pairs are listed below:
Basis Weight: 100# - 120#
Cover GSM: 255 - 325
Full Bleed
1 Side UV Gloss
4x6" Postcards:
W x H: 3.2835 x 2.375"
0.275" from the right edge (including bleed)
0.25" from the bottom edge (including bleed)
All other postcard sizes:
W x H: 4 x 2.375"
0.275" from the right edge (including bleed)
0.25" from the bottom edge (including bleed)
Ensure your postcards get to their final destination by following these guidelines:
The from
field is not required for US postcards, but is required for international destinations
The first pillar of building your direct mail program with Lob is to design your mail creatives.
Creating a well-designed mail piece can elevate your brand amongst other mail pieces in the mail box, communicate your value prop effectively, and actually deliver results. Design applies to imagery as well as text and copy, and a clear, easily identified CTA or promotion can make a material difference in the level of responses you may receive.
When sending programmatic mail through the Lob platform, it is important to make sure that digital designs can effectively translate into physical print with the right set of instructions, whether they are static or dynamic creatives.
When you send an API request to Lob, you are sending 3 pieces of information:
the "To" address,
the "From" address, and
the content.
This section contains some best practices to follow when designing creative content for Lob. Read on to learn more about each of the design components needed in your mail creatives.
Lob will fail incorrectly formatted PDFs. to ensure your file will process through our rendering engine.
Webhooks users can subscribe to receive notifications of failed orders. (Learn more about here.)
If you are unable to resolve the error, please reach out to
Letter add-ons are features exclusive to our Enterprise tier customers. Upgrade to the appropriate to gain access, or contact our to learn more.
For more details, see .
To get started with letters with card affix, check out our or visit our for inspiration.
Refer to our for more details on image prepping.
Go to the in the Lob dashboard and hit the Create button
Send a request to the /v1/cards
with the following fields:
Send a request to the /v1/cards/{id}/orders
with the following field:
See for letter add-ons
In “Configure Settings” Step 1 of the Letter creation flow, choose “Card” as your add-on
Adding cards to letters can be done via the :
Affixing cards to letters can be done via the , similar to Custom Envelopes
Buckslips can be sent through or the , but NOT through the single-endpoint Letter API.
Lob Dashboard: buckslips, or send with a
API documentation for , buckslips, or with buckslips
for design inspiration
Refer to our for more details on image prepping.
Go to the section in the Lob dashboard, and hit the Create button
Send a request to the /v1/buckslips
with the following fields:
Send a request to the /v1/buckslips/{buckslip_id}/orders
with the following field:
See for letter add-ons
In “Configure Settings” Step 1 of the Letter creation flow, choose “Buckslip” as your add-on
Adding buckslips to letters can be done via the :
For any letter add-on items (including buckslips, cards, or envelopes), you will have the ability to view existing orders and manage your own inventory for any designs that have been submitted. Go to your Lob dashboard and go to the section for , , or .
Self-mailers are exclusive to Enterprise edition customers. Upgrade your to gain access to this mail format, or reach out to our to learn more.
API documentation: or
Lob dashboard: section or for self-mailer campaigns
for HTML templates
for ready-to-use creatives and design inspiration
: measures 6x9” when folded in half, no offset of panels, and unfolds horizontally
: measures 6x9” when folded in half, no offset of panels, and unfolds vertically
: measures 6x9" when folded in half, has a 1" offset between the top and bottom panels when folded, and only unfolds vertically
: measures 6”x9" when c-folded inward, has a .25" offset on the bottom panel when folded, and only unfolds vertically.
Follow our design templates carefully to ensure you place your design elements for each permutation, including the location of the adhesive, in the appropriate location. (For example, there are four panels available to customize for all bifolds, wherein one of the outside panels must have an for the address and postage area.)
A Carbon Neutral Mail certification will automatically be included within the official use address block on the backside for all bifold self-mailers printed by Lob. Read more about how you can send mail in a more environmentally responsible way with Lob in our section.
Self-mailers should not contain any PII outside of the
Avoid any to ensure your mail does not get rejected by USPS
options may differ based on destination and use type (e.g. promotional vs non-promotional)
We do not recommend placing promotional address information in your creative in the bottom 2.375" of a mailpiece opposite the address panel. This will prevent the USPS from accidentally scanning the wrong side of the mailpiece.
API documentation: or
Lob dashboard: section or for postcard campaigns
for HTML templates
for ready-to-use creatives and design inspiration
You may also to your postcards to incorporate personalized tracking.
For all postcards printed by Lob, a Carbon Neutral Mail certification will automatically be included within the official use address block on the backside. Read more about how you can send mail in a more environmentally responsible way with Lob in our section.
4x6" postcards can only be sent via ; others can be sent as Marketing Mail (Standard Class Mail)
Only 4x6" postcards can be sent to
Postcards cannot include any PII outside of the
Avoid any to ensure your mail does not get rejected by USPS
We do not recommend placing promotional address information in your creative in the bottom 2.375" of a mailpiece opposite the address panel. This will prevent the USPS from accidentally scanning the wrong side of the mailpiece.
A snap pack is a pressure-sealed mailer with perforated sides for easy opening. Snap pack mailers are versatile and can be used by a wide range of industries including Financial Services, Education, and Healthcare. The official-looking nature of snap packs demands attention, offers unique tactile engagement, and has one of the highest open rates among mail types.
To get started with snap packs, check out our API documentation, or Template Gallery for inspiration.
Snap packs are exclusive to Enterprise edition customers. Upgrade your Print & Mail edition to gain access to this mail format, or reach out to our sales team to learn more.
Snap packs currently have a 4-day SLA.
Lob’s snap pack offering has a flat, final trim size of 8.5x11”, a folded (in half) dimension of 8.5x5.5", and three perforated sides. Snaps packs are printed double-sided in black and white or color.
Reference our design templates on where to place your design elements; carefully note the location of the address block and other ink-free zones.
Snap packs DO NOT need additional trim space added to their dimensions because their production journey does not involve trimming (the way a postcard would). Please set your document sizing to the above dimensions when submitting to Lob.
Make sure all artwork submissions are facing upright for both inside and outside panels. Our printers will invert the inside panel of submitted customer artwork during the production phase.
We use a few pre-approved papers across our commercial printer network. In ensuring uniform quality and consistency across all of our mail pieces, each paper source specification must fall within a small range.
The specification/value range pairs are:
8.5 x 11" B&W & color snap packs
Basis Weight: 80# text
Bi-fold
8.5x11" snap packs:
½” around the entire flat piece (for perforation)
Ensure your snap pack self-mailers get to their final destination by following these guidelines:
The from
field is required for all self-mailers, regardless of the destination
Snap pack should not contain any PII outside of the no-ink zone
Avoid any prohibited artwork to ensure your mail does not get rejected by USPS
HIPAA-compliant snap packs are offered at this time, so long as all HIPAA related information is on the inside of the snap pack.
Mailing Class options may differ based on destination and use type (e.g. promotional vs non-promotional)
We do not recommend placing promotional address information in your creative in the bottom 2.375" of a mailpiece opposite the address panel. This will prevent the USPS from accidentally scanning the wrong side of the mailpiece. Learn more here.
As a direct mail automation platform, Lob's focus is to offer set mail formats that can be programmatically sent at scale. These are postcards, self-mailers, snap packs, letters, and checks. However, for customers who need to send greater mail variations beyond these formats, we are open to exploring options with you.
Please reach out to your Account Manager for more information on program eligibility and requirements.
To maximize engagement with your direct mail campaigns, we recommend leveraging dynamic personalization and integrating clear calls to action (CTAs) on each mailpiece. Including a coupon code, phone number, URL, or QR code is a powerful way to bridge the gap between offline and online experiences, driving more interaction with your brand.
Lob also empowers you to enhance your direct mail campaigns by leveraging USPS’s Informed Delivery service to create an additional digital touchpoint, giving your audience another opportunity to engage with your content before they even receive the physical mail.
Another crucial pillar of building your direct mail program with Lob is to determine your direct mail strategy.
Just like any other digital channel, using direct mail can help in attracting new customers and expanding your reach to your target audience. However, success is predicated on the careful cultivation and analysis of quality data, iterative testing, and creative content.
As an automation technology platform, Lob places the power of direct mail automation strategy directly in the hands of our customers. As a result, you have access to a broader set of tools at your disposal to better calibrate how you execute your direct mail campaigns, which can be optimized over time to create a highly performative channel.
Stop relying on spray-and-pray strategies that spams every mailbox, and start thinking about the most (cost) effective ways to get in front of the audience that matters the most with content that's actually relevant to them. Lob can be your partner in this journey.
Read the articles in this section to see what areas you can optimize in your mail sends.
Choosing a SEND strategy: One- time campaigns or triggered sends
Choosing a DELIVERY strategy: ASAP, scheduled mailings, or target delivery
Managing your mail settings (use type, cancellation window, etc.) Sending
Sending Certified or Registered Mail
Sending International Mail
Browse our available mail formats and associated design specs:
To get started with sending checks, you'll need to create a bank account to originate checks from. You will also identify which check template and signature image you want associated with the account, then Lob will verify your account. This process is outlined below.
Just looking for check specs? Skip ahead to Check dimensions & specs here.
More resources: Once you have setup your Bank Account, visit our Checks API documentation, GitHub library, or our Template Gallery for ideas on how to get started.
In the dashboard, see the Bank Accounts section (under Print & Mail):
You can also add a bank account via our Bank Accounts API but note you are unable to upload a signatory image via this method.
In the “Bank Accounts” section of your dashboard (under Print & Mail) you will select which template you would like to associate with your bank under the “Check Template Type”.
We offer two options when it comes to check templates:
Common Check: This is the universal check we have offered that is accepted at the majority of banks across the US.
JPM Check: This is the JPM check template that is approved by JP Morgan Chase and utilizes Positive Pay.
If you are using the JPM Check template, you will need to add additional information (Bank City, State, Zip, and Fractional Routing Number).
Check with your bank to make sure that the check will be accepted. A new check template or different signatory can cause the bank to flag your account. The best way to avoid this happening is to let your bank know that the checks are valid.
Your money is not transferred to Lob. When the payee deposits the check that was sent through Lob's Checks API, it will pull money directly from the specified bank account into the recipient's bank account.
One of the options for associating a custom signature to a bank account, so that it can be printed on checks, is uploading an image file when you create a Bank Account in the Lob dashboard.
The uploaded signature will be printed on all Lob checks originating from that specific bank account. Make sure to download the digital signature and authorize its use with your bank once your bank account is created.
If you would like to upload a new custom image file as a signature anytime after the initial creation of the bank account, you must reach out to support@lob.com with:
The bank_account_id
of the bank account that corresponds with the signature
A PNG of the signature (the background of the image must be transparent)
When an image for the signature isn’t provided, we implement a cursive font rendering of the signatory’s name instead.
Below are the guidelines to adhere to when prepping your image so that the signature can best be extracted and processed.
The image must be in either a JPEG or PNG format (.jpg, .jpeg, .png). The background of the image must be transparent.
The image must be at least 330px x 105px. The image may be larger but we recommend a width to height ratio of approximately 3:1 for best results.
The signature must be written in black or dark ink on a white or light background. The signature should be centered and should occupy most of the image.
Here are a few of the most common mistakes that we recommend you avoid when preparing a signature image.
DON'T: Have the signature too small in your uploaded image.
Make sure to center your signature and crop your image as needed so that the signature takes up a majority of the space.
DON'T: Write your signature on ruled or patterned paper.
Write your signature on a white or light-colored background to ensure proper signature processing. Using ruled or patterned paper will likely result in unintended artifacts.
DON'T: Include other objects or artifacts in your image other than the signature.
If you are taking a photo of your signature rather than using a scanned image, make sure to prepare your photo so that all artifacts and non-signature objects (e.g. tables, pens, dark shadows) are cropped out.
Lob will send two micro-deposits, ranging from 1 - 100 cents, to the specified bank account in order to verify the account. You'll be asked to enter them in the dashboard or submit them through the API before you can send out any checks.
This is especially important if you are sending checks on behalf of your customers. You must verify all your customers' bank accounts before sending checks from them. This is most easily done through the API.
Lob's Check service only works with US banks, based on US banking standards and formats. We do not support foreign bank accounts at this time.
Our security team continuously reviews newly-created accounts. New accounts that trigger a flag will be immediately suspended and required to provide additional verification.
If you send a high volume of checks, send checks in very high dollar amounts, or you are sending HIPPA data, you may need to upgrade your Print & Mail edition to gain access to this form factor, or reach out to our sales team to learn more.
If you have any questions or concerns about the safe-guards we have in place around the use of checks, please contact us.
The specifications for Lob's check product are as follows:
Measures 8.5 x 3.625" in size
Contains warning bands, void indication, and security weaver on backer
Paper is perforated with the bottom ⅔ of the page available for the sender to customize with artwork
Uses fugitive ink to provide additional protection against duplication of the document
Includes a prismatic multicolored background with subtle graduations to make copying and reproducing difficult
Produced with controlled stock, which ensures the security of the mail piece at every stage of production. The Padlock Icon printed on the checks ensures that the product meets or exceeds industry guidelines
Mailed in a #10 white outer envelope (double-windowed)
Note that logos and branding can be added to checks via an API request, but cannot be added through the dashboard. For more details on the space your logo can take up, visit our API documentation.
You can choose to leverage the blank space at the bottom of the check by using check_bottom
to add any branded artwork or personalization, even if these check pages themselves do not require any artwork in order to be sendable.
It is also possible to send a letter as an attachment with your check (but not the other way around) by using the attachment
string.
If you choose to customize this optional bottom section of the check, be sure to follow the provided template and leave room for the actual check itself; otherwise you risk invalidating the check. You may also add up to 5 sheets (10 double-sided pages) of optional attachment pages.
See our Checks API documentation for more details on the check_bottom
and attachment
parameters, or see the Template Gallery for design inspiration.
Check bottom (optional)
Check attachment (optional)
Check bottoms and check attachments will always be printed in black and white.
Ensure your checks get to their final destination by following these guidelines:
The from
field is required for all checks, regardless of the destination
Checks can only be mailed using First Class Mail (takes 4 to 6 business days)
USPS Standard Class Mail (Marketing Mail) and Certified Mail are not available for checks
Overnight mailing options are not available for checks
Booklets are a unique way to promote your products, services, or brand to potential and existing customers. Smaller than a typical magazine, our digest booklets are a snackable, tangible tool for storytelling.
Check out the following resources to get started with booklets:
Template Gallery for sample design inspiration and template
Booklets are exclusive to Enterprise edition customers. Upgrade your Print & Mail edition to gain access to this mail format, or reach out to our sales team to learn more.
9x6” booklet
Like all other mail formats at Lob, this is digitally printed, which allows for dynamic personalization.
Available in 8, 12, or 16 pages.
There is a minimum order size of 5,000.
Booklets have a 4-day production SLA
8.375x5.375” booklet [offset]
Utilizes offset printing, a more traditional method of production for direct mail. Offset does not allow for dynamic personalization, but can allow for a higher page count at a lower cost than its digital counterpart.
There is a minimum order size of 10,000.
Booklets have a 4-day production SLA
Booklet sheets are folded horizontally resulting in side-by-side panels to be read left to right, like a book.
Artwork should be submitted (and will preview) as a printer’s spread. Each of our layout templates include page numbers to guide you.
Please refer to our layout templates for where to place your design elements; pay close attention to address/postage block and safe zones.
The 8.375x5.375 booklet is produced on an offset printer & mailpieces cannot be personalized.
This booklet size is available in 8, 12, 16, 20, 24, 28, or 32 pages.
Booklet sheets are printed double-sided in black and white or color.
Note zone around binding is 0.125” from either side of the midline/fold (.25” total). Artwork may be placed here, but note it will be impacted by the fold.
Minimum booklet size: 8 pages (2 sheets of paper, with 2 panels printed on the front and back of each).
Page count must increase by 4 pages (1 sheet of paper) at a time.
Maximum booklet size:
9x6”: 16 pages (4 sheets of paper)
8.375x5.375” [OFFSET]: 32 Pages (8 sheets of paper)
9x6” digest booklet
W x H: 4 x 2.375"
0.15" from the center fold line
0.125" from the top edge (including bleed)
Placement: Left panel outside back
8.375x5.375” booklet [offset]
W x H: 4 x 2.375"
0.15" from the center fold line
0.125" from the top edge (including bleed)
Placement: Left panel outside back
We use a few pre-approved papers across our commercial printer network. In ensuring uniform quality and consistency across all of our mail pieces, each paper source specification must fall within a small range.
9x6” digest booklet
Basis Weight: 80# Text
Full Bleed
8.375x5.375” booklet [offset]
Basis Weight: 60# Gloss Text
Full Bleed
For artwork, regardless of booklet size, note zone around the binding: 0.15” from either side of the midline/fold (.3” total). Artwork may be placed here, but it will be impacted by the fold.
All booklets, regardless of page count, will be saddle-stitched with two staples.
In saddle stitching, folded sheets of paper are nested in one another, then stacks are draped over a holding device (the paper hangs over each side like legs on a saddle). Then, long wire staples are threaded, or “stitched” through the paper; two staples is the standard.
All booklets, regardless of page count, will have a three-tab closure (wafer seals) for postal regulations.
Wafer seals are self-adhesive paper disks used to prepare self-mailing materials for delivery or to seal envelopes securely without glue.
Ensure your booklets get to their final destination by following these guidelines:
The "from" field is required for all booklets, regardless of the destination
Booklets should not contain any PII outside of the no-ink zone
HIPAA-compliant booklets are not offered at this time, as booklets are not placed in envelopes
Avoid any prohibited artwork to ensure your mail does not get rejected by USPS
Mailing Class options may differ based on destination and use type (e.g. promotional vs non-promotional)
Coming soon: Up next on our roadmap is a 9x6" digitally printed booklet offering full personalization via merge variables. Talk to your Account Manager for more information.
Letters are highly effective for direct marketing due to their personal touch and tangible presence, enhancing recipient engagement. They also serve well for transactional or operational communications, offering a formal and reliable delivery of important information that stands out from digital clutter.
Lob offers two sizes of letters: 8.5x11" and 8.5x14".
To get started with sending letters, check out our Letters API documentation, our GitHub library, or Lob's Template Gallery for inspiration.
8.5x11" letters
Lob offers 8.5" x 11"
letters in both black & white and in color, which can be printed single or double-sided. Letters and checks not exceeding 6 tri-folded sheets of paper in total will be sent in standard #10 double-windowed outer envelopes. Letters and checks over 6 sheets of paper but not exceeding 60 total sheets of paper will be mailed in a flat envelope.
Reference our design templates on where to place your design elements for letters; carefully note the placement of the address block.
Letter design template (for 6 sheets of paper or less)
Letter design template (for over 6 sheets of paper but not exceeding 60)
Letters DO NOT need additional trim space added to their dimensions because their production journey does not involve trimming (the way a postcard would). Please set your document sizing to the above dimensions when submitting to Lob.
8.5x14” Letters (“Legal letters”)
Legal letters are exclusive to Enterprise edition customers. Upgrade your Print & Mail edition to gain access to this mail format, or reach out to our sales team to learn more.
Legal letters currently have a 4-day SLA.
Lob offers 8.5x14" letters in both black & white and in color, which can be printed single or double-sided.
Using two parallel folds, a legal-sized letter is folded in half, then folded again with a slight overlap (two edge panels will be slightly larger than the middle panels); this allows it to fit in a standard #10 double-windowed outer envelope. Legal letters cannot exceed 3 sheets of paper at this time.
Reference our design templates on where to place your design elements for letters; carefully note the placement of the address block.
Legal letter design template (3 sheets of paper or less)
Letters DO NOT need additional trim space added to their dimensions because their production journey does not involve trimming (the way a postcard would). Please set your document sizing to the above dimensions when submitting to Lob.
We use a few pre-approved papers across our commercial printer network. In ensuring uniform quality and consistency across all of our mail pieces, each paper source specification must fall within a small range. The specification/value range pairs are:
8.5" x 11" B&W & color letters
Basis Weight: 60# text
C-fold letters
8.5" x 14" B&W & color letters
Basis Weight: 60# text
Double parallel fold
If you do not follow these address guidelines, your letter will be printed incorrectly.
The address_placement
parameter specifies the location of the address information that will show through the double-window envelope. Options are top_first_page
and insert_blank_page
.
By default, Lob selects address_placement = top_first_page
, meaning Lob will print address information at the top of your provided first page. Make sure to leave ample space for the address information to be printed, which will show through our standard double-windowed envelope. To see how this will impact your letter design, view our letter template (6 sheets or less).
Letters may shift slightly within their envelope during transit. As such, we do not recommend putting any sensitive content close to the window area.
If you pass address_placement = insert_blank_page
, a blank address page will be inserted at the beginning of your file where we will print the address information to show through our standard double-windowed envelope.
If a blank address page is inserted, note that you will be charged for the extra page. Reference the Letter Unit Pricing section for charges you will incur based on your tier.
Your logo should be entirely within the blue box of the letter template, with no overlap of the red box, in order to print appropriately.
If you're looking to print a color logo then ensure you're setting the color parameter to 'true' if you would like to print in color otherwise you can set it to false.
Ensure your letters get to their final destination by following these guidelines:
The from
field is required for all letters, regardless of the destination
Letters may contain PII as envelopes have an interior security tint for privacy
Mailing class options may differ based on the destination and use case (e.g. promotional vs transactional)
Letters printed by Lob are sent in a plain Standard #10 double-windowed outer envelope, or in a flat envelope when letter pages exceed 6 pages. These are automatically included when a Letter API request is made, and no special request will need to be made to utilize them. These standard outer envelopes cannot be customized by default.
For non-Enterprise users, Extra Services (Certified Mail, Certified Mail with Electronic Return Receipts, and Registered Mail) will require an approval process for usage; please contact support@lob.com.
All Certified Mail printed by Lob are sent in a large single-windowed Standard #10 Certified Mail envelope with an inside security tint. These Certified Mail envelopes cannot be customized.
Aspects of this feature are exclusive to higher edition customers. Upgrade your Print & Mail edition to gain access to this form factor, or reach out to our sales team.
Lob offers two options for USPS reply mail for our letter form factors only:
Courtesy Reply Mail, available to all customers
Business Reply Mail, available to Enterprise edition customers only
Both reply mail options will be sent in a standard #9 return envelope (single-windowed), which are available to all customers by default. They are blank, come without prepaid postage, and will expire in 6 months. No custom artwork is permitted on the front or back sides of these plain #9 envelopes. See our Template Gallery for design examples.
To include a return envelope with your mail pieces, you will need to send a Letter API request with return_envelope
and perforated_page
options completed:
return_envelope = true
perforated_page
, specifying the page that will have tear-off slips with a remittance slip and return address for the reply mail
Once the return envelope setting is activated, letter designs will automatically include a bottom perforation if including a return envelope.
For customer's who want to further customize their #9 envelope artwork, please reach out to your Customer Success Representative.
This feature is exclusive to Enterprise edition customers. Upgrade your Print & Mail edition to gain access to this form factor, or reach out to our sales team.
A valid BRM permit must be obtained from USPS before you can start using a BRM mail piece and receive BRM mail
BRM users also need a unique Zip+4Code assigned by the USPS to qualify for volume discounts
Assigned Zip+4 Codes are unique to the category of Reply Mail used
Customers sending Business Reply Mail (BRM) must use Business Return Envelopes (BREs). BREs are #9 return envelopes (no windows) with inside security tint
A USPS-approved design must be used in BREs; no custom artwork is allowed
Postage must be prepaid
Letter perforation is required
Business Return Envelopes (BREs) cannot be ordered through the dashboard; please reach out to your account manager to facilitate.
This feature is exclusive to higher edition customers. Upgrade your Print & Mail edition to gain access to this form factor, or reach out to our sales team.
Lob offers return envelope tracking for their USPS Courtesy Reply Mail services. Return tracking information is only available via webhooks for standard return envelopes (non-custom single-windowed envelopes only).
To access this feature, enterprise customers need to send an API request for a letter with return_envelope
, return_address
and perforated_page
options completed:
return_envelope = true
, or
return_envelope = no_9_single_window
, if custom return envelopes are enabled on the account
perforated_page
, specifying the page that will have tear-off slips with a remittance slip and return address for the reply mail
return_address
, specifying the return address the return envelope customers should send remittance slips to
This will result in the return address and associated Intelligent Mail Barcode (IMb) tracking code to be placed within the window area of the perforated page. The #9 return envelope will be mailed to the customer along with the letter including the perforated page and return address in a #10 standard outer envelope. Note that no custom outer envelopes can be used with this feature at this time.
It is possible to send Courtesy Reply mail without enabling return envelope tracking, as they are two separate features. To use normal reply mail without tracking, make sure to skip the return_address
field. This means only the return address (and no IMb) will be rendered in the window area of the perforated page.
Once the returned envelope enters the mail stream and is scanned by the USPS, the customer can start receiving notifications to mail tracking events, which will be surfaced via webhooks.
The following is a list of mail tracking event labels and descriptions available for reply mail:
Created: Return envelope is first created (should be simultaneous with Letter creation)
In transit: Return envelope is being processed at the entry/origin facility
In local area: Return envelope is being processed at the destination facility
Processed for delivery: Return envelope is greenlit for delivery at the end recipient's nearest postal facility. The mailpiece should reach the mailbox within 1 business day of this tracking event.
Re-routed: Return envelope is re-routed due to recipient change of address, address errors, or USPS relabeling of barcode/ID tag area
Returned to sender: Return envelope is undeliverable and is being returned to sender due to barcode, ID tag area, or address errors.
Return envelope tracking is accessible via our webhooks, and the Event Logs node in the Lob dashboard. Tracking events will appear in the Letters
Events portion of the original individual mailpiece in the dashboard as soon as they become available, or can be downloaded using the Export button that’s located at the top of the Letters section in the dashboard.
Note: As USPS does not return the Delivered
mail tracking event for return envelopes, Lob is unable to surface this event via webhooks.
Return addresses that are passed into the return_address
field will be used exactly as passed in. We do not run this address through any verification services like NCOA or CASS. This helps ensure that remittance slips are sent to the business address provided. Customers must take extra care to ensure that the address information provided matches their desired delivery address.
Additionally, we recommend supplying ZIP+4 codes in the return address specified to ensure the fastest, most accurate mailing possible. This can speed up USPS processing and delivery by up to as much as 2 days.
This feature is exclusive to Enterprise edition customers. Upgrade your Print & Mail edition to gain access to this feature, or contact our sales team.
Lob allows customization of select #10 outer envelopes and #9 return envelopes. Envelopes must be created, ordered, printed and made available in your inventory before they can be utilized with Letter API call requests. Envelope orders and inventory can be fully managed in the Lob dashboard. Note that custom envelopes are only supported for letters, and are unavailable for checks or postcards.
To start creating letters with custom envelopes, refer to our Letters API documentation or see our Template Gallery for inspiration.
Follow the guidelines below to achieve optimal results for your envelope designs, and to ensure a smooth creation process.
Envelopes must be created, ordered, printed, and available in your inventory before they can be utilized.
First, create an envelope design by uploading your artwork in the 'Envelope' section of the Lob dashboard. Hit “Create”, and in the new envelope creation screen, select the envelope size & design and the desired postage option for #10 outer envelopes. Any #9 return envelope selection will default to USPS Standard Class postage.
Once envelope designs are uploaded into the dashboard, an order must be placed to make them available in your inventory for later use. Envelopes can be purchased as one-off orders or through auto-reordering directly in the Lob dashboard.
First-time orders:
New envelope designs take time for quoting, production, and shipment; please allow up to 25 days for any new design orders to be fulfilled.
The minimum order quantity for any custom envelope order is 10,000 envelopes per artwork design submitted.
Spoilage is an industry norm that occurs during print set-up and processing. Based on the industry average, we recommend adding 2-3% to account for spoilage.
Auto-reordering:
When the auto-reordering function is turned on, a new order will be submitted whenever the remaining envelope quantity in inventory falls below 20%. A confirmation will show the reorder quantity and price that will be charged.
Plan ahead:
Given additional lead times, we recommend enabling auto-reorder for envelopes that will be continuously utilized to ensure there will be no risk of running out.
Additionally, custom envelopes have a 6-month expiration date to ensure the adhesive's integrity. Any unused envelopes that have expired will be discarded by Lob.
Envelopes cannot be used until the dashboard indicates that they have been made available, and any preemptive API requests that include your unique envelope ID will fail. Once an envelope order is available in your inventory, it can be utilized with Letter API call requests.
To use a custom envelope with your mail piece, you will need to set the custom_envelope
parameter in your POST
call to https://api.lob.com/v1/letters
to the desired custom envelope ID, which can be found in your dashboard.
If a letter is created with a specified envelope ID that is not in stock, the letter request will be rejected. If a letter is created with a specified envelope ID and is 7+ sheets, the letter will be sent instead in a blank, flat envelope, and the custom envelope inventory will not be decremented. Additionally, custom envelopes have an expiration date, which ensures the envelope's integrity.
When using the single endpoint Letter API, the minimum quantity of envelopes that can be sent during any 24-hour production-day period (10AM PT - 10AM PT) is 4,000 envelopes. For any customer that fails to send over the 4,000 envelope minimum (with corresponding Letter API calls) will incur a flat surcharge of $375/day on your month-end usage invoice.
Reach out to your dedicated Customer Success Manager if you have any questions.
Return to the dashboard at any given time to view existing order designs, the number of remaining envelopes, the number of orders that are still outstanding or fulfilled, and mailing class/postage type selected. Inventory will decrease with each API call made for a specific custom envelope design corresponding to a unique envelope ID.
When the auto-reordering function is turned on, a new order will be submitted whenever the remaining envelope quantity in inventory falls below 20%. A confirmation will show the reorder quantity and price that will be charged.
Given that custom envelopes have additional lead times, we recommend enabling auto-reorder for envelopes that will be continuously utilized to ensure there will be no risk of running out.
View previously submitted orders, and order details once any order is submitted. Rough expected date of availability for submitted orders provides an approximate time of when envelopes may be available, while an email confirmation will be sent when envelopes are actually ready for use.
Custom letter envelopes are set to expire in 6 months (due to adhesives). Expiration dates of ordered designs that still remain in your inventory can be viewed. Once envelopes are expired, customers will not be able to access any remaining inventory of the particular design order in their dashboard.
As USPS’ Mail Service Provider of the year, Lob works in lockstep with the postal service to bring you solutions to optimize your direct mail performance.
Direct mail helps your brand increase awareness, connect with potential customers, and drive conversions. However, combining this marketing method with digital technologies can lead to even more successful results. Using Informed Delivery is one of the best ways to do this.
While there is no guarantee everyone in your audience has opted into the Informed Delivery program, the list continues to grow. Per USPS, as of March of this year, the Informed Delivery user base has grown to 62.4M active users!
Increased Customer Engagement: Integrates physical mail with digital campaigns.
Additional Digital Footprint: Extends marketing reach at no additional cost.
Attribution Data: Provides additional insights into mail campaign performance.
This process is necessary regardless of how a user will execute the campaign.
Log into the Lob Dashboard; navigate to Billing > Promotions. Click on "Create an Informed Delivery Promotion."
Indicate the Promotion Name
Input the Promotion URL
Ride-along image specifications: Must be full color, JPG, 200x300px, max file size of 200KB.
Click "Create an Informed Delivery Promotion" to send your promotion application to USPS for approval.
You will receive an email notification once your promotion is approved. (Please allow for 3-5 days approval time.)
Once approved, you can send an Informed Delivery campaign with postcards, letters, self-mailers, and checks.
Use the Lob API to POST informed_delivery_campaign
and get a campaign_id
.
Ride-along image specifications: Must be full color, JPG, 200x300px, max file size of 200KB.
Optionally, include
Brand Name: If you do not pass a brand name, it will auto-populate in the Informed Delivery email as the Company name in Lob's system.
Representative image: A sample image of your mailpiece. This photo should represent all mailers in the Informed Delivery Campaign, and will be sent to all Informed Delivery subscribers; avoid using any PII. Campaigns with no representative image will display a USPS scan of the mailpiece.
Representative image specifications: JPG, 500x780px, max file size of 200KB.
On successful POST, receive a campaign_id
and validation if it qualifies for an existing promotion.
Once validated, send your mail as usual, including theinformed_delivery_campaign_id
in your submission.
Begin your campaign setup as usual in Lob Campaigns.
When prompted, select the option to use Informed Delivery.
Fill out required information:
Promotional URL
Ride-along image specifications: JPG, 500x780px, max file size of 200KB.
Optionally, input:
Brand Name: This populates in the Informed Delivery email sent to the end user; if you do not update this field, it will default to your company name in the Lob database.
Representative image: Upload a sample image of your mailpiece. This photo should represent all mailers in the Informed Delivery campaign, and will be sent to all Informed Delivery subscribers; avoid using any PII. Campaigns with no representative image will display a USPS scan of the mailpiece.
Representative image specifications: JPG, 500x780px, max file size of 200KB.
Please look over the uploaded images and make sure all information is correct.
Click "Next Step" to proceed with the Campaigns worklflow.
Click "Place Order" as you normally would to finalize the campaign.
Reach out to your Account Manager today!
Not yet; this is on our roadmap.
Lob’s Short URLs allow you to take a long URL from your website or landing page and create a personalized, shortened, and trackable URL to display on your direct mail creative. For example, if you have a landing page destination URL for your mail campaign like:
Lob’s Short URLs can be accessed and created in both the Dashboard and within the campaigns flow directly.
In the dashboard, navigate to the “Creative” navigation item, then click Short URLs. Here you will see all Short URLs you have created with Lob.
To create a new short URL, click the Create button at the top right of the page.
Within the Short URL creation flow, you’ll see:
Title
The title you can give your Short URL to easily find and select in the future. E.g. You’ll see this title to select in the campaign flow if you want to use the short URL in a campaign.
There are no character limits for the title
Destination
There are no character limits for the destination URL
Shortened Display URL
Domain
The default domain uses Lob’s built in subdomain “lob.st” which allows you to simplify create a short URL off of as long as that URL is available and not being used by others.
To customize and personalize this subdomain, you can click to Manage Domains from the Short URLs main page above and create a custom domain to then select and use in this URL creation flow.
Back-half
There are no character limits for the back-half URL
Metadata
For future analytics and easier searchability, we allow you to add metadata to your Short URLs. If you want to categorize your Short URLs in any way to then access more easily at a later point in time, metadata allows you to add multiple a tag names and values.
Within the Short URL main page, click the Manage Domains button at the top to enter the Short URL domain details page.
Here you will see all of the custom short URL domains you have created and linked to Lob.
To create a new custom Short URL domain, click the Add a New Domain button at the top.
To link a domain, add your primary or subdomain in the Domain field in this modal. If there’s ever a time when the subdomain, for example, becomes inaccessible or deprecated, you can enter an Error Redirect URL. The Error Redirect URL should point to a domain that will be more stable such as your primary home page, so if a user in the future types the URL in a browser they’ll be redirect to your home page.
When you create your custom domain, the status of the domain will be Inactive by default. To set as active, you’ll need to look your domain provider to Lob by following the steps below. Please note: once a domain is added, it can only be deleted via API request at this point in time.
When you create a new domain in the Lob dashboard with the steps above, you’ll need to configure your DNS settings so that it works with our platform. Follow this simple guide to ensure your domain is set up correctly.
This is for when your domain is not being used for any purpose other than for short links.
1. Sign in to your domain registrar's website (e.g. Cloudflare, GoDaddy, etc.)
2. Locate your DNS settings.
Find the DNS settings or DNS management section within your account. See the documentation below for your registrar if you need help.
3. Create an A Record.
Add a new DNS record with the following details:
Host: @
Type: A
Value: 207.174.61.1
TTL: You can leave this at the default setting. Common defaults are 3600 seconds or automatic.
Note: Some domain registrars do not allow `@` as a value for the host. If so, leave the field blank.
4. Save your changes
Ensure all changes are saved to make your DNS record active.
5. Wait for domain activation.
Domain activation can take a few hours. Once the status changes to “Active,” your domain is ready to use for shortening links.
Note: If your main domain is already in use for hosting a website, directly pointing it to our service could result in unwanted behavior, such as users being redirected unexpectedly from your main site. To avoid this, set up a subdomain dedicated to short links.
If you already own a domain and don’t want to register a new one, you can create a subdomain and use that to shorten links. A subdomain setup allows you to maintain brand consistency and save on registration costs. Here’s how to configure a subdomain:
Sign in to your domain registrar's website.
Use the same steps as above to locate the DNS settings for your domain.
Create a CNAME record for your subdomain.
Add a new CNAME record with the following details:
Host: Your desired subdomain. For example, if you want your short links to use `links.example.com`, enter `links` as the host.
Type: CNAME
Data/Points to: cname.short.io
TTL: You can leave this at the default setting. Common defaults are 3600 seconds or automatic.
Save your changes.
Ensure all changes are saved to make your DNS record active.
Wait for activation.
Just like a regular domain, your subdomain will be ready to use after a few hours.
If you need detailed steps on how to edit or add DNS records with your domain registrar, here are links to their official documentation for DNS management:
Domain propagation (the process of DNS records updating across global servers) can take up to 24 hours, though it typically happens within a few hours. If you are not seeing the status of your domain update to Active within the Lob dashboard, see the following troubleshooting steps:
Incorrect DNS Records: Ensure that you’ve correctly added the necessary A or CNAME records and removed extra or conflicting records.
Remove extra or conflicting DNS records: Delete any DNS records that might interfere with the proper setup of your domain/subdomain.
Domain Forwarding Issues: For some registrars like Namecheap or GoDaddy, you may need to disable domain forwarding.
If your domain is not active after 24 hours, please reach out to our support team.
Within Campaigns, you can add one short URL to your campaign. The short URL added to a campaign does not have to be unique to the creative and you may use the same short URL across multiple campaigns or creative. Note when doing this approach though, visits on that URL would be looked at in aggregate across all of the campaigns/creative. So if you would like to specify which campaign had visits, we recommend creating a short URL specific to that campaign.
Static short URLs can be added to a campaign to simply track URL visits for that campaign. Most commonly used with PDF creatives, static short URLs allow you to attach a trackable short URL to a campaign, so if the end recipient visits the URL that’s placed on your mail creative, the campaign will be associated with a visitor to that URL link. Note that for this functionality to work, the short URL tagged in the campaign must match the short URL on your mail piece’s creative.
Lob can insert a shortened URL onto your html template using merge variables if you don’t want to add the shortened URL to your creative at the time of designing your creative. To insert and map your shortened URL to the html template variable, add your creative with merge variables in the Creative step of campaigns. Add your desired shortened URL to the campaign, and within the creative merge variable mapping section, select the merge variable where you would like the URL applied to. The shortened URL title should show at the bottom of the mapping variable dropdown field to select. We recommend creating a proof within your campaign before submitting to confirm the short URL applies in the correct spot on your creative and looks as expected before sending to print.
Currently short URLs are tracked at the campaign level, not at the recipient level. This means you will be able to see that your “Summer 2024” campaign had 100 URL visits, but you won’t be able to know “John Smith” is one of the recipients who visited that URL.
You can view analytics for your short URLs in two ways: in the engagement tab within the mail analytics page of the dashboard, or within a campaign details page analytics. Both URL charts will show how many mail pieces were sent with a Lob short URL attached to it, and if a user visited that URL it will then show the total number of visit to that URL. The mail analytics page on the dashboard will allow you to see all short URL sends and visits in aggregate, with the ability to filter by various aspects like date range or metadata. The short URL chart within a campaign details page will only show the URL sends and visits within that campaign specifically, taking into account the date from when the campaign was sent to today. If no short URL was added to your campaign, you will see a placeholder showing no short URL was added instead of seeing the URL chart.
In-depth tutorial of how to neatly break apart sets of data into paginated segments
This will allow you to group elements into the subarrays that will make each page of the dynamic table
This allows you to iterate over each "row" in the withGroup subarrays.
In this case, we're using the if statement to evaluate whether or not we're at the absolute final row for the entirety of our table
CSS / HTML
Within our template, let's place a table and use {{withGroup}}
to break apart our rows
merge variable parameter into 9
groups per page, or {{withGroup rows 9}}
. We have chosen 9
because we have already determined that any more rows than this would spill into the following page. This of course, means that going into this, you'll need an idea of how much space each row will take.
Then, we'll use {{each}}
to iterate over each of the 9
rows per page and access nested elements within the row.
Lastly, we'll use {{if superlast}}
to evaluate if the row we're iterating over is truly the last in the spreadsheet. In our JSON, the last item of rows
will have parameter superlast
equal to true, which triggers this portion off. This logic enables the ability to append a footer to the last page in our spreadsheet.
You'll notice that within this section, we include {{../../first_name}}
, this is because we're referencing the merge variable first_name
two scopes up (one out of the each loop, one out of the withGroup loop).
When we're ready to merge_variables
, we'll need to include our complete array of rows. Note the last item in "rows" has an extra parameter superlast
which is set to true
A common approach to sending direct mail is to send a single, large campaign to a target audience.
At Lob, a "one-time" campaign is a one-to-many method of mail distribution to a broad audience using a single set of mailing instructions.
Popular use cases for one-time campaigns include sending acquisition or cross-sell mailers, retail promotions, annual policy updates, end-of-life notices for a sunsetting product, referral campaigns, etc.
Traditionally, sending a campaign meant negotiating RFPs for every project, long lead times with lots of back-and-forth with the printer, imperfect audience lists, and use of generic creatives that lacked personalization, if any.
With Lob, you can create campaigns using our flexible settings and guidance, choose from various delivery options, and apply dynamic personalization at unprecedented granular levels.
Another common way to send direct mail is to individually dispatch mail, usually initiated by pre-programmed logic or event within an orchestration workflow.
"Triggered" mail is an automated process that sends mail to a single recipient when they meet a pre-set condition or take a defined set of actions within a certain timeline.
Lob refers to these event- or trigger-based campaigns as automated campaigns.
Popular triggered use cases include post-signup onboarding mail, abandoned cart recovery, order notices or monthly statements, product retargeting, and follow-up confirmations.
In the Lob ecosystem, metadata is used to “tag” each mail piece or each campaign. You can use metadata to find individual mail pieces more easily and group mail pieces together for reporting and attribution. Example metadata tags could include a campaign name, a customer segment, or an internal ID. Using metadata smartly can help bridge the gap between Lob and your internal systems, allow you track mail at a more granular level, and create data-driven stories to get the most ROI out of the direct mail channel.
There are several kinds of metadata at Lob:
Mailpiece metadata can be used on our single mailpiece APIs.
Campaign metadata can be used with our Campaigns feature, and allow you to filter your searches by all mailpieces in a particular campaign.
Recipient metadata can be used within our Campaign UI feature in the dashboard, and allow you to filter by a specific subset of mailpieces.
Both mailpiece and campaign metadata rely on key-value pairs that you create.
The key, or tag name, is what will remain consistent across all the mailpieces you’d like to create. For example, “state”.
The value, or tag value, will be unique to each mailpiece, for example “NC” or “CA”.
When combined, you can easily find mailpieces with “state:NC
” or “state:CA
”.
Metadata objects can include up to 20 key-value pairs of custom data. Each metadata key must be less than 40 characters long and values must be less than 500 characters. Neither can contain the characters "
and \
. Metadata does not support nested objects.
Mailpiece metadata applies to each individual mailpiece sent. Mailpiece metadata is great for tags that are specific to each recipient, like state:NC
or first_name:John
.
You can create mailpiece metadata on our single mailpiece APIs by including a metadata object with each mailpiece POST
request. Here is an example of a mailpiece POST
request to our api.lob.com/v1/postcards
endpoint, including a metadata object:
Campaign metadata cannot be configured within your campaign CSV
Each individual mailpiece created through the campaign will inherit Campaign metadata. This is great for tags you’d like to apply to an entire campaign.
In addition to Campaign metadata, you can assign metadata on the individual recipient level. This is great for instances in which you'd like to apply context specific to each individual such as a unique identifier, customer id, or email address.
In the dashboard, you can filter metadata at the single mailpiece level. Any mailpiece created in the Campaigns function will also be visible within the single mail piece tabs.
You can also go into any individual mailpiece, and see the key-value pairs tagged in the 'Metadata' section under the 'Details' section.
Identifying your mail use type helps Lob populate the right mail settings and postage options to ensure your mail is produced and delivered in an optimal way. Lob requires that you identify—or tag—your mail with one of the following use type options:
Marketing mail: Any mailers that are sent for marketing, advertising, and promotional purposes
Operational mail: All other mail, typically transactional or functional in nature, such as invoices, adverse action notices, statements, and other confidential mail that include sensitive PII/PHI data
It will be your full responsibility to accurately represent the purpose of mail that is created and sent. Lob will be unable to make any determination of which use type should be applied to your mail being sent, or for making retroactive changes to your API calls.
You should declare your mail’s use type at the appropriate level based on your organization's usage (at the account, campaign, or mailpiece level).
While an account-level designation is not required, the failure to declare a mail use type at any level means that in the absence of a default value, your organization will be prevented from sending any mail until a use type is declared.
If you or your team sends mailpieces with varying use types (including different teams that utilize the same Lob account for different purposes), then it is best to declare your use types at the single mailpiece level or at the campaign level.
If you have built a native Lob integration to trigger individual mailpieces, you will want to configure a use type at the individual mailpiece level. A mailpiece designation will override your account-level use type, regardless of whether the default selection is made.
When sending a POST
request to the below endpoints, pass in a use_type
value of either marketing
or operational
. Note that the account default will be overridden by passing in a use_type
for each mailpiece. If no account default is set and no single endpoint-level use_type
is passed in the request, the mailpiece cannot be created and will fail with a 422 error.
api.lob.com/v1/letters
api.lob.com/v1/postcards
api.lob.com/v1/self_mailers
api.lob.com/v1/checks
Example: POST /v1/postcards
request with use_type
included
If you have built a native Lob integration to send mail campaigns, you will want to configure a use type at the campaign level. A campaign-level designation will override your account-level mail use type, regardless of whether the default selection is made.
Example:
Example: POST /v1/campaigns
request with use_type
included
If no account default is set and no campaign or mailpiece use_type
field is passed in your API requests, your calls will fail with a 422 error.
To ensure your mail sends do not fail in the future, we strongly recommend you set an account default as a fall-back option as soon as possible
Thinking through your mail delivery strategy can be a powerful differentiator in fostering meaningful connections, and should be a strategic pillar in building any direct mail program. Being adaptive in how you send and deliver mail given fast-changing customer preferences and market conditions can have an outsized impact on improving your reach, relevance, and responses.
Lob’s automation technology offers different delivery options to deploy your direct mail campaigns with regards to speed, reach, and timing, so you can get in front of your target audience in a way that engages them the most.
Mailings can be scheduled up to 180 days in the future. Until that time, mailings can also be canceled. You can use this feature to
Create automated drip campaigns (e.g. send a postcard at 15, 30, and 60 days)
Schedule recurring sends
Plan your mailing schedule ahead of time
Up until the time a mailing is scheduled for, it can also be canceled. If you use this feature in conjunction with a cancellation window, the send_date
parameter will always take precedence.
Example: Create request using send_date
Lob prides itself on speed of execution: our goal is to get mail into the USPS mailstream within 2 business days from submission. However, we’ve heard from customers that more exact timing of delivery is of equal importance. We are currently developing a new feature for timing mail arrival in the end-recipient’s mailbox.
Our goal with Target Delivery will be for 80% of campaign mail pieces to land in the recipient’s mailbox on or within 3 business days before or after the specified in-home target date. With a target release date in 2024, this feature will be available to Enterprise edition customers and prospects who can meet the requirements of volume and saturation.
Personalized response tracking is a standard feature of digital marketing channels, but has traditionally been difficult to replicate in Direct Mail. However, with Lob’s QR code offering, personalized tracking can now be easily incorporated into your Direct Mail campaigns.
All users can generate a single black and white QR code via the Campaigns tool in the dashboard for postcards, all letters, self-mailers, and snap packs.
This QR code will be static, that is, a single URL will be applied across all recipients in a campaign.
The QR code appears in the same location on each mail piece.
In Step 3 of Campaigns generation, after you’ve uploaded your creative (PDF or HTML), select "Add QR code" and a module will pop up.
In the top left-hand side of the QR code builder, under URL click the “Create QR Code URL” button to open an additional window. Enter the landing page URL; this will be used for all mailpieces (and all recipients) in a campaign. When you have input your URL, Save & Close to continue the QR code build.
Next, select “Generate QR code.” A QR code will appear on your mailpiece and you can adjust the size and the placement of the QR code. We recommend sizing no smaller than one inch for optimal readability, and your code should be placed inside the bleed lines, which you can toggle on and off.
When you are happy with your design, Save & Close.
Custom QR code features are available for postcards, (standard) letters, and self-mailers only.
With custom QR codes, you can customize the foreground and background color of the QR code, add a logo into the center of the QR code, and create personalized URLs with dynamic merge tags that are unique to each recipient.
Match your design elements and branding by customizing the color of your QR codes.
In Step 3 of the Campaigns workflow, after you’ve uploaded your creative (PDF or HTML), open the QR code module by clicking the “Add a QR Code” button.
Within the customize section of the QR code builder, you will see an option to customize the Background color and Foreground color. The default color option is set to white and black respectively.
When selecting a color, you can pick from the color gradient selection, or if you have a specific hex color that your brand uses, you can type in or paste the hex value into the color picker to apply your changes. You can choose colors that align with your brand or design for your QR code, but ensure it remains scannable on mobile devices. We recommend using contrasting colors to maintain readability (for example, dark red on light grey has a better contrast than light grey on light blue).
When you are happy with your design, Save & Close.
Further your brand by adding your company logo inside the QR code.
In Step 3 of the Campaigns workflow, after you’ve uploaded your creative (PDF or HTML), open the QR code module by clicking the “Add a QR Code” button.
Within the QR code builder, click the “Upload” button under Brand logo.
Acceptable image types to upload and attach to your QR code are JPG and PNG and file size cannot exceed 1MB.
When uploading a logo to your QR code, Lob will automatically resize the logo to fit the dimensions required for the QR code to properly display.
For transparent images like PNG and SVG, Lob will automatically apply a background color behind the logo so that it’s readable. By default the background color is set to black. If you need a white background to show instead, reverse the colors in the QR code builder so that the background color is white and the foreground color is black as shown below.
When you are happy with your design, Save & Close.
We recommend you verify the QR code looks exactly like you want it to and scans correctly; you can view the Creative Proof to view a sample of a rendered mailpiece.
Build fully customizable and dynamic QR code URLs for a 1-1 recipient matching.
In Step 3 of the Campaigns workflow, after you’ve uploaded your creative (PDF or HTML),open the QR code module by clicking the “Add a QR Code” button.
In the top left-hand side of the QR code builder, under URL click the “Create QR Code URL” button to open an additional window to build out your customized URL. To add personalized merge tags into the URL for each recipient, click “Add merge tag” which displays fields for you to pull variables into your URL.
For One-time campaigns, the merge tags will pull in the columns within the audience file added in Step 2 of the campaign builder.
For Automated campaigns, the merge tags will pull fields from the integration and trigger components you’ve previously set up.
When adding a merge tag into the URL, you can add a dynamic value as a key path in the URL e.g., lob.com/{{state}} if certain recipients will receive a specific landing page for each state they reside in.
If you want to add optional parameters to your URL, add a question mark “?” to the URL followed by the merge tag. Example: lob.com/{{state}}/?{{discount_value}} would output as lob.com/california/?20 to the end recipient.
If you have a use case where you need the entire URL to pull from a row in your audience file that you have already created and included, you can simply add that URL as a merge tag, and only use that merge tag for the QR code URL: {{landing_page_URL}}
Ensure you use unique variable names in both HTML templates and QR codes. If you use the same variable names in both places, the previous mapping will be overridden, and your mailpiece will not generate correctly.
A merge tag can only be used once in a QR code URL. If you have already added a {{state}} merge tag to the URL, you cannot add it again.
What if some recipients have an empty cell/value?
If some recipients have empty merge tags, you can add an optional fallback for each merge tag. This fallback will only be used if the merge tag is empty. Adding a fallback is not required for the QR code to work properly.
For example, if a recipient’s {{state}} merge tag is empty, you can set a fallback to "California," and they will see "California" in the URL and still be directed to the correct page.
When you have input your URL, Save & Close to continue the QR code build.
All users can generate standard QR Codes for postcards, all letters, self-mailers, and snap packs via API.
QR Codes are generated within the API call to create a Lob mailpiece. In addition to passing Lob the name, address, and creative you would like to send the recipient, you will also pass the required parameters to create a QR code: size, positioning, and the URL where you want to send the user upon a scan. Then, when Lob generates the mailpiece, Lob will also dynamically generate the unique QR code and incorporate it into your design.
Custom QR code features are available for postcards, (standard) letters, and self-mailers only.
To add a logo to the center of the QR code include the logo
key.
To customize the colors: An optional style
object can be set on the qr_code
request to customize the colors for the QR code. This enables users to fully select the colors that will be applied on the QR codes. The style object takes a foreground_color
and a background_color
option where you can provide the Hex code for the color you wish to apply to the QR codes.
Indicate the position of your QR code in your mailpiece by setting the required Position
parameter to relative
, then set the distance from a reference position of the “Bottom/Top” and “Right/Left” of your design, in inches. There are a total of 4 anchor combinations available for potential use: top-left, top-right, bottom-left, or bottom-right. Lob recommends using 'bottom-right' as your placement anchor.
Use bottom
for your vertical parameter: The field takes in a value between 0 to max length of the creative
Use right
for your horizontal parameter: The field takes in a value between 0 to max width of a creative
An optional Pages
parameter can be used to specify the pages, in a ‘comma separated’ format, where the QR code should appear. If not included, the default is page 1 for letters, or front
for postcards.
For Postcards, the values should be either front
, back
, or front,back
.
For Letters, the values can be specific page numbers or page number ranges (ex: 2,5
or 1-3
)
For Self-mailers & Snap packs, the values should be inside
, outside,
or inside,outside
.
Currently, you cannot generate QR codes with different locations on different pages.
Via API, users can add more than one QR code to a campaign mail piece (ex: front and back of a postcard, or front and back of a letter) as long as it is placed in the exact location on each side.
Finally, you will set the Destination URL that the QR code resolves to by passing it into the Redirect_URL
parameter. Since Lob QR codes are dynamic, you can pass a unique URL for every single mailpiece you create, such as to direct every mail recipient to a unique landing page, or to capture data using unique UTM parameters.
In the sample API request body above ("redirect_url": "https://www.lob.com/?customer_id12345") we are capturing the specific user ID of the intended recipient of the mailpiece in Lob’s website analytics when the QR code is scanned.
All URLs passed in the Redirect_URL
parameter should begin with “http://
” or “https://
”
To customize the redirect_url
for each recipient, you will use merge_variables
. In your redirect_url
provide a template url, for eg: https://www.google.com?q={{name}}, where the value for the {{name}} variable would come from the merge_variables
section of the payload.
Customize Redirect URLs in Campaigns API:
With the Campaigns API (beta), you have the option to set a single redirect for all recipients in your campaign or unique redirect URLs for each recipient.
To set a single URL redirect for the entire campaign, set the `redirect_url` in the details section of the Creatives (Create) request to your desired URL to this field.
Enterprise users can customize redirect URLs for each campaign recipient by providing a URL template and a data mapping from the Audience file, enabling Lob to generate unique QR code destinations for each mailpiece.
The next step is to let us know where this value comes from, and to do so we allow users to map name
to any column from the Audience file. You can provide this mapping by sending a POST or a PATCH request to the /uploads endpoint for the campaigns.
The mergeVariableColumnMapping
holds the mapping for the name
variable created in the URL template.
Lob API errors contain human-readable explanations in the message
parameter.
For example, you may receive a 422
error containing the message “qr_code.position is required
”. This indicates that no value was passed to the API in the position
parameter.
Remember to test! We recommend you verify the QR code looks exactly like you want it to and scans correctly.
In the Campaigns tool you can view the Creative Proof to view a sample of a rendered mailpiece.
If generating via API, use your Test API Key to preview your creative in Lob and verify that everything looks as intended.
Sizing: All QR codes are square; the minimum width should be at least 1” so that the code can be easily scanned. In the API, set the size of your QR Code by passing through the Width
parameter of your QR code in inches.
Make sure to leave 0.25” of space between your QR code position and any content of your mailpiece that you don’t want to be covered.
Lob QR Codes do not expire. If your destination URL expires, you may want to update live QR codes to redirect to an active landing page.
You can capture impact and engagement metrics from your mail sends with Lob QR codes in a few ways.
QR Code scan data is deleted after 90 days.
Whenever a QR code is scanned from a mailpiece, there will be an event generated, such as postcard.viewed
or letter.viewed
. You can enable notifications on these events by setting up webhooks that will alert you when the scans occur.
This can be incorporated into your omnichannel marketing campaign to subsequently trigger an email, mailpiece, or other action when a mailpiece is viewed.
For instance, if we are sending a mailpiece to a recognized user we’ve assigned a Customer ID of “12345
”, we can append that ID to their Destination Page URL, so that the user can be recognized by our web analytics once they reach the page: www.lob-example.com/login?customer_id=12345
. This enables you to more easily attribute customer activity back to this mailpiece.
UTM parameters can also be used to track Campaign responses, A/B test variants, and other key data points that inform your understanding of the response to your campaign.
by USPS enhances the mail experience by providing subscribers a daily email with a digital preview of incoming mail.
The preview may be a representative image or an actual scan of the mailpiece. The email includes a : a small, full-color, interactive image that redirects to a target URL. This supplemental content is meant to enhance the customer call-to-action and reinforce the messaging and objective of the mailpiece.
You can review the
Access to this feature is exclusive to Enterprise plan customers, and by request only. Upgrade to the appropriate to gain access.
Cost Savings: 3-4% postage discount for approved campaigns during the , August 1-December 31, 2024. Reach out to your Account Manager to learn more.
Upload your
Include required fields: , URL, Campaign Size.
Choose from available approved Informed Delivery Promotions (Procured in ).
Upload the
Engagement metrics for Informed Delivery campaigns will be visible in the Mail Analytics in the dashboard, under the tab. Learn more about . Below is a breakdown of the engagement metrics:
Note your image must be in full-color; the USPS has provided more helpful guidelines here:
using Lob's URL Shortener, you can transform this URL to a custom short URL of your choosing like . The shortened URL will still point the end user to that full destination URL above, but will make it easier for a user to digest and type in their browser when receiving the direct mail piece.
This is the full URL that you want to send users to that should be shortened. In the example above, this is where you would put a URL such as
This is the path that you would like users to see on their mail creative, which then would redirect to the full destination URL above. Using the above example again, this is where you would have . In this case, would be what you add on your direct mail creative copy to then be printed. When users type in their web browser, it would then redirect to the full destination URL.
To add a static short URL to your campaign, create a new URL in the or directly within the campaign flow on the Creative step. For any previously created short URL, you can select to add an existing short URL previously created within the Creative step of the campaign flow as well.
For certain use cases, you may need a table of dynamic length. These tables should not have rows that are divided between pages, and you may need a header for each page. This tutorial breaks down how to create them using the .
Once we've implemented the logic for dynamic tables into our own templates, we can post to the /templates
endpoint, making sure that the engine
parameter is set to handlebars
. This will provide back a template reference id. We can then use this in the file
parameter for the /letters
endpoint. For more information on and see the associated hyperlinks.
One-time campaign execution is easy in the Lob Dashboard via , or programmatically via our .
Using Lob's single endpoint APIs, you can create a custom trigger automation from scratch, or take advantage of popular pre-built to connect to a platform you already use for your digital channels. Or for a less technical lift, you can automate your sends .
See .
Metadata at the campaign level is configured on the POST /v1/campaigns
or in the dashboard, in the Campaigns screen at the bottom “Add Tags” section.
Example: In the section, click on ‘Filters’ and search by Metadata
If the majority of your mailpieces have a singular use type, then it is best to configure a default use type at the account level. This can be changed by an account administrator in the Use Type section in the . An account-level setting will be applied to any mailpiece created without a use_type
at the individual mailpiece or campaign level.
To set an account-level default, go to your tab:
When sending a single mailpiece through the dashboard, use type will be a required selection for every mailpiece format (, , , or ).
Example: Use Type selection when creating a new in the Dashboard
The Campaigns product is designed to help send large volumes of mail quickly, either through the or .
When sending a Campaign on the dashboard, selecting a campaign use type is a required step during the “” page in Step 1. You will be able to select one of two options: Marketing or Operational. Any selection will be applied to all mailpieces within the same campaign.
When using the , add the use_type
field to the POST /v1/campaigns
request. If the use_type
is not added, the campaign will use the account default use_type
. If no account default is set and no campaign-level use_type
is passed in the request, the campaign cannot be created and will fail with a 422 error.
Read more about under the "Error Codes - Advanced" section of our API Reference.
As a default, Lob mail will be immediately sent and routed to production after the customer submits a mail order, pending any applied at the account or campaign level. This is the primary API setting for Lob mailings that is available to all customers, and optimizes for speed of delivery over delivery timing or reach.
See on how to track individual mail pieces at each step of the production and delivery process, and see on setting up and surfacing mail tracking notifications.
Scheduled Mailings is available only to customers. Contact or your Account Manager to gain access to this feature.
Scheduling a mailing for the future just requires one additional parameter: send_date
. This specifies a date and time up to 180 days in the future to start processing the mailing. For billing purposes, requests will count towards the month of their send_date
, and will not be charged if they are canceled before that time. If your account has a set for the resource you are creating, passing a send_date
will override that window. For more detailed request information, see our .
If something changes on your side and you no longer wish to send a mailing that had already been scheduled (such as the customer taking a certain action), you can programmatically as long as the mailing's send_date
has not passed. Additionally, you can cancel a mailing from your on the page associated with your mail piece.
Target Delivery is under development; contact or your Account Manager to explore this functionality.
Lob’s platform allows you to generate a for each individual mailpiece you send. This feature is available via
our in the dashboard,
our (Print & Mail and Campaigns API), and
we also support the use of to generate QR codes.
We offer to measure the impact of every mailpiece you send. This gives you the ability to track Direct Mail response data in real-time, long before any conversion event ultimately takes place.
These features are available for Enterprise users. Upgrade your to gain access to this feature, or reach out to our to learn more.
Lob QR codes can be generated by including the object in the transactional API request body while creating , , or . In the Campaigns API (beta), this object can be found in the ) call.
These features are available for Enterprise users. Upgrade your to gain access to this feature, or reach out to our to learn more.
section on URL redirects for how to personalize URLs.
An example of a URL template for the redirect_url
, is }}, you can add one or more variables in the template and submit the creative request.
Mailpiece placement: Lob QR codes will be pasted over your design like how Lob places the ‘’, so make sure to designate the size and positioning of your QR code away from any critical designs.
Do not place your QR code over the area in which the mailing address will be printed. .
When positioning your QR code, make sure to take into account the added to the artboard dimensions of the mailpiece. For example, the dimensions of a 4x6” Postcard in Lob are 4.25” x 6.25”.
The tab will display metrics for all mail you have sent with Lob across any number of campaigns within a time period. QR code scan data can be found under the Engagement tab.
From the Campaigns dashboard, when you drill down to the detail/status page for any individual campaign you can view . QR code scan data can be found under the Analytics tab > QR Code Engagement.
Retrieve analytics for Lob-native QR codes from Lob’s qr-code-service.lob.com
API endpoint. For detailed data, see the QR Code section in our .
See the webhooks section in our , or learn more about here in the help center.
are short text codes that you add to URLs (or links) that help track performance. Because QR codes can be generated dynamically at the time of their creation, we can generate QR codes with UTM parameters that correlate to the recipient.
Metric
Description
Mail Pieces
Total number of mail pieces sent as part of your Informed Delivery Campaign.
Emails
The number of recipients signed up for Informed Delivery who received an Informed Delivery email.
Emails Opened
The number of emails that were opened. Note: This number can exceed 100% as multiple people within the same household may receive and open their Informed Delivery email.
Click Through
The total number of times the link in your Informed Delivery campaign was clicked.
As you use the Lob API to send mail programmatically, it is important that you manage your account settings to send mail so that they accurately reflect the needs of your business workflows and the frequency of your customer engagements and outreach. Most of the following settings can be adjusted via the API or in your Lob dashboard.
For any mail piece that is sent through Lob, you will need to indicate which mail use type is being sent. This helps Lob populate the right mail settings and postage options to ensure your mail is produced and delivered in an optimal way.
The following use type options are available for your mail pieces:
Marketing mail: These are mail pieces sent for promotional purposes, such as for acquisition, cross-sell, retention, or win-back campaigns.
Operational mail: These are mail pieces sent for transactional purposes as part of your trusted business outreach and customer communications, such as account notifications, invoices and payment, policy changes, service announcements, or other similar reasons.
See Declaring mail use type for details.
Depending on what business logic you’d like to take based on your verification result, you can toggle your US Address Strictness Settings in your dashboard. Each level of strictness determines how much you'd like for our platform to use internal data on deliverability to restrict mail from being created and delivered to potentially invalid addresses. There are 3 possible Strictness Levels:
Strict: Only US addresses that Lob and the USPS deem deliverable can be successfully used as the to
address for postcard, letter or check resources. Mail piece requests sent with non-deliverable addresses will return a 422
(Unprocessable Entity) error. This maps to a deliverability
value of deliverable
(see API documentation). If addresses have never been run through verification (i.e. were created in the past), they will also err when used as the to address.
Normal: Mail pieces will be created for addresses that Lob and the USPS deem deliverable, as well as addresses for which secondary information is extraneous or missing. Otherwise, you will receive a 422
(Unprocessable Entity) error. This maps to the deliverability
values of deliverable
, deliverable_unnecessary_unit
, deliverable_incorrect_unit
and deliverable_missing_unit
(see API documentation). If addresses have never been run through verification (i.e. were created in the past), they will also err when used as the to address.
Relaxed: All mail pieces will be successfully created and mail delivery will be attempted, regardless of address validity. You will not receive a 422
(Unprocessable Entity) for Address Strictness reasons.
Ultimately, this allows you completely control the destiny of your final pieces. Only want to send to addresses that are guaranteed to be deliverable? Pick "Strict" mode. Confident that your addresses are right and want us to mail them out anyway? Use "Relaxed" mode. We want to give you the power to decide when Lob should be sending mail or when we should be rejecting based on deliverability. Ultimately, this reduces the amount of undeliverable mail you send and saves you money.
Depending on how much control you'd like over your HTML integration, we offer two different account settings that affect how we treat merge variables. This account setting affects the POST /v1/postcards
, POST /v1/self_mailers
, POST /v1/letters
, and POST /v1/checks
single endpoints in both test and live mode:
Strict: Lob will send a 422
error if you define a merge variable in your HTML that is not passed in the merge_variables
field of that request. Pass ''
or null
to have a particular defined variable not render.
Relaxed: Lob will not send an error if you define a merge variable in your HTML that is not included in the merge_variables
field of that request. Instead, we will simply render nothing in the HTML in place of that merge variable.
Note that in the Campaigns feature, you have additional flexibility to set merge variable strictness settings specific to each campaign, which will override your account-level settings. If you set campaign-level settings to 'Strict', any individual mail pieces that do not have a merge variable input value will not be sent. However, it is also possible to use a substitution value to replace missing merge variable input data, which will allow your mail pieces to be sent with generic values.
Regardless of your strictness setting, if you pass merge variables keys that are not defined in your HTML, no error will be thrown. Your HTML will simply be rendered as normal without substituting the extra variable(s).
NOTE: On the 2020-02-11 and later API versions which support JSON in merge variables, merge variable strictness will still apply to the nested object keys, i.e. if a nested merge variable is undefined on the strict setting, then Lob will send an error.
By default, all new accounts have a 4-hour cancellation window for any single mail piece that is created. Within this buffer timeframe, you can cancel mailings, free of charge. This gives you the flexibility to quickly QA your mailings before they are finally sent to production.
Note that in the Campaigns feature, you have additional flexibility to establish cancellation windows specific to each campaign, which will override your account-level cancellation window settings.
Once the cancellation time window has passed for any single mail piece or for a batch of mail pieces within a campaign, the mailing is no longer cancelable and has been sent to our printers for production.
Customers on higher editions can customize their cancellation windows by mail product in their dashboard settings. Upgrade to the appropriate Print & Mail edition if interested in gaining access to this ability.
Growth edition customers and above can customize their cancellation windows. If you have access to this feature, your cancellation window can be anything from 0 minutes (no cancellation window) to up to 3 days.
Keep in mind that when you edit your cancellation window settings, any changes made will only apply to mailings created after the update was made. If you find yourself constantly changing your cancellation window for different use cases, we recommend using our scheduling mailings feature instead.
Within your chosen cancellation window, any single mail piece or batch of mail pieces within the Mail Campaign feature is cancelable. This means that they will be completely removed from production and that they will not count towards your monthly usage for billing purposes.
To cancel a mailing, either use the API endpoint or cancel the mailing from the dashboard. In either case, the mailing will only be cancelable if its send_date
has not yet passed.
To cancel a list of mailings, you can use a combination of our LIST
and DELETE
endpoints to paginate through results and attempt to delete mailings that meet the specific criteria you set.
Even if you have a cancellation window set on your account, using the scheduling mailings feature to schedule a mailing will override your cancellation window and the send_date
passed will be used instead.
Not only is this useful for scheduling mailings far off in the future, but it is also handy for completely bypassing any cancellation window you might have and sending one mailing or batch off to production immediately.
Upgrade to a Growth edition or above to take advantage of configurable cancellation windows. Adjust this window to a time that works for you so you have time to cancel on your end
Have your developer build in buffer time into your Lob integration to give your team extra buffer time to cancel before submitting a live production request to Lob
Protip: configure different cancellation windows per mail format / use case individually in your dashboard settings
If you were unable to stop a check sent through Lob, you can still prevent it from being deposited by contacting your bank and placing a stop payment on the check. This can be done by contacting and providing your bank with the check number.
Give yourself a longer buffer while your team becomes familiar with the Lob platform, especially when sending through the Mail Campaigns feature, as sending large-scale mail volumes may amplify the magnitude (and costs) of any errors committed. Once you've become familiar with Lob and its functionalities, gradually adjust your buffer time in order to send your mail to production sooner.
Cancellation windows on your account will delay the sending of any outgoing mail by the desired time window. Make sure to account for cancellation windows when considering daily production cutoff times of 10am PT.
For example, if you want to make the cutoff time of 10am PT and your cancellation window is 60 minutes, your cutoff time is actually 9am PT.
If you want to bypass your cancellation window for a certain send, you can do so by scheduling your mailings.
Idempotent Requests are requests that can be called many times without producing different outcomes. GET
and DELETE
requests are idempotent by definition, meaning the same backend work will occur no matter how many times the same request is issued. POST
requests, however, are not idempotent. Sending a successful POST
request once will result in a newly created object. If you send the same POST
request 5 times, you will create 5 resources, assuming none of those requests err. If a network error occurs, there is no deterministic way to ensure the exact number of resources created.
For this reason, we have added a feature that will allow you to safely resend the same POST
request to single endpoints (such as /v1/postcards
, /v1/self_mailers
, /v1/letters
, or /v1/checks
) and ensure that duplicate products are not created. To perform an idempotent POST
request, you simply need to provide an additional Idempotency-Key
header that uniquely identifies that resource. See our API documentation for more specific information.
The Idempotency Key is a feature that allows you to pass a unique key along with each request and guarantee that only one mailer is created and sent to prevent any duplicate mailings from being created. You can safely retry the same request with the same Idempotency Key and be assured that no duplicates are created even if the API is called multiple times within 24 hours.
We suggest using V4 UUID or another appropriately random string, but how you create the unique keys is up to you. For example, if you would like to associate a check with an internal unique ID of the user you are sending the check to, you may use that user id and the transaction date as an Idempotency Key (as long as you can guarantee the uniqueness of each Idempotency Key across requests to the same product). This key will expire after 24 hours, meaning if you resend the same request with the same Idempotency Key after 24 hours, a second resource will be created. Ultimately, it is up to you to make sure that you are appropriately setting the uniqueness of your keys based on your business logic. See resources below for help generating V4 UUIDs in various languages.
In case of failure, we recommend following something akin to an exponential backoff algorithm for retrying your idempotent requests. This ensures that you aren't retrying continuously on a downed server, thereby contributing to the issue at hand.
Below are resources we recommend in various languages for generating V4 UUIDs.
Using the Handlebar templating engine to create advanced templates
By default, Lob uses a basic templating engine based on Mustache. If you would like to render complex personalizations, use the alternate Handlebars templating engine route through Lob API. Handlebars syntax allows you to populate, evaluate, and iterate using templates and API requests. The biggest advantage of this approach is quickly creating dynamic personalization without making any changes to your codebase. We can use advanced templating to make dynamic tables.
Start with any Handlebars-friendly template. Dynamic variables should be wrapped in double curly braces {{like_this}}
. To the right is an example of a simple handlebars
template.
To push your template to a Lob environment, use the /v1/templates
API. Creating Handlebars templates via the Dashboard UI is not supported at this time. To specify that our service should use the Handlebars templating engine, you will need pass handlebars
in the template request engine
field as shown on the right.
Note the optional field, required_vars
. Any request to create a mailpiece using this template will require the variables listed there in order to complete successfully.
You can use this newly created endpoint to test that your Handlebars template compiles as expected. To do that, use the /v1/templates/
endpoint and add your merge variable(s) as a dynamic URL query parameter. You can use this to inspect how your template will display with the merge variables passed in. The response is the same format that Lob will use to render your mailpiece.
Now that your template has been created in a Lob environment, the templating engine
has been set to handlebars
, and you've tested out your template using the Template Compilation API, you can send a mailpiece request to the /v1/checks/
, /v1/postcards/
, /v1/letters/
or /v1/self_mailers/
endpoint as you normally would. In the request message body, use the merge_variables
field to pass in dynamic values.
The below helpers can be used for many dynamic use cases. Helpers like if
blocks can include nested built-in and customer helper conditionals (like if
, and
, or
, eq
, etc).
You can use the if
helper to conditionally render a block. If its argument returns false
, undefined
, null
, ""
, 0
, or []
, Handlebars will not render the block.
When you pass the following input to the above template:
This will produce the result as below:
If the input is an empty JSONObject {}
, then author
will become undefined
and if
condition fails, resulting in the output as follow:
When using a block expression, you can specify a template section to run if the expression returns a falsey value. The section, marked by else
is called an "else section".
You can iterate over a list using the built-in each
helper. Inside the block, you can use this
to reference the element being iterated over.
when used with this context:
will result in:
You can use the this
expression in any context to reference the current context.
You can optionally provide an else
section which will display only when the list is empty.
When looping through items in each
, you can optionally reference the current loop index via {{@index}}
.
Additionally for object iteration, {{@key}}
references the current key name:
The first and last steps of iteration are noted via the @first
and @last
variables when iterating over an array. When iterating over an object only the @first
is available. Nested each blocks may access the iteration variables via depth based paths. To access the parent index, for example, {{@../index}}
can be used.
The with
-helper allows you to change the evaluation context of template-part.
when used with this context:
will result in:
with
can also be used with block parameters to define known references in the current block. The example above can be converted to
Which allows for complex templates to potentially provide clearer code than ../
depthed references allow for.
You can optionally provide an {{else}}
section which will display only when the passed value is empty.
The lookup
helper allows for dynamic parameter resolution using Handlebars variables.
This is useful for resolving values for array indexes.
It can also be used to lookup properties of object based on data from the input. The following is a more complex example that uses lookup
in a sub-expression to change the evaluation contextto another object based on a property-value.
Custom helpers are additional functions that can assist in the formatting of your document. The documentation here is directly pulled from the associated third-party github repo. The helpers below are supported.
For uniformity with Handlebars' terminology, we use the wordfalsey
instead of the more commonly used falsy
.
In 2025, USPS is offering Add-on Promotions that provide additional postage discounts for mailpieces that already qualify for regular USPS promotions.
Add-ons are designed to help you save even more by meeting specific criteria alongside your standard promotional mailings. Explore the details below to see how Lob can support you in applying for these extra savings.
Informed Delivery by USPS enhances the traditional mail experience by providing subscribers with a daily email preview of their incoming mail. This preview includes either a representative image or an actual scan of the mailpiece.
The email also includes a ride-along image: a small, full-color, interactive image that links to a target URL. This additional content reinforces your mailpiece’s messaging and call-to-action while providing a digital touchpoint for engagement.
In order to qualify for the Informed Delivery Add-On, your mailpiece has to qualify and be approved for a promotion as well. A mailpiece that does not have a promotion attached to it will not receive the 1% discount.
Combining direct mail with digital technologies, such as Informed Delivery, amplifies campaign success by connecting physical and digital marketing strategies.
Key benefits
Increased customer engagement: Seamlessly integrates physical mail with digital campaigns, enhancing interaction.
Extended marketing reach: Adds a supplemental digital footprint for your mail campaign at no extra cost.
Attribution data: Provides actionable insights into campaign performance, helping refine future strategies.
Impressive reach
As of March 2024, 62.4 million users are actively subscribed to USPS’s Informed Delivery program, providing a substantial and growing audience for your campaigns.
Step 1: Sign up for the Informed Delivery promotion
Log into the Lob Dashboard:
Navigate to Billing > Promotions, and click Create an Informed Delivery Promotion.
Enter promotion details:
Promotion Name
Promotional URL (where the ride-along image will redirect users)
Upload your Ride-Along Image
Ride-along image specifications:
Format: Full-color JPG
Dimensions: 200x300 pixels
Max File Size: 200KB
Submit for approval:
Click Create an Informed Delivery Promotion to send your application to USPS.
Allow 3–5 business days for approval and watch for email notification once approved.
Step 2: Send an Informed Delivery Campaign
You can send an Informed Delivery campaign via API or Campaigns in Lob.
Option 1: Send via API
POST campaign data:
Use the Lob API to send the informed_delivery_campaign and retrieve a campaign_id.
Include required fields:
Promotional URL
Campaign size
Optional fields:
Brand name: Defaults to the company name in Lob unless specified.
Representative image: A sample image of the mailpiece. This should reflect all mailers in the campaign and must not include PII. If omitted, USPS will display a scan of the mailpiece instead.
Validate campaign: After a successful POST, receive the campaign_id and confirm qualification for existing promotions.
Send mail: Include the informed_delivery_campaign_id in your submission to Lob as usual.
Option 2: Send via Lob Campaigns
Set up campaign:
Begin your campaign setup in Lob Campaigns.
Enable Informed Delivery:
When prompted, select the option to use Informed Delivery.
Choose from available approved promotions obtained in Step 1.
Enter campaign details:
Promotional URL
Upload the Ride-Along Image.
Ride-Along Image specifications:
Format: JPG
Dimensions: 500x780 pixels
Max file size: 200KB
Optional fields:
Brand name: Appears in the Informed Delivery email sent to subscribers. Defaults to your company name in Lob unless customized.
Representative image: A sample of your mailpiece (similar rules as for API campaigns apply).
Launch campaign:
Complete your setup and submit. Lob ensures that the mailpiece adheres to USPS’s Informed Delivery standards.
The USPS Sustainability Add-On rewards businesses that use environmentally friendly materials in their print production by offering an additional 1% discount on all eligible mailpieces. This add-on promotes eco-conscious practices and helps businesses reduce their environmental impact.
As long as you opt into the Sustainability Add-On in the USPS Promotions Portal, any mailpiece tied to a USPS promotion will automatically receive the 1% sustainability discount add-on.
As USPS’s Mail Service Provider of the Year, Lob partners closely with the postal service to offer innovative solutions designed to enhance the impact of direct mail campaigns. USPS Integrated Technology bridges the gap between physical and digital marketing by incorporating cutting-edge tools that engage consumers in new and exciting ways.
Four key USPS Integrated Technology experiences are available through Lob:
Mobile shopping: Incorporate QR codes that lead to mobile-optimized websites showcasing physical products. Note that the product you are pointing recipients to must be a physical product.
Artificial intelligence: Use generative AI to craft compelling copy or visuals to meet your campaign goals.
Voice assistant integration: Encourage interactions through voice prompts to guide exploration.
Augmented reality (AR): Create immersive experiences that blend physical and digital with 3D images.
To qualify for USPS discounts, your mailpiece must meet specific requirements based on the technology included.
Technology triggers: Incorporate features such as apps, QR codes, or barcodes
Directional copy: Directional copy explains the action you want the recipient to take. For example: “Scan this QR code for an exclusive shopping experience.”
Follow these guidelines:
Clearly display instructions for how recipients should interact with the mailpiece.
Place instructions (directional copy) next to the trigger (e.g., QR code, icon) to guide engagement.
Make the instructions visible on every page where the trigger appears.
Ensure the technology used supports the main purpose of the mailpiece.
Specify compatible platforms or devices if the experience is limited to a specific operating system (e.g., Android only).
Mobile optimization: Any linked websites must offer seamless, mobile-friendly experiences, especially for purchasing physical products.
The mobile shopping USPS Integrated Technology experience is ideal for retail or B2C campaigns targeting physical product sales.
How to qualify:
QR codes should meet size requirements (minimum ½ inch by ½ inch) and include adjacent directional copy, such as, “Scan for your personal offer.”
Directional copy must be as big as or larger than the marketing message.
Must direct users to a fully optimized mobile website with an end-to-end shopping journey.
Digital shopping experience requirements:
Scans must lead to a fully mobile-optimized website that supports the entire shopping experience, from browsing to purchase completion.
Landing pages can include pop-ups, provided users can easily close them.
The scan must direct users to a purchase site relevant to the mailpiece's message.
The purchase site must sell physical products (e.g., QR codes for credit card applications are eligible if a physical card is mailed to the customer).
Customers must be able to complete a purchase on the site.
Artificial intelligence
To qualify as an artificial intelligence Integrated Technology experience, a mailpiece must include text or images that were created by leveraging generative AI tools, such as Adobe Firefly, ChatGPT, or Microsoft Copilot.
How to qualify:
AI-generated text: Include at least one sentence of text generated by an AI tool (e.g. a call-to-action or supporting sentence).
AI-generated images: Use at least one AI-generated image directly related to the mailpiece's message.
Pre-approval is required to participate in this promotion. Here’s an overview of the pre-approval process:
Submit a digital file (e.g., PDF) showing the AI prompt alongside its output in an unedited format.
Optionally, include a link to the prompt and output for reference.
Provide a short description of how the AI tool was used in creating the copy or image.
If edits were made to the AI-generated content, explain the changes and the reasons for them.
Ensure there is a clear connection between the prompt and the AI-generated output.
The mailpiece must match the AI output entirely unless justified edits are documented.
Mailpieces are not eligible if they use edited AI-generated output without explanation or rely on prompts that directly instruct the AI to repeat specific phrases verbatim (e.g., prompting “Repeat after me, take me to xyz.com” to produce identical copy).
To qualify for the Integrated Technology voice assistant experience, your mailpiece must include instructions directing recipients to use a voice prompt for a targeted response or action via a voice assistant. This promotion is best for retail or B2C companies.
How to qualify:
Eligible approaches include:
Using a simple voice command to direct recipients to a website related to the mailpiece's purpose.
Leveraging pre-existing modules in Alexa or Google Assistant without requiring a new skill or action.
Customizing pre-existing modules to include branded content or scripts unique to your campaign.
Developing a fully custom skill or action using tools like the Alexa Skill Kit (ASK).
All voice assistant experiences must deliver measurable business outcomes.
Mailpieces that do not have a clear reason for directing users to a specific website will not qualify for Voice Assistant discounts. For example, a mailer from ABC Travel that says, "Hey Google, take me to EFGusedcars.com" for a vacation promotion to the Bahamas, or a mailer saying, "Hey Siri, take me to EFGusedcars.com" without explaining the relevance of the website, will not qualify.
Companies must submit an audio file attachment demonstrating the voice command and response when submitting the mailpiece in the MPP during the pre-approval process. Any submission that does not include an audio file cannot be approved as final until USPS receives the audio file.
The USPS Augmented Reality promotion allows businesses to integrate interactive 3D elements, animations, and digital experiences into their direct mailpieces, enhancing engagement by blending the physical mail with digital content.
How to qualify:
Ensure your mailpiece includes animation, and 3D elements, images, or modules.
Create a dynamic interaction between the physical mailpiece and digital content, engaging the recipient through 3D elements and animations that respond to their perspective.
Examples:
A QR code on mailpiece that directs customers to an interactive experience:
“Dive into your next trip with ABC Travel! Scan this QR code to splash in the pool before you arrive.”
A QR code opens the app store to download a branded AR experience:
“Want to dive deep in the ocean? Download our ABC Travel app to explore our favorite scuba tours.”
AR experiences that include only static, pop-up, or worded displays that do not actively engage the recipient will not qualify. Similarly, 2D AR images, which lack interactive elements or depth, are also not eligible. For a valid AR experience, the recipient must engage with the content beyond just reading or clicking a button.
In order to participate in this promotion, you will first need to “Opt In” in the Lob Promotions Portal and accept the terms and conditions of participating in the promotion through Lob.
Once you have selected which Integrated Technology element your mail pieces will include, you are ready to submit your campaign for pre-approval.
Log into the Lob Promotions Portal and select Submit Mailpiece Pre-Approval. Complete all fields and upload your PDF samples.
Any final mailpieces that deviate from the prototypes, mock-ups, or examples submitted for pre-verification will be subject to the loss of the discount.
Pre-Approval notification from the Portal is for the technology implementation only. The mailpiece must also satisfy all of the remaining requirements in this document to qualify for the promotion discount.
Past acceptance/approval in prior year promotion does not guarantee acceptance/approval in current year promotions. Please review the USPS Integrated Technology 2025 Promotion Guidebook to ensure that the mail piece meets all the 2025 Program Requirements.
USPS Integrated Technology FAQs
Lob will be supporting this promotion from 6/1/2025-12/31/2025.
The easiest way to leverage this promotion is by using Lob's QR code feature to direct recipients to a mobile-optimized website. This approach not only boosts website traffic but also qualifies you for a 3% discount for including a QR code linked to a mobile-friendly site.
The USPS Integrated Technology promotion is a good fit for retail and B2C customers aiming to enhance customer engagement and drive traffic to their websites or digital content. It’s particularly beneficial for those focused on boosting online conversions or promoting mobile-optimized shopping experiences.
A QR code on mailpiece that directs customers to an interactive experience:
“Dive into your next trip with ABC Travel! Scan this QR code to splash in the pool before you arrive.”
A QR code opens the app store to download a branded AR experience:
ode on mailpiece that directs customers to an interactive experience:
“Want to dive deep in the ocean? Download our ABC Travel app to explore our favorite scuba tours.”
AR experiences that include only static, pop-up, or worded displays that do not actively engage the recipient will not qualify. Similarly, 2D AR images, which lack interactive elements or depth, are also not eligible. For a valid AR experience, the recipient must engage with the content beyond just reading or clicking a button.
In order to participate in this promotion, you will first need to “Opt In” in the Lob Promotions Portal and accept the terms and conditions of participating in the promotion through Lob.
Once you have selected which Integrated Technology element your mail pieces will include, you are ready to submit your campaign for pre-approval.
Log into the Lob Promotions Portal and select Submit Mailpiece Pre-Approval. Complete all fields and upload your PDF samples.
Any final mailpieces that deviate from the prototypes, mock-ups, or examples submitted for pre-verification will be subject to the loss of the discount.
Pre-Approval notification from the Portal is for the technology implementation only. The mailpiece must also satisfy all of the remaining requirements in this document to qualify for the promotion discount.
Past acceptance/approval in prior year promotion does not guarantee acceptance/approval in current year promotions. Please review the USPS Integrated Technology 2025 Promotion Guidebook to ensure that the mail piece meets all the 2025 Program Requirements.
Lob will be supporting this promotion from 6/1/2025-12/31/2025.
The easiest way to leverage this promotion is by using Lob's QR code feature to direct recipients to a mobile-optimized website. This approach not only boosts website traffic but also qualifies you for a 3% discount for including a QR code linked to a mobile-friendly site.
The USPS Integrated Technology promotion is a good fit for retail and B2C customers aiming to enhance customer engagement and drive traffic to their websites or digital content. It’s particularly beneficial for those focused on boosting online conversions or promoting mobile-optimized shopping experiences.
The First-Class Marketing Mail promotion offers businesses a unique opportunity to blend the reliability and prestige of First-Class Mail with impactful advertising. Whether it’s standalone advertisements or marketing messages integrated into First-Class Mail pieces, this promotion allows businesses to captivate recipients and drive meaningful engagement. By leveraging First-Class Mail’s superior delivery service and incorporating effective marketing strategies, you can unlock powerful ways to connect with your audience and achieve your marketing goals.
First-Class Mail, including letters, cards, and flats, is eligible for this promotion. Your First-Class mailings must include one of the following:
Marketing messages within First-Class mailpieces
Standalone advertisements using First-Class mailpieces
Here are examples of the types of marketing messages you can include (not a comprehensive list):
Discount offers:
“Save 10% on your next purchase with this exclusive coupon!”
“Unlock a special 20% discount with your personalized code!”
Limited-time offers:
“Act now! This offer expires in 7 days.”
“Last chance to save - this offer ends Friday!”
New product introductions:
“Be the first to try our latest product—now available!”
Customer loyalty rewards:
“Earn double rewards points on all purchases this month.”
Event Invitations:
“Join us for our exclusive VIP event next week!”
“You’re invited! Attend our launch party next week!”
Personalized Offers:
“Here’s a gift for you, [Customer Name]! Save 15% on your next order!”
The following types of messages will disqualify your mailpieces from the promotion:
Content that promotes mail diversion (e.g., “Go paperless” or “Switch to e-billing”).
Non-marketing messages, such as those about paying bills online.
Purely informational messages without a marketing element (e.g., “Our hours of operation have changed”).
Marketing messages that only appear on buck slips, stickers, note cards, or similar inserts (they must be on the mailpiece itself).
After selecting the marketing message you plan to use for your First-Class Marketing Mail campaign, log into the Lob promotions portal to submit your campaign for approval.
Note: In order to participate in this promotion, you will first need to “Opt In” in the Lob Promotions Portal and accept the terms and conditions of participating in the promotion through Lob.
Follow this process for campaign approval:
Design and submit your mailpiece:
Incorporate your selected marketing message directly onto your mailpiece.
Ensure your design meets the promotion's requirements.
Use the Lob Promotions Portal to submit your Mailpiece Pre-Approval:
Upload PDF samples of your design.
Receive pre-approval
Any changes to the final mailpiece from the submitted prototype may result in disqualification from the discount.
Prototypes must be approved in writing before the mailing date.
Register for the promotion
If you haven’t already, sign up for the First-Class Mail Advertising Promotion on the Lob Promotions Portal. This must be completed at least 2 hours before mailing.
Finalize and send
Lob will prepare your postage statements and submit them electronically using the CCR code FA to reflect the discount.
Send your mailing and keep a hard copy for your records.
Watch your customer engagement rise!
The First-Class Marketing Mail promotion runs from September 1, 2025, to December 31, 2025.
Add a marketing message: Update your operational or transactional mailpieces to include at least one marketing message directly on the mailpiece.
Upgrade to First-Class Mail: Ensure your mailpieces are sent using First-Class Mail to qualify for the discount.
This promotion is ideal for operational and transactional customers currently using Lob’s First-Class Mail product. By adding a compliant marketing message to your mailpieces, you can unlock this discount while enhancing customer engagement. Just remember to avoid any messaging that encourages mail diversion, such as “See our website for your offers!”
Take advantage of this opportunity to elevate your mail campaigns and drive better results with Lob’s seamless workflows and USPS First-Class Marketing Mail discounts!
Secure Destruction is a free service provided by the United States Postal Service (USPS) that offers a secure method for handling undeliverable First-Class mail. This service is especially beneficial for customers managing sensitive documents, such as those containing Personal Identifiable Information (PII), financial data, or medical information, while also helping reduce costs and environmental impact.
Secure Destruction ensures that any undeliverable First-Class mail is securely destroyed at USPS facilities. Rather than being returned to the sender, mail is processed and eliminated under strict security protocols, preventing any potential unauthorized access.
Lob provides this service at no cost to customers who send First-Class mail, and it can be easily integrated into existing workflows for organizations that regularly deal with undeliverable mail.
Enhanced Customer Security Secure Destruction offers a significant value-add for organizations that handle sensitive customer data, such as PII, financial records, or medical information. By ensuring that undeliverable mail is destroyed securely, companies can maintain compliance with data protection regulations, reduce the risk of breaches, and improve customer trust.
Cost Savings Secure Destruction helps customers avoid the financial burden of handling undeliverable mail. For example, companies that do not use this service may need to contract with third-party vendors or allocate in-house resources to manage the destruction of returned mail.
Reduce Environmental Footprint Secure Destruction also offers environmental benefits by eliminating the reverse logistics of returning mailpieces to senders. By preventing the need for transportation and manual disposal, carbon emissions are reduced. This aligns with Lob's sustainability mission to minimize the environmental impact of mail processing.
Secure Destruction is available exclusively for First-Class letters and snap packs. If your organization sends these types of mail, you can easily enable Secure Destruction through your account page. Once activated, any undeliverable First-Class mail will be securely destroyed at USPS facilities, ensuring your sensitive documents are handled with the highest level of security.
Secure Destruction is ideal for First-Class mailers, particularly those who manage sensitive information or face significant logistical challenges in processing undeliverable mail. This includes:
Financial institutions
Health care providers
Insurance providers
Public and private education institutions
Government agencies
Utility companies
Mail service providers
Legal service providers
Once your organization opts into Secure Destruction, Lob will track your undeliverable mailpieces via USPS scanning events. You will be able to confirm that the mail has been destroyed through these tracking events, offering you peace of mind that your sensitive documents have been successfully processed by USPS.
This functionality is in beta. Please reach out to support@lob.com or your Account Manager with any feedback or feature requests.
Use our Campaigns API to send your large-scale direct mail campaign sends more programmatically.
When creating campaigns, you’ll interact with 3 main models: campaigns, creatives, and uploads.
The campaigns model is used to set up high-level information about your campaign
The creatives model is used for uploading artwork and artwork settings for your campaign
The uploads model is used to build your audience and configure any recipient-level details for your campaign
Follow the steps below to create your first campaign in the API.
Endpoint: POST api.lob.com/v1/campaigns
Documentation: Create Campaign
First, create your campaign. At a minimum, your campaign needs a name
and a schedule_type
and a use_type
if one has not been declared at the account level. It is highly recommended that a cancel_window_campaign_minutes
is provided given it will allow you to cancel the campaign within the specified window if needed.
Endpoint: POST api.lob.com/v1/creatives
Documentation: Create Creatives
The next step is to create your creative object that will be associated with the campaign. You can only associate a single creative with a campaign. You are required to add a campaign_id
, resource_type
, and any requirements for your selected resource_type
. This payload is subject to change depending on your form factor. See examples below.
Note: the details
section has additional optional parameters, see docs for more info.
Endpoint: POST api.lob.com/v1/uploads
Documentation: Create Upload
Uploading your audience data file is the next step. Step 3 can be done prior to Step 2 as well. For more information on how to best structure your upload for Steps 3 and 4, visit our campaign audience guide.
If using optionalAddressColumnMapping
, all fields must be specified (which means unused fields must be declared with a null
value). If you're using an HTML template, double check that you have provided all keys and values for mergeVariableColumnMapping
, if not all merge variables are mapped, your campaign will not be executable when it comes time to send.
Endpoint: POST api.lob.com/v1/uploads/{{upload_id}}/file
Documentation: Upload File
After creating your upload object, you can now upload your file as a byte stream (binary file).
Endpoint: POST api.lob.com/v1/campaigns/{{campaign_id}}/send
Documentation: Send Campaign
Finally, you can execute your campaign! To see the status of your mail pieces as they are created, use the GET api.lob.com/v1/uploads/{{upload_id}}
endpoint.
Endpoint: POST api.lob.com/v1/uploads/{{upload_id}}/exports
Documentation: Create Export
First, let us know that you would like to create a failure export. Your response will include an export ID, which will be used to retrieve the export URL in the next step.
Endpoint: GET api.lob.com/v1/uploads/{{upload_id}}/exports/{{export_id}}
Documentation: Retrieve Export
You can then retrieve the S3 URL of the export from the GET
response above. Your export will include row-level details on why each record failed.
Endpoint: DELETE api.lob.com/v1/campaigns
Documentation: Delete Campaign
As long as your campaign cancellation window has not passed, you can cancel your campaign using our DELETE
route on the campaigns endpoint.
And that's it! If you have any questions, feel free to reach out to your Customer Success Manager, or to support@lob.com.
Every QR code generated will have a short Redirect URL assigned to it, which will resolve through to the Destination URL passed in the API call. This means you have the flexibility to change the Destination URL after the QR code has been generated, even if the mail has already been sent, as the initial Redirect URL will remain the same. Once a QR code is scanned, the user will see a redirect screen (as shown on the right).
Certified Mail is an add-on service offered by USPS for First Class mail that provides proof of mailing to the sender. With electronic USPS tracking, the sender is notified when the mailing was delivered or that a delivery attempt was made. An electronic return receipt showing the recipient's signature is also available for Certified Mail only. Both the Certified Mail and the electronic return receipt add-ons are only available for First Class mail sent domestically within the US.
You send letters as Certified Mail through the Lob API by passing the value certified
in the extra_services
parameter of the create letter request. You may similarly opt for an electronic return receipt by passing certified_return_receipt
in the extra_services
parameter in the API.
Tracking events are viewable directly within the Lob dashboard or via the API, similar to how they are for non-Certified letters, and you can also subscribe to webhook events for Certified letters. When you make a request for Certified Mail you will immediately receive a carrier tracking number (retrievable via your Lob dashboard), which can be used to track the mail via the carrier’s website - or you can choose to track the mail via the scan events within your Lob dashboard. The resulting screen should appear in your dashboard:
Tracking events for Certified Mail are different from tracking events received for regular mail types; see the full list in our API documentation for Certified tracking event details.
Visit the Certified Mail envelopes section for more guidance around sending Certified Mail.
An Electronic Return Receipt is available to the sender as a USPS add-on to Certified Mail. This receipt will allow you to download a digital copy of the recipient's signature used to sign for the delivery of the letter. You opt for an Electronic Return Receipt by passing certified_return_receipt
in the extra_service
parameter of creating a letter.
The return receipt will be accessible via the certified tracking number from the USPS homepage. However, if you would like to receive the signature PDF via email, follow these steps:
Visit www.usps.com
Enter the Certified tracking number into the Track a Package box
Click the "Return Receipt Email" dropdown and fill the required fields in the form
The USPS will send you an email with the signature file like the below example
The USPS Registered Mail add-on is only available for First Class mail and can only be sent (and tracked) domestically.
Registered Mail is an add-on service offered by USPS that provides extra protection for high-value letters and packages. When you send a letter by Registered Mail, the USPS establishes a chain of custody that tracks and secures your shipment throughout the entire transit process—from the moment it is dropped off at the Post Office until the moment it’s delivered.
You can send letters as Registered Mail through the Lob API by passing the value registered
in the extra_services
parameter of the create letter request.
Letters sent as registered
will receive a different set of scan events compared to regular First or Standard Class mail. Registered Mail will instead receive a carrier tracking number and link, which is an add-on that will be available 3 business days following the mailer’s send_date
. This tracking number can be used to track the mailer via the carrier’s website.
...with our Campaigns builder in the Lob dashboard
This guide below will walk you through how to launch a campaign from the Lob dashboard, using our Campaigns tool. Here is a preview of the 4-step process:
You'll need three things at the ready to create your Campaign:
Campaign strategy (including send and delivery strategies)
Audience file (.csv format)
Design assets (front & back), as static PDFs or as HTML templates for dynamic creatives. (HTML templates will need to be loaded into the dashboard prior to use in Campaigns).
First, head over to the Campaigns tab in your dashboard, and click the Create Campaign button at the top right. Select One-time to start building your campaign. Any campaign you build in the Live environment will be saved into your Drafts until you place an order.
If you would like to set up and send individual mailpieces based on triggers from your customer data, learn more about Lob integrations here.
Note: fields marked with * are required; all others are optional features.
*Add campaign name: To begin, give your campaign a unique name and description to reference in the future. Give it a name that is distinguishable and easily identified when you have numerous campaigns in your dashboard.
Add billing group: Certain Lob customers can optionally choose a specific billing group to allocate their campaign to on their invoice. You can learn more about this functionality here.
Select campaign type*: Select what use case will your campaign have: are you sending out a marketing campaign or using this for operational (non-promotional) purposes?
Select mail type & settings*: Select what mail type and size you’ll be sending. Currently, you can choose from high-quality postcards, self-mailers, or letters sealed inside envelopes.
Postcards and self-mailers will show available size options
Letters will show optional add-ons, such as cards, envelopes, and buckslips
Send options: ASAP or schedule a future date up to 180 days
Postage preferences:
Add the return address you’d like to appear on the mailpiece
Select the postage and mailing class* that you’d like to apply to your campaign; note this will have pricing implications
Select an amount of time for your campaign cancellation window, which is the amount of time you are allowed to quickly edit and QA your mailings after submission, but before they are sent to print production
Add campaign-level tags: Add any custom metadata tags you'd like to apply to your campaign. Tags enable you to easily filter and sort your campaigns for future reporting.
Upload your target audience*: Select your segment via CSV
Map required address variables*: Lob automatically maps and formats your address to meet USPS requirements, but you can review and adjust the mapping if necessary
Map optional address variables: These fields will be added to your recipient address block if mapped
Add recipient-level metadata tags: Add any custom metadata tags you'd like to apply to your campaign-specific recipients. Tags enable you to easily filter and sort your campaigns for future reporting
Upload your creative assets* (Example, front and back of postcard)
Make sure you are following the design guidelines specific to your mail format
You can utilize PDF or HTML; learn more about Creative formatting here. (If using HTML, the template will first need to be loaded into the dashboard as a Live HTML Template.)
If sending a letter campaign, upload your add-on creative assets as well
When your creative is uploaded, you will be shown a basic preview; a true creative proof is available in later step
You can add a QR code to your mailpieces after you upload your creative.
Connect your creative to your audience*
Select your merge variable strictness: Choose whether you'd like your mailpieces to be sent even if it contains missing values in your merge variable fields
Map merge variables in your creative: If using an HTML template to build a dynamic creative, if you've named your csv column headers exactly to match the merge variable names in the HTML template, then Lob should automatically map these. For example, if a merge variable in a template is {{promo_code}} and there is a CSV column header titled “promo_code” then Lob auto-maps this for the user.
Please note auto-mapping is case-sensitive.
Creative proof: The Creative proof includes merge variables, address block, Lob carbon-neutral logo, and indicia, plus return address and QR codes if included. You can View Mail Proof to see (or share) the PDF, or you can Delete Proof and go back.
Campaign settings: Review the campaign send details
Audience: Review the target audience list
Creative: Preview a mailpiece to ensure the campaign will render correctly
Cost: An estimated campaign cost based on cost per mailpiece (learn more about Estimated Campaign Cost)
Please review carefully before you Place Order. You can back up to previous steps to make changes as needed. Should you need to exit the UI, your Campaign will be saved as a Draft.
Place order! Once your campaign is submitted it will be sent to the printer in the submission window selected before being dropped to USPS for delivery.
You will receive confirmation, then be directed to the detail or status page for the Campaign.
After you place an order you will be directed to that campaign's status or details page. You can also access this at any time by clicking on any individual (Live) Campaign from the Campaigns dashboard.
Here you can Cancel a One-time campaign (if applicable), or Pause/Resume an Automated campaign.
In the kabob menu, you can find the campaign ID, export undeliverables ("Export Failures") and export mailpiece data.
Did you place your order and then suddenly realize there was a mistake or last-minute change? You can cancel a Campaign if you are within the cancellation window.
After placing an order, you will be directed to that campaign's detail page. Alternatively, from the (Live) Campaigns view, click on any campaign to navigate to the campaign's detail page.
If applicable, click the Cancel Campaign button.
You will be asked to confirm; your Campaign will go back into Draft state.
Your Campaign will be canceled; you can return the dashboard or edit the Campaign.
You will also receive an email confirmation.
After you place an order you will be directed to a detailed view of your campaign. You can return here at any time by clicking into any individual campaign from the Campaigns section in the dashboard.
In the Mail Analytics section of the dashboard you will find data for all mail you have sent with Lob across any number of campaigns within a time period. But you can click into any Live campaign to see laser-focused insights that are campaign-specific.
Our campaign analytics are designed to help you ensure that every campaign you run is more informed than the last.
Campaign summary: Get the birds-eye view of each campaign with stats including total orders, estimated cost, delivered and undeliverable mailers.
Tracking events for all mail pieces in the campaign provide full visibility as your mailpiece move through the mailstream.
QR code engagement: Understand how recipients interact with your Lob-generated QR codes, including frequency and timing of scans.
Delivery speed: Track how quickly your mail moves from being sent to marked as processed for delivery, pinpointing efficiency and flagging any delays. Reserved for Enterprise users only.
Delivery distribution: Analyze where your mail is going and how fast it gets there with a breakdown of mail pieces by state, helping you optimize your future send strategies. Reserved for Enterprise users only.
After you place your order and it has fully processed, any number of mail pieces that failed rendering (and will not be sent to print) will be shown in red under View Failed Mail Pieces. Read more about rendering best practices and rendering errors.
The final pillar of building a successful direct mail program is the ability to continuously iterate--to measure your baseline performance, and keep optimizing your direct mail performance with data and results gained from your sends.
Lob offers you ways to gain unprecedented visibility into where every single individual mail piece is moving in the delivery mailstream, and can alert you with notifications at each stage so that you can build sophisticated downstream workflows and processes based on these alerts. You can also define, search, and slice and dice your mailpiece data in any way you see fit, to better understand channel performance and attribution.
This Help Center is a fantastic resource for learning all things Lob, and we recommend doing your homework. But once you feel ready...get set, and send!
As Lob leverages USPS as our mail delivery carrier, the USPS offers a number of mailing services to suit the needs of the business. Leverage different mailing class options based on your time sensitivity, budget, and need for other adjacent services.
Used to send Lob postcards, self-mailers, letters, and checks
Intended mostly for personal or business correspondence
Invoices, statements, and other confidential mail that include PII/PHI or sensitive data of any kind must be sent via First Class or risk being flagged by USPS and taken out of the mail stream
Businesses have the option of adding on additional services, like Certified Mail
Must weigh 13oz or less; anything over 13oz can be sent as Priority Mail
First Class delivery is given priority over Standard Class Mail, both locally & nationally
Includes forwarding and return services with no additional charge
Domestic mailings typically take 4-6 business days, and international mailings typically take an additional 5-7 business days to be delivered
Broadly known as Marketing Mail, or "bulk mail" in the industry
Lob will often refer to it by its previous name, Standard Class Mail, in our product offerings
Used to send Lob postcards, self-mailers, and letters with marketing-related content
Intended more for advertisements and mass communication purposes
Must not contain any sort of sensitive personal information or PII outside the address box
Must weigh 16oz or less, and meet a minimum quantity of 200 pieces or 50lbs of mail
Processed by USPS on a "time available" basis; no delivery time guarantees provided by USPS
Best to avoid with time-sensitive mailings
Least expensive postage mode available on Lob
Mailings typically take 7-21 business days (only available in US)
Standard Class mail cannot be sent internationally
Standard Class mail is not forwarded or returned if undeliverable unless a special endorsement is used; undeliverable mail will be destroyed by USPS
Any mailpiece that contains PII or PHI must be sent as First Class and cannot be sent as Standard Class Mail per USPS regulations. Non-compliance will result in potential removal of your mail batch from the mailstream, customer delays, and/or order cancellation.
Saves authorized nonprofit organizations up to 70% of the cost of First Class mail
Only available for domestic mail
Follows the same delivery times as Standard mail
Lob currently does not offer any overnight/express mailing options.
Delivery times are estimates and will vary depending on product and destination. As our primary mail carrier, the USPS also experiences delays from time to time. To see the most up-to-date status of your mailing, check the tracking information of your particular mailing through a GET
request or on your Dashboard.
You can also view the latest information on USPS delivery times on the USPS interactive map.
As marketers are adding greater amounts of "personal information" in their direct mailings that include advertising mailers typically sent as USPS Standard Class or Marketing Mail, USPS has added greater scrutiny around which class of mail can be utilized given the level of "personal information" included in your mailers.
These Marketing Mail eligibility standards have been in effect since June 1, 2005, and are enforced at the discretion of the USPS Customer Support Rulings agent. The main conclusion: Standard Class (aka Marketing Mail) should not be utilized for sending mail that includes personal information or sensitive data in any way.
If you are planning any Marketing Mail campaigns that include the personal information of the recipient, make sure to mail it First Class to avoid USPS rejection which will result in delays for your mail.
Lob cannot currently prevent customers from sending personal information or sensitive data as Standard Class Mail. Consult your Customer Support Manager for further guidance on eligibility.
4x6, 6x9 and 6x11 postcards: Mailed via USPS First Class Mail (takes 4-6 business days and international mailings take an additional 5-7 business days).
6x9 and 6x11 postcards: Mailed via USPS Standard Class Mail (takes 7-21 business days) and only within the US.
Mailed via USPS First Class Mail or Standard Class Mail
USPS Standard Class Mail may only be used for sends within the US
Mailed via USPS First Class Mail (takes 4-6 business days)
Mailed via USPS Standard Class Mail (takes 7-21 business days) and only within the US
Mailed via USPS First Class only (takes 4-6 business days)
USPS Standard Class Mail is not available for checks
Overnight/expedited mailing options are not available
Our fulfillment partners programmatically print their own indicia on all postcards and self-mailers. This indicia is then used to prepare the mailing paperwork for USPS. There is no need to mark the location of your indicia in your submitted creatives.
Our return envelopes are blank and come without prepaid postage; mail recipients will be responsible for adding their own postage when sending reply mail.
Our daily cut-off times for all mail submissions are 10am PST each business day; anything submitted after that will be processed in the following business day's production run.
Remember: if you use the cancellation window or scheduling feature and your send date surpass a daily cut-off time, it will be slotted for the next production day. Production days are based on normal business days, including National Holidays.
If you have more questions regarding cut-off times, reach out to support@lob.com or your Customer Success Manager.
Lob's Print Delivery Network (PDN) is the backbone of our Print & Mail offering. By building an integrated, distributed network of professional printers, we simplify client print operations and vendor management on behalf of our customers. Qualified commercial printers are thoroughly vetted by our print experts and integrated into our PDN ecosystem, enabling our customers to easily access different mail delivery strategies without the hassle of management. The strength of our PDN is predicated on automated production, dynamically-adjusted throughput, and consistency of quality that's on-demand and at scale.
Any mail that is sent through Lob is dynamically distributed to the prints within our PDN, based on a number of factors, including:
Mail form factor and permutation availability
Mail volume capacity
Paper stock and ink availability
Distance from end-recipient of mail
Other manufacturing and logistical capacity needs
Regulatory requirements (e.g. HIPAA)
If you're a printer that's interested in exploring a partnership opportunity with us, let's talk!
This page is regarding mail that originates in the US and is mailed abroad by the USPS. If you have further questions about sending mail internationally, contact us.
Postcards and letters created using the individual mail creation endpoints can be sent internationally, Campaigns UI (non-custom formats) and Campaigns API (non-custom formats); see below for format-specific considerations
No checks can be sent (or cashed) abroad
Only USPS First Class Mail is available for international delivery
Expect international mail to take an additional 5-7 business days
Registered Mail is not supported internationally
Certified Mail is not supported internationally
Standard class (Bulk/Marketing Mail), Nonprofit stamps, or First Class Presort are not permitted in international mail and will be returned to sender
Lob follows USPS standards for sending international mail
International address data is available in over 240 countries, and the complete list of countries and territories can be found in our global address coverage page
To pass country codes in the API, use the specific two-letter convention identified by the ISO 3166-1 alpha-2 convention (e.g., ‘US’ for United States of America, or ‘CA’ for Canada)
Lob follows USPS’s guidance on international service disruptions that affect First Class Mail delivery abroad
Our Print & Mail API will be periodically updated to exclude country-specific mail delivery suspensions. If you attempt to send mail to a suspended destination, you will receive a 422
error.
We will lift service restrictions in accordance with any USPS-provided guidance.
Temporary service disruptions (due to conditions like wildfires or COVID-19 for example) are subject to change.
For the address box:
Name and company will remain as-is within their respective character sets
If our Address Verification can validate and translate the address portion, it will return the address in English
All international mail will not receive CASS processing beyond US borders by default, so be sure to have accurate addresses if sending with your respective character set
For the content of the HTML body:
Must be using a typeface (font) that supports the character set
Must include meta element with utf-8 charset:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Example:
US-based return addresses are required on all outbound international mail, regardless of the mail service used
All outbound mail pieces (“to
” address is international) must bear a complete return address in the country of origin (e.g. where you pay postage)
Since Lob mail is originated in the US, the return must have a US-based address
For international mailings originated in the US, tracking events will not appear and tracking data cannot be accessed via the USPS’s website beyond the final scan in the US, "International Exit"
Note: USPS does not appear to scan the majority of their international mail, which means this "International Exit" event is unreliable and thus infrequently surfaced
On rare occasion, international mailings may receive an "In Transit" or "Process for Delivery" scan, indicating that the mail piece has been processed at the entry/origin facility outside of the US
However, because delivery occurs in a foreign country outside the control of the USPS, international mailings do not receive scans beyond that, and cannot be tracked through the mailstream
In short, Lob is unable to provide reliable scans for international mail, especially beyond US borders
Per USPS, only 4x6" size postcards can be sent internationally via First Class Mail
File limit is 6 sheets single-sided or 12 pages double-sided (totaling 6 sheets)
PDFs that surpass the file limit will error
HTML that renders more pages than the file limit will be trimmed
While Registered Mail International service items also cannot be tracked, it does provide delivery status or attempted delivery information which can be obtained through USPS in three ways:
Go to www.usps.com. Select "USPS Tracking." By entering the tracking number shown on the mailing receipt into the lookup field, you can view the delivery status of the article
By calling the USPS Tracking telephone number found at Contact USPS
By bulk electronic file transfer for mailers who provide an electronic manifest to the United States Postal Service
Checks cannot be sent internationally, and the API will return an error if address_country
is not the US.
Start your campaign and choose "Includes International" on the first step. This tells the system you want to follow international mailing rules.
The Campaigns UI will then guide you through the USPS requirements. This ensures your maipiece is properly formatted and is set up for successful delivery.
Lob captures data for each mailpiece created and provides an easy way to export it as a CSV file. Exporting data allows for in-depth performance analysis, auditing, or other purposes, but we strongly recommend customers do this on a regular cadence for record-keeping and maintenance.
In the left side menu of your dashboard, navigate to the appropriate mail format for which you'd like to download your data (e.g., "Postcards.")
Recall that physical mail is only sent when requests are made in the Live Environment.
4. Filter for the date range you want mailing details.
This search is inclusive, i.e., the first date that will have information retrieved will be the Start Date from 00:00 UTC, and the last day of information returned will be the End Date up until 23:59 UTC.
If you are retrieving multiple years' worth of data, we recommend that you download one year at a time, as larger requests will require more time to generate.
Note that we have a limit of 250K rows per export at this point in time.
5. Once you have your filters selected, click "Apply" to filter on the range being displayed.
6. From this newly filtered view, select the "Export" button.
Export Tracking events: If you are exporting Live environment requests, and there are tracking events associated with them, a pop-up will appear to "Select Tracking Events." If you choose Yes, you will receive a second export of tracking events. You will have the option to include all events or a specific subset of events. Click "Submit."
A pop-up will show your data selections for the Product, Mode, and Date Range parameters. If you have selected to receive an additional CSV of tracking events, this will be noted. Once you are satisfied with your data selections, hit the “Confirm” option on the bottom right. Examples:
7. You will be emailed an export link to the report that you just requested. (This will be emailed to the user who is logged into the Lob dashboard making the request.)
Lob is the only intelligent platform that tracks each piece of mail as it moves through the USPS delivery process. This section gives you full visibility into where all the mail you've sent in any given time period sits in the mail stream. As you send higher volumes of mail with Lob, you may need to analyze the status and deliverability of your mail on a more aggregate basis.
The Tracking Events tab displays a visual breakdown of all tracking events applicable to the mail pieces within the filter parameters.
The tracking stepper at the top of the dashboard displays the different stages in your mail's delivery process:
Sent: This is a count of non-deleted mailings that you have sent to Lob in the specified time frame based on the date for which a piece was scheduled (the piece's send_date
), not the date the API request was made.
In production: Mail piece instructions were dispatched to Lob's printer network and the request is now being printed/cut, soon to be handed off to the USPS for fulfillment.
In Mailstream: This bucket is an aggregate of two tracking events, In Transit and In Local Area. These are the first two scans that a piece will receive—representing that it's in the mailstream and on the way to its destination.
Processed for Delivery: This bucket is represents pieces that have received a Processed for Delivery scan. This scan means that the piece has been approved for delivery at the destination's nearest postal facility and will likely be delivered in 1-2 business days.
Delivered: This bucket represents pieces that have received a Delivered scan, meaning they were delivered to the end recipient. The final scan is generated when the mail carrier's GPS unit leaves the delivery area.
Re-Routed: If a piece is re-routed due to recipient change of address, address errors, or USPS relabeling of barcode/ID tag area, it will receive this scan.
Returned to Sender: A piece will receive a Returned to Sender scan if delivery was attempted, but failed due to barcode, ID tag area, or address errors.
Each mail piece will be counted once in each bucket for which it receives a scan. For example, if a letter has these tracking events:
"In Transit"
"In Local Area"
"Processed for Delivery"
Then it will be counted once in the "Sent", "In Mailstream", and "Processed for Delivery" buckets.
Under the Tracking Event statistics on the dashboard, we also provide a graph that provides an even further breakdown of your mail by day, week, or month. Time periods are grouped by the date a piece was sent, not by the date of the API request. As with all other dates within the Lob system, the UTC time zone is used.
Hover over a specific column to view a full tracking breakdown for that time period. Use this breakdown to narrow down your data for even further analysis.
Over time, you can expect to see tracking events for 98-100% of your mailings. The numbers below are benchmarks for when you should start seeing scans. Keep in mind that these timings and percentages may vary based on the volume of mail you've sent, where you're sending to, and the quality of your address set.
For First Class mail, you'll start to see mailings reach the "In Mailstream" bucket in 2-3 business days and the "Processed for Delivery" bucket 1 business day afterward. After about 4 business days total, you should expect almost all of your mailings to be in the "In Mailstream" state. After about 5 business days total, almost all of your mailings should be in the "Processed for Delivery" state.
For Standard Class mail, which is inherently slower, the timing is a bit different. You'll start to see mailings reach the "In Mailstream" bucket in 4-5 business days and the "Processed for Delivery" bucket 2 business days afterward. After about 10-11 business days total, you should expect almost all of your mailings to be in the "In Mailstream" state. After about 12-13 business days total, almost all of your mailings should be in the "Processed for Delivery" state.
In this tab you can:
Filter by a date range and form factor
See the number of mailpieces sent with QR Codes during that time period
See the number of QR Codes that have been scanned during that time period
See a graph of QR Code scans over a selected date range
We offer engagement metrics for each Informed Delivery campaign. It's important to remember not every member of your audience may be subscribed to Informed Delivery daily emails. As such, here you will see how many emails were sent for your campaign, and the engagement rate.
Mail pieces sent
Emails Sent
Open Rate
Click Through Rate
Track how quickly your mail moves from being sent to marked as processed for delivery, pinpointing efficiency and flagging any delays.
The Mail Speed tab shows the number of business days it took from a mail piece's send_date
to the date the mail piece was marked as processed_for_delivery
by the USPS.
The Mail Speed graph respects all applied filters and shows the average and median mail speed for all the mail pieces that fall within the filter. Mail pieces that have yet to receive a processed_for_delivery
tracking event are not counted in the metrics above the graph.
Please note, the graph is for US mail only.
Analyze where your mail is going and how fast it gets there with a breakdown of mail pieces by state, helping you optimize your future send strategies.
The Mail Distribution tab shows the number of mail pieces sent to each US state (and Washington D.C., but excludes US territories). A state's color corresponds to how many mail pieces have been sent to that state.
You can also view the data in a table format. The table shows the same data as the map, where each state's data corresponds to a row. Clicking on a column header will sort the values in that column. To search by state name, click on the search icon and input a value to filter the table.
On your Mail Analytics Dashboard, you can slice-and-dice your data by various other aspects of your mailings, including: product type, recipient ZIP code, template used, and more. You can use these filters to compare deliverability between your different campaigns, recipients, and more.
One of the most powerful advantages of using Lob is that you can have visibility of any individual mail piece as it moves across the entire print production and delivery process. Gain complete transparency into your mail’s journey from print production to final delivery, ensuring you stay informed every step of the way.
Lob will surface notable actions or events within the Lob architecture. Examples include when a mailpiece is created, fails the rendering process, or when a Lob QR code is scanned.
Note that any mail pieces sent in the Test Environment will not receive tracking events.
Received - The API call for the mail piece was made and received by Lob. (Event will be displayed in dashboard at individual mailpiece level; no webhook available.)
In production - Mail piece instructions were dispatched to Lob's printer network and the request is now being printed/cut, soon to be handed off to the USPS for fulfillment. (Event will be displayed in dashboard at individual mailpiece level; no webhook available.)
Mailed - Confirmation that mail has been handed off to Lob's mail carrying partner from our printers.
This feature exclusive to Enterprise edition customers. For non-Enterprise customers, the Mailed event in your dashboard view of tracking events will be greyed out in the tracking event stepper.
The ability to accurately surface the "Mailed" tracking event is a unique feature to Lob, and can be utilized to monitor Lob’s SLA adherence as well as provide auditable proof for time of mailing.
The “Mailed” tracking event appears at earliest two business days after sending your Lob API request. In some instances, it can take longer for this “Mailed” event to become visible, but when surfaced, it will accurately reflect the actual date of mail handoff from our printers to the USPS.
In Transit - The mail piece is being processed at the USPS entry/origin facility.
In Local Area - The mail piece is being processed at the USPS destination facility.
International Exit - The mail piece has been processed to ship to a destination abroad. This is typically the last scan a US-originated international mail piece will receive from the USPS. Note this scan is historically inconsistent, but if it occurs, Lob will surface.
Delivered - The mail piece has been delivered to the recipient’s address. This event is generated when the mail carrier's GPS unit leaves the delivery area. USPS does not guarantee every event for each mail piece, thus Processed for Delivery is more reliable.
Following production, all mail pieces will be handed off from our printers to USPS and will enter the USPS mail stream. All subsequent events are subject to USPS accurately scanning the mail piece as it travels to its destination in the mail stream, hence called "scanned" events.
3 business days after your Send Date for First Class Mail
4-5 business days after your Send Date for Standard Class Mail
All USPS scan events are dependent on the local postal offices and how they process/sort mail. Similarly, the delivery of those mail pieces is also under the full control of the local post office.
We do not have added visibility or control over the actual mail pieces once they are handed off to USPS—we can only monitor their progress by surfacing mail tracking events that are visible on your dashboard.
Lob does not have any control over the accuracy of scans, nor can Lob go back and reconcile scan events as it is purely a USPS-owned process.
Reminder that mail pieces sent in the Test Environment will not receive a tracking events.
The minimum volume to qualify for Presort mail is 200 pieces (or 50 lbs) of Marketing Mail or 500 pieces of First Class mail, which is a USPS requirement. Some mail is sent out metered if that day's volume from one of Lob’s production partners does not meet the minimum volume per mail type, as required by USPS. This means the mail pieces are not able to be batched with the other mail pieces and have to be mailed separately.
Historically these mailpieces have been difficult to track without a batch ID. But beginning July 12, 2023, the “Mailed” event for Metered mail is available in our webhooks for tracking events and included in mail counts within the Mail Analytics Dashboard.
Please note we would not expect to populate any other tracking events for Metered mail.
While we typically see all scans for the majority of our mailings, it is not unusual to see mail sent to a PO box with tracking that ends at the “In Local Area” scan event, even though the recipient has physically received the piece.
“In Local Area” scan indicates receipt and processing by the post office most local to the final delivery point. Typically the next scan would be “Processed for Delivery,” to indicate a mailpiece has been cleared for a final delivery attempt (and is likely loaded directly onto the mail delivery vehicle). However, a PO box does not need to be loaded onto a vehicle for the final delivery, as the PO box itself is located at the post office already. In this case, postal workers can simply hand-deliver the mailpiece to its final destination—so there will be no "Processed for Delivery" scan.
Letters sent as Registered do not receive the same scan events as regular First or Standard Class mail. Registered Mail will instead receive a carrier tracking number and link, which is an add-on that will be available three (3) business days following the mailer’s send_date
. This tracking number can be used to track the mailer via the carrier’s website.
If you decide to send Certified Mail through Lob, you will receive a carrier tracking number and tracking link retrievable via your Lob dashboard, which can be used to track the mail piece via USPS’s website. You can also track the mail via scan events within your Lob dashboard. Sometimes certified mail tracking will be available immediately, or as late as 3 days after sending the mail piece.
Enterprise edition customers can now access return envelope tracking for USPS Courtesy Reply Mail (for letters only). Once the returned mail piece enters the mailstream, the customer can start receiving notifications to tracking events via our webhooks.
The following mailpiece webhooks indicate USPS possession:
xxx.delivered
xxx.in_local_area
xxx.in_transit
xxx.processed_for_delivery
xxx.re-routed
xxx.returned_to_sender
USPS may not consistently scan all mail pieces at every stage; Lob is only able to capture and surface scans received from USPS itself. (Lob sees USPS scans for the majority of mail pieces; that is, a very small percentage of mail pieces receive no scans at all.)
Lob will send webhook events as soon as they become available. However, users should not assume all webhooks will be sent in real-time, and may occasionally experience some delays; they may also be received out of order.
That said, receipt of any of the events noted above confirms that a mail piece is in USPS possession.
The inverse is not necessarily true; i.e., NOT receiving any of these events is not a guarantee that the piece is NOT in the mainstream.
Although events may not be sent in real-time, for tracking events you can get the USPS timestamp of the event under tracking_events[].time
.
The earliest time stamp of any of these events would equate to the earliest (recorded) possession by USPS.
For First and Standard Class mailings, "Delivered" is typically the last event that USPS provides. When your mail piece receives this event, this means that a USPS courier has delivered the mail piece.
The "Delivered" event is generated when the mail carrier's GPS unit leaves the delivery area; it is not guaranteed by the USPS. If a “Delivered” event hasn’t yet surfaced for your mail piece, but you have received a “Processed for Delivery” scan, this indicates that USPS is expected to attempt delivery within one business day.
First Class Mail: US domestic mail delivery typically takes 5-7 business days, and international mailings take an additional 7-9 business days.
Standard Class Mail: Delivery times can take anywhere from 7-21 business days. USPS does not provide delivery time guarantees for Standard Mail.
Delivery times quoted are estimates; Lob uses USPS as our primary carrier and USPS experiences delays from time to time. To see the most up-to-date status of your mailing, check the tracking information of your particular mailing.
If you receive a "Re-routed" scan, this indicates that USPS attempted delivery at the original address, but re-routed it because your recipient no longer resides at that address. In these cases, USPS will attempt to deliver to your recipient at their new address (if they filed a National Change of Address).
After the RTS event scan, the mail piece is then treated as a new letter that is going to a new destination and will be tracked to the reroute location. This may be why the same mail piece may receive new scans after receiving the RTS event.
A multi-delivery attempt is translated into scans in “Delivery Attempt 1 and 2” below, compared to a standard delivery where the mail piece makes it to its final destination in a single attempt (Col 1):
USPS may not consistently scan all mail pieces at every stage; Lob is only able to capture and surface scans received from USPS itself.
Because RTS scans are not necessarily an 'end-state scan', you should not track whether it was the last scan received when trying to calculate the percentage of RTS mail, as it may have been marked as such and still received additional scan events. Instead, you should try calculating the percentage based on whether the RTS scan event was ever received, regardless of its place in the sequence of scan events.
Furthermore, we recommend you confirm the updated address with the intended recipient and submitting a new request to have it printed and mailed. There is currently no way to re-initiate an existing request in Lob.
You can see tracking events under the detailed pages within Print & Mail and/or Campaigns in the dashboard.
If your mail piece doesn’t have a tracking event, first check to see how much time has elapsed between your mail piece Send Date and the current date. Typically, it’ll take 3 business days (for First Class Mail), or 4-5 business days (for Standard Class Mail) from the time of your Send Date for USPS tracking events to appear.
Note: If it has been more than 30 days, Lob will not have access to the API logs which track mailpiece tracking events, but you should be able to see the date when the mail piece was scanned by clicking on 'View details' in your dashboard.
Marketing attribution is important in measuring performance for any channel, online or offline, because it helps to understand the specific impact of any certain content that is driving lead conversions, and thus driving revenue. In the context of multi-channel campaigns, direct attribution allows you to know for certain whether a direct mail touch was the one that drove a conversion.
Traditional channels are historically challenging to target and measure, with direct mail being an 'Exhibit A' example of this issue. However, as a modern direct mail platform, Lob offers various approaches to measure attribution as best possible and to provide greater visibility in a rather opaque channel.
These webhooks and ensuing downstream triggers can indirectly impact your mail piece's broader success or conversion, along with the overall campaign involving the direct mail touch.
Engagement metrics provide insights into what content resonates with which audiences; this is essential to optimizing your campaigns (so you can do more of what works!)
Webhooks are a way for one service to send real-time updates or data to another service automatically, without any need for the user to check for new information manually. They work like a notification system, instantly alerting the receiving system when something happens in the sending system.
Receiving notification of improperly submitted mailpieces that fail to be rendered by Lob.
Downloading PDF previews or thumbnails automatically once they are rendered
Sending end-users notifications about mail traveling through the postal stream as a part of an omnichannel approach
Triggering specific downstream workflows and actions based on the final receipt confirmation of mail with the "Delivered" event
Receiving notifications about erroneous scan events, such as "Re-Routed" or "Returned to Sender"
Internal logging and reconciliation
Select Webhooks from the left navigation bar.
Choose Test or Live environment and click 'Create.'
Add the webhook name in the ‘Description’ field.
For example, if you are setting up a webhook to be notified any time a postcard gets re-routed in the delivery process, then select the “postcard.re-routed” event type from the Postcards section.
Save the webhook by clicking on the 'Create' button.
Once created you can click on any webhook in your menu to access Webhook Details page to view summary information and webhook attempts. Here you can also replay events, debug, edit, or delete the webhook.
To confirm delivery of the webhook, Lob expects a 2xx
status code returned in a timely manner. We will consider any other status code (or lack of status code) to be erroneous and attempt to retry the delivery. If your webhook endpoint has any additional complex logic to perform, we recommend immediately returning a 2xx
to let Lob know that you do not want to receive this event again, and then performing that logic afterwards. This should aid in preventing unwanted retry attempts caused by unexpected network timeouts.
Any other information sent back to Lob in the response will be captured and stored (regardless of status code) for you to view on your Dashboard, though we won't perform any processing on it. Therefore, we recommend responding with any information that you may find useful for debugging purposes. While you can return anything (including HTML), we've found it most helpful to return a concise JSON object with anything that could be relevant.
Lob will send webhook events as soon as they become available. However, customers should not assume all webhooks will be sent in real-time, and may occasionally experience some delays.
For example when subscribing to the postcard.processed_for_delivery
event, you will receive a response with the previous tracking events such as postcard.in_local_area
, postcard.in_transit
, postcard.mailed
.
Although events may not be sent in real-time, for tracking events you can get the USPS timestamp of the event under tracking_events[].time
.
Our mailpiece creation API responses contain unredacted information about your mailpiece. With each webhook sent for a given mailpiece, Lob redacts fields that could potentially contain Personally Identifiable Information (PII) or Protected Health Information (PHI). Fields that will be redacted include:
For all mail formats:
“From
” address for all form factors & events
“To
” address for all form factors & events
Mailpiece URLs
Metadata
Description
Merge variables
For Checks only:
“Memo
” field
Everything in the “Bank Account
” property (routing, account number, bank name, etc)
To preview what a sample redacted payload will look like, select “Webhooks” from the left-hand navigation menu in the dashboard, then select the “Debugger” button on the Webhook dashboard or individual webhook subscription page.
You can then select the “Event Object” tab at the bottom of the screen to see what information will be redacted.
Below is an example webhook response:
Lob is unable to retrieve any payload information retroactively during the time when this Webhooks Payload account setting is marked "Redacted."
Events are created in both your Test and Live Environment, and webhooks can also be created in both.
Webhooks created in the Test Environment will be triggered off events from your Test API Key
Webhooks created in the Live Environment will be triggered off events from your Live API Key.
If your server or gateway has an associated rate limit, or if you would like to control the speed at which Lob sends you webhooks for any other reason, you can configure the rate limit for each webhook subscription.
Sometimes, a change or issue in your internal environment may cause a webhook subscription to begin failing. Once the issue is resolved, you can replay failed webhooks easily through the dashboard.
When webhook attempts executed by Lob do not succeed (e.g. do not receive a 2xx
status code, hit a SSL/TLS error, DNS issue, etc), we will continue to try to deliver the same event according to a schedule with an increasing backoff. This policy is meant to give you time to rectify the issue without losing any events.
We will reattempt at the following intervals until we either receive a 2xx
status code or all attempts below have been executed:
After the 8th attempt, we will not attempt to deliver the webhook again. If all of your webhooks for a single subscription fail for 5 consecutive days, the subscription will be disabled.
If your webhook endpoint does not consistently respond with a 2xx
status code, we will automatically disable the webhook and stop sending events to the endpoint. Webhooks are automatically disabled after 5 consecutive days of failures. The “clock” starts after the first failure and a single successful webhook to a given endpoint will reset the clock. You will receive an email notification when the webhook has been disabled.
We understand that security is an important concern when granting external access. You need to make sure that Lob is able to reach your endpoint without incurring the risk of accessibility to bad actors, so there are certain features that you can enable on your end to ensure this is possible.
Lob webhooks include a signature to allow you to verify their authenticity. Verifying this signature within your webhook endpoints allows you to ensure that the webhooks originate from Lob and not from a third party.
Webhooks include Lob-Signature
and Lob-Signature-Timestamp
headers. Lob-Signature
is generated by computing HMAC-SHA256 on a signature input and a secret. The signature input is generated by concatenating Lob-Signature-Timestamp
(as a string), the .
character, and the webhook request's JSON payload (as a string). The secret is unique for each webhook and can be found in the details page for the respective webhook in the dashboard.
A static, fixed secret is used for webhooks for requests sent out using the webhook debugger. In these cases, the secret used in generating the signature is the string secret
.
When using Lob's webhook debugger and validating the Lob Signature for events sent via the debugger do not use the uniquely generated secret. Instead use the word "secret" as your secret.
The addition of the Lob-Signature-Timestamp
in the headers and as the input to HMAC-SHA256 allows you to prevent users from performing replay attacks. In a replay attack, an attacker intercepts webhooks and retransmits them. By verifying that the signature is valid and the timestamp is within some tolerance (we recommend 5 minutes), you can ensure that the request is not an older request being duplicated by an attacker.
In order to verify the Lob-Signature
and Lob-Signature-Timestamp
headers, follow the steps below.
Step 1: Prepare the signature input
Concatenate the Lob-Signature-Timestamp
(as a string), the .
character, and the raw request body (as a string).
Note: any parsing/stringification done to the request body could potentially alter the original string, so it is recommended to always use the raw request body as-is.
Step 2: Generate the expected signature Compute the HMAC with SHA-256 using the webhook secret from the dashboard as the key and the signature input as the message. Convert to a string in base-16, hexidecimal format.
Step 3: Compare signatures
Compare the expected signature with the Lob-Signature
header. If the strings are equal, then the webhook is valid.
Step 4: [Optional] Check the timestamp
If you are concerned about replay-attacks, check that Lob-Signature-Timestamp
is not older than your tolerance.
You can also use Basic Authentication to guard your endpoint from public access. This can be used in addition to or instead of webhook signature verification. For the best level of security, we highly recommend verifying webhook signatures, rather than relying solely on HTTP Basic Authentication.
When creating your webhook, insert the username and password to the URL using the following format: https://username:password@example.com/webhooks
. This will be converted on our end to the appropriate Authorization
header when we make the request.
For Enterprise edition customers, Lob offers access to return envelope tracking via webhooks for USPS Courtesy Reply Mail.
The following is a list of mail tracking event labels and descriptions available:
Created
: Return envelope is first created (should be simultaneous with Letter creation)
In transit
: Return envelope is being processed at the entry/origin facility
In local area
: Return envelope is being processed at the destination facility
Processed for delivery
: Return envelope is greenlit for delivery at the end recipient's nearest postal facility. The mailpiece should reach the mailbox within 1 business day of this tracking event.
Re-routed
: Return envelope is re-routed due to recipient change of address, address errors, or USPS relabeling of barcode/ID tag area
Returned to sender
: Return envelope is undeliverable and is being returned to sender due to barcode, ID tag area, or address errors.
Return envelope tracking is currently only accessible via Lob webhooks, and the Event Logs node in the Lob dashboard. Tracking events will appear in the Letters
Events portion of the original individual mail piece in the dashboard as soon as they become available, or can be downloaded using the “Export” button that’s located at the top of the Letters section in the dashboard.
You can view your return envelope tracking events by setting up your webhooks:
Select the tracking event of interest for return envelopes
Click on Filters at the left top
Select Letters under Resources dropdown
Select the event types you'd like to view (starts with letter.return_envelope
) and hit Apply
Select a return envelope tracking event to reveal more details about associated mail piece
Lob’s will retain customer mailpiece data for a total period of ninety (90) days. See our for further information.
to your Lob dashboard.
3. Select the (Live or Test) from which to download your data. In our example below, "Test" environment is selected.
If you have any questions regarding exporting your data, reach out to your Customer Success Manager or to .
Our feature in the Dashboard provides insights to empower you to fine-tune targeting, enhance engagement, and optimize the overall effectiveness of your direct mail campaigns. You can slice and dice your data by certain filters to view a full deliverability report, all directly from your Dashboard.
To access this feature, sign in to your Dashboard and click the "" tab in the left navigation bar.
We also offer . Similar to the metrics below, these are visible from any Live campaign's details page.
You can export all tracking events data into a CSV file;
Mailed*: This bucket is a count of all pieces that have received a event, which represents handoff to USPS. Access to "Mailed" Events is exclusive to certain customers. Upgrade to the appropriate to gain access.
Certified and Registered letters and Overnight checks are excluded from this dashboard because they are with USPS.
No 'Mailed' Event: (Note, event is an Enterprise feature only). It could be that these mail pieces were sent out as metered mail by USPS, which makes it unmeasurable in our system even though the mailpiece is en route to its destination.
If you have sent any mail containing QR Codes, the next step is learning the engagement rates associated with these mailpieces. The will track how all mailpieces you’ve sent with QR Codes are performing over a selected period of time. (You can see QR engagement analytics for any on that campaign's detail/ status page.)
Filter for more specific subsets of your mail by leveraging .
To receive more detailed analytics, such as time of scan, IP Address, etc, reference in our API documentation.
Access to this feature is exclusive to Enterprise plan customers. Upgrade to the appropriate to gain access.
Access to this feature is exclusive to Enterprise plan customers. Upgrade to the appropriate to gain access.
Hovering over a state will provide more details like how many mail pieces have received a processed_for_delivery
tracking event, as well as average and median mail speeds (calculated the same way as the tab).
Be sure to leverage Lob's more deeply tag your Lob mailings with any internal data you may have, such as a customer ID or campaign ID. Then, you can easily filter by that metadata within the Analytics Dashboard to view different deliverability reports based on those factors.
For mail sent to , we only expect to get either "In Transit" or "In Local Area" scans. For this reason, we've added a top level filter where you can compare US and international mailings, with the last three tracking buckets disabled for international mail.
You can export analytics data (svg, png, csv) by clicking the hamburger menu located at the top right of the graph.
Additionally, each U.S. mail piece is printed with a unique , similar to a package tracking number. For USPS First or Standard Class mail, Lob processes data from our commercial printers and mail partners, along with USPS scan events, to surface tracking events as your mail moves through the delivery process.
You can access this data in the Lob dashboard at the individual mailpiece, campaign, or aggregate level. You can also in the Lob Dashboard or via the API to get proactive notifications. See the full list of (including ) you can access in our API documentation.
Tracking events are a subset of ; below is a list of each tracking event label and description, as recorded by Lob:
- The mail piece has been greenlit for delivery at the recipient's nearest USPS postal facility. The mail piece should reach the mailbox within 1 business day of this tracking event.
- The mail piece is re-routed due to recipient change of address, address errors, or USPS relabeling of barcode/ID tag area.
- The mail piece is being returned to sender due to barcode, ID tag area, or address errors.
For tracking events from USPS (i.e., all events listed after the "" event), expect to start seeing your first tracking event appear within:
In addition to accessing this mail tracking data via our API or Dashboard, you can receive real-time notifications by .
While scans are not guaranteed by USPS, we do see scans on over 99% of our mailings. If more than 5 business days have passed and you don't have any tracking events, send an email to and our team will be able to confirm whether the mail piece has been mailed.
This is a ZIP Code that belongs to some entity (for example, a university, a government agency, etc) which is responsible for sorting its own mail. These ZIP codes are classified by the USPS as a “Unique” ZIP Code (code ), and we often do not see delivery scan events for these ZIP codes. This is because the entity itself is responsible for the final stage of delivery of their mail, rather than USPS.
See here for more details on .
For more information, see how to , and how to via webhooks.
, a user can confirm USPS possession for the majority of First Class/Standard mail pieces. (If proof of USPS possession is crucial to your organization, Lob offers .)
See our technical use case for a deep dive on how to ingest events for a specific mail piece, run a monthly data pull from Lob's system for mail pieces that don't have a certain event, or get real-time updates as your mail piece goes through the mail stream.
For international mailings originating in the US, see for details on tracking mail pieces abroad.
Delivery times for mail will vary depending on and destination:
If you received a "Return to Sender (RTS)" event scan, this indicates that USPS attempted delivery of the mail piece at the original address, was unsuccessful, and the mail is being re-routed back to the return address after being deemed as originally addressed.
This results in a yellow sticker being affixed to the mailing by USPS for tracking purposes called a label. The NIXIE label is affixed by the USPS if they are unable to complete delivery. (In rare cases, RTS without a NIXIE label is possible due to either the neglect of the USPS agent, or because the recipient had chosen to return it themselves.)
You can export all tracking events data into a CSV file;
Additionally, under Mail Analytics (accessed via the left navigation bar in the dashboard), displays a visual breakdown of all tracking events applicable to the mail pieces within the filter parameters.
Real-time progress of mail pieces can be accessed by an easy way to get notifications on events happening asynchronously on Lob's side. Once webhooks are successfully set up on the dashboard, Lob will "push" you notifications when mail pieces are created, when they receive USPS scans such as "In Local Area" or "Processed for Delivery", or any other event you subscribe to.
Enterprise edition customers can also access for USPS Courtesy Reply Mail (for letters only). Once the returned mailpiece enters the mailstream, the customer can start receiving notifications to tracking events via our webhooks.
The full list of event types available for subscription can be found .
If more than 5 business days have elapsed since your Send Date and you don’t have any tracking events, send an email to . Our team will be able to confirm whether the mail piece has been mailed.
Similar to email, direct mail campaigns can measure direct attribution by creating a customized call-to-action CTA that's unique to the end-recipient of the mail piece. This can be a , coupon code, phone number, or . Ideally, each CTA should be as dynamically generated and unique as possible, and can be tracked individually if it is followed. If not down to the individual level, creating unique CTAs for each campaign (or cohorts within it) would allow a better understanding of how specific campaigns or cohorts are driving better conversions.
allow real-time notifications of mail status for individual mail pieces (generated in the form of ) as it progresses through the USPS mailstream. The two most impactful scanned events are the "Processed for Delivery" and "Delivered" events, which means that a USPS courier is about to deliver mail within the next day, or has successfully delivered the mail piece, respectively. If you have a multichannel campaign in progress, you can design for either of these events to trigger an additional sequence of events downstream, such as reinforcement reminders using other digital channels, a limited-time-only action, or some other action or acknowledgment that's unique to your business workflow.
can be used to identify, locate, and "tag" mail pieces or particular campaigns. While metadata is not directly responsible for attribution, appropriately tagging mail pieces is a critical step in measuring attribution at a more granular level.
Learn more about and how it can help measure conversion and attribution through various ways of tagging in our Lob systems.
Include on your mailpieces to view engagement analytics in the following ways:
In the Lob dashboard: Under the Mail Analytics section, see the tab for an aggregate view. Or, view on any individual campaign's detail page, under QR Code Engagement.
Via API: Receive detailed analytics via our .
Webhooks are an easy way to get proactive alerts or notifications on events that are happening within Lob, including the tracking events we receive from the USPS. (.) Some common use cases for integrating webhooks are:
When an occurs within our architecture and you have a webhook subscribed to that event type in that environment (Test vs. Live), we will attempt to make a POST
request with the to the URL provided.
In Live mode, you can only have as many non-deleted webhooks as allotted in your current . There is no limit in Test mode.
Indicate the URL of the web server that will .
Edit your as applicable.
Select your event type. (See for a full list of all available event types.)
To receive webhooks from Lob, you need to create another endpoint on your web server that will accept a POST
request with a content type of application/json
. Keep in mind that it will need to be accessible by Lob, so if there's anything that could prevent Lob from access, it should be disabled for this endpoint. See our recommendations on below.
Fields that may contain any sensitive PII/PHI information will be redacted by default. However, you may adjust your redaction settings in your in the Lob dashboard under Account > "Webhooks Payload."
Because only exist in the Live Environment, these event types cannot be subscribed to in the Test Environment. If you are looking to debug these types of events, you can trigger a mock event to your server by using our tool.
When first starting out, we recommend using our . This allows you to trigger a generated event body to your specified URL on command. This should mainly be used to determine JSON structure when integrating. Since the event bodies sent are fake, all IDs and URLs within them are inaccessible and do not map to real resources in your account.
Once you've started local development of the web server that will be handling these requests, we recommend using a tool that provides local tunneling, such as . This allows you to expose your locally running server to the Internet so we can access it without you needing to deploy your application.
To do this, Account Administrators can go to the and either: (1) enter the rate limit when or (2) select an existing webhook subscription to modify the rate limit. Click the “Edit” button on the right-hand side of the screen, and enter your desired rate limit (per 5-second interval) and click “Update.” This change will take effect immediately.
To replay events, account admins can select a webhook subscription on the to modify. Select the “Replay Events” button on the right-hand side of the screen. Enter a start date and click “Replay Events.” All non-2XX
events will be queued to replay between the date selected and now.
Disabled webhooks can be re-enabled in the by editing the webhook.
We enforce HTTPS for all webhook URLs. Securing your endpoint with TLS ensures all data being sent to and from your server is encrypted. Make sure that you're using a fully-chained certificate, or else the request will never make it to your server and the attempt will fail. To make sure they are fully-chained, you should use the and see if the request successfully goes through.
A common feature that is enabled by default for some frameworks is . This is a valuable security measure to ensure that authenticated users aren't performing actions that aren't intended. However, having it enabled on your webhook endpoint could prevent our events from being processed. Instead of disabling it completely, you should just exempt this endpoint from CSRF validation.
We will always send events based on the at the time of event creation. If your account is set to an older API version but a request is sent with a , the Event generated will still be based on the API Version on your account at that time. Event objects in the past will not be updated if you upgrade your API Version - only subsequent events will follow the new Version's structure.
For enabled, once the envelope enters the mailstream and is scanned by the USPS, the customer can start receiving notifications to mail tracking events, which will be surfaced via webhooks.
Enterprise edition customers can now access for USPS Courtesy Reply Mail (for letters only). Once the returned mail piece enters the mailstream, the customer can start receiving notifications to tracking events via our webhooks.
Log into your
Filter to via API Requests > Event Logs tab
Mailpiece details
ID, Description, URL, Color, Double Sided, Address Placement, Return Envelope, Perforated Page, Extra Service, Expected Delivery Date, Tracking Number, Mail Type, Size, Metadata, Date Created, Send Date, Merge Variables
Sender details
To.ID, To.Description, To.Name, To.Company, To.Phone, To.Email, To.Address Line1, To.Address Line2, To.Address City, To.Address State, To.Address Zip, To.Address Country, To.Metadata, To.Date Created
Recipient details
From.ID, From.Description, From.Name, From.Company, From.Phone, From.Email, From.Address Line1, From.Address Line2, From.Address City, From.Address State, From.Address Zip, From.Address Country, From.Metadata, From.Date Created
Tracking events (if applicable)
Regular Mail: Mailed, In Transit, In Local Area, Processed for Delivery, Re-Routed, Returned to Sender
Certified Mail: Mailed (Certified), In Transit (Certified), In Local Area (Certified), Processed for Delivery (Certified), Re-Routed (Certified), Returned to Sender (Certified), Delivered (Certified), Pickup Available (Certified), Issue (Certified)
Standard Delivery Process
Delivery Attempt 1
Re-Routed Attempt 2
Received
Received
-
In Production
In Production
-
Mailed
Mailed
-
In Transit
In Transit
-
Processed for Delivery
Return to Sender -->
In Transit [+Yellow Sticker]
Delivered
-
Processed for Delivery
-
Delivered
1
Immediately
0 min
2022-01-01T00:00:00Z
2
5 sec
5 sec
2022-01-01T00:00:05Z
3
5 min
~5 min
2022-01-01T00:05:05Z
4
30 min
~35 min
2022-01-01T00:35:05Z
5
2 hr
~2 hr 35 min
2022-01-01T02:35:05Z
6
5 hr
~7 hr 35 min
2022-01-01T07:35:05Z
7
10 hr
~17 hr 35 min
2022-01-01T17:35:05Z
8
10 hr
~27 hr 35 min
2022-01-02T03:35:05Z
Lob's Address Verification API provides a comprehensive solution for businesses looking to optimize their international customer experiences and make more informed decisions about their international address data.
Validate, automatically correct, and standardize non-US international addresses. See our API reference for details.
We follow USPS standards for sending international mail. Therefore, any addresses submitted in a language other than English will see the address returned in English.
Lob's International Deliverability provides greater visibility into an address’s delivery response so customers can make more informed decisions about how they manage international address data. Customers are able to understand when a portion of the address has been corrected and if it has resolved the deliverability issues. To leverage this data, review the complete API documentation under Status
.
International address autocompletion for non-US addresses is not currently available. If you believe this feature is integral to your business, please reach out to support to see if we can support your needs.
Configurable Transliteration provides Address Verification customers greater flexibility and customization when operating around the world. Lob ensures that addresses are correct and deliverable while providing optionality for the address response to be in the native language. This means a customer is able to provide cart checkout messaging that adapts based on where the end customer is located thus creating a more personalized experience. It also means that when working with foreign languages with non-Latin characters the data is seamlessly transliterated and mapped for normalized data storage.
To customize your language response, review the complete API documentation under x-lang-output
.
Country Coverage equips Lob customers with the details needed to make an informed decision about a deliverable address and the potential for false positives. The International Address Verification API provides validation to varying degrees of granularity depending on the country the address is in. Country Coverage indicates the level to which an address has been verified. To leverage this information, review the API documentation under Coverage
.
View our most updated Global Address Coverage here.
Full price list for Address Verification API
Billed annually
$0
$20
$100
$390
Talk to Sales
Billed monthly
$0
$25
$120
$450
Talk to Sales
# of API requests included/month
300
1,000
10,000
50,000
Talk to Sales
$ per add'l request (billed annually)
N/A
$0.020
$0.010
$0.008
$0.000
$ per add'l request (billed monthly)
$0.050
$0.025
$0.012
$0.009
$0.000
US Autocomplete is included in all plans
Zip Lookups count toward US Verification usage
Billed annually
$0
$25
$95
$465
Talk to Sales
Billed monthly
$0
$30
$115
$550
Talk to Sales
# of API requests included/month
0
500
2,000
10,000
Talk to Sales
$ per add'l request (billed annually)
N/A
$0.050
$0.048
$0.047
Talk to Sales
$ per add'l request (billed monthly)
$0.070
$0.060
$0.058
$0.055
Talk to Sales
International address autocompletion for non-US addresses is not currently available. If you believe this feature is integral to your business, please reach out to support to see if we can support your needs.
One of the most prized value propositions of our Address Verification solution is our access to detailed USPS deliverability data which provides a clear, binary value as to whether or not an address is capable of receiving mail. Because Lob sends millions of mailpieces, we also have the data and the intelligence to provide more context that can be useful when considering whether or not to send mail to a specific address.
This useful information is returned to you in the Address Verification API response; see a response sample here.
The USPS returns empirical data to Lob on whether or not an address is deliverable (returned in the deliverability
field), but it’s important to keep in mind the term “deliverable” is literal here— while the address itself may literally be deliverable, it does not guarantee the intended recipient can/will accept mail upon delivery attempt.
This is where it becomes important to make further analysis of the API response.
While evaluation on this metric doesn’t really have a bearing on the number of successful deliveries in your campaign, under components
, the address_type
field contains human-readable definitions for the type of the specified address.
Address type may be very relevant, depending on the goal of your campaign. For example:
Realtors may only be interested in addresses with an address_type
of “residential”
A startup pitching to companies may only be interested in those noted as “commercial”
Those who wish to opt-out of sending mail to more rural areas would want to filter out address types returned as “rural route”
A full list of address types can be found here.
Under deliverability_analysis
we provide more information about addresses. Delivery Point Validation provides the highest level of address accuracy-checking: the address is checked against the USPS Address Management System (AMS) data file to ensure that it exists as an active delivery point to where mail can be delivered. DPV is intended to confirm USPS addresses but also identify potential addressing issues that may hinder delivery. Several sub-fields are included in DPV data to provide additional context on the given address; these fields are one of many variables factored into USPS decision-making when determining deliverability.
The dpv_active
field corresponds to the USPS field dpv_no_stat
. Even if an address is deliverable by definition, it could still be flagged as "N
" for inactive. "N
" indicates an address is not receiving deliveries for one reason or another:
the address has been vacated recently
the address has been unoccupied for 90+ days, thus considered temporarily vacant
the address does not wish to receive mail for unspecified reasons
Remember: If an address returns a dpv_active
status of “N,
” any mail sent to this address is at risk of being returned to sender.
The Lob Confidence Score (lob_confidence_score
) is our prediction of successful delivery based on our historical data for an address. If we sent 10 mailpieces to an address, and all 10 were successfully delivered, the address would have a score of 100. If we sent 10 mailpieces to an address, but 8 were returned to sender, it would have a much lower score of 20. Our Confidence Scores are updated monthly to reflect new delivery attempts.
You may want to consider using the Confidence Score based on the type of mail that you send:
If you are sending operational mail, you may only need proof that the mailpiece was sent to a valid address on file, and successful delivery may not be as important.
If you are sending marketing mail, it is strongly suggested that you consider this field before sending, as addresses with Confidence Scores under 100 indicate the address has rejected mail before.
Without validation, the industry average RTS rate is 5-10%, but through the use of our AV solutions, we see customers with an average RTS rate of 2% or less. Historically, mail campaigns have been prone to imperfection, but through the use of the best practices provided, return-to-sender rates can be driven lower.
Lastly, for customers working with full tech stacks, we highly recommend caching responses to our AV endpoint, as prices are made per API call. So, if an end-user has made a request for the validation of an address (ex: “210 King St, San Francisco, CA”), cache this result internally for at least 24 hours. Now, if another customer attempts to validate that same address, you can pull it from the cache instead and are only charged for the original API call.
Leverage Lob functionality within your tech stack
If your team already uses any CDP, CRM, or marketing automation tool, consider adding a direct mail touch to your customer outreach sequences by integrating Lob into the following platforms. Use any of our external API integrations to easily leverage one of the most performative channels in marketing as part of your digital campaigns.
Ortto (formally Autopilot)
Looking to connect to other automation tools you already use? Let us know here.
Even though the USPS loves working with us, they still have to charge for sending mail. Even if you are on the Developer edition of Lob, before you get started we'll ask you to input your payment information, then add Lob Credits, so you are prepared to send mail!
Test environment data export with no tracking events
Live environment data export with tracking events
Marketo is a marketing automation platform that enables businesses to streamline and optimize their marketing processes, including lead management, email marketing, and campaign analytics.
Keep in mind:
1) The URL you enter for this webhook is going to be Lob's API endpoint for the resource that you're trying to create (e.g., postcard).
2) Choose JSON as the response type for passing Lob parameters and creative data.
You can copy and paste the JSON from Lob’s API documentation.
In the JSON, pass Lob parameters for the recipient name and address, mapped from Marketo.
Include creative data for the content you want to send.
Add the webhook to a campaign in Marketo.
Define trigger conditions for when the webhook should be activated.
Example Campaign: Create a campaign to send a Lob postcard when a specific attribute (e.g., person score) changes. For instance, if a person's score changes to zero, trigger the Lob postcard webhook.
For more detailed assistance, reach out to your Lob connection for personalized guidance on connecting Marketo and Lob.
Indesign-to-Lob
Templify (PDF-to-HTML)
Coming soon!
This platform is in closed beta. reach out to your Account Manager to enable or sign up here.
Freshsales Suite is an intuitive CRM platform that helps businesses manage their sales, marketing, and customer relationships in one place. By adding direct mail into your customer journeys you can create a more personalized and engaging customer experience, complementing your digital outreach with impactful offline interactions. This integration allows you to reach your audience in multiple ways, driving stronger connections and better results.
No-code integrations are exclusive to our users on paid plans. Upgrade your Print & Mail edition to gain access, or contact our sales team to learn more.
Welcome to Lob's USPS Promotions Help Center!
At Lob, we’re committed to helping you take advantage of every opportunity to save on postage costs. Each year, the USPS offers various promotions that provide discounts on mailing services, and we’re here to support you through the process of applying for and meeting the requirements for these offers. In this section, you’ll find detailed guides that walk you through each USPS promotion, helping you understand how to qualify, how to apply, and how our platform can seamlessly support you in the process. Whether you’re a seasoned mailer or new to USPS promotions, we’ve got you covered with all the information you need to maximize your savings.
Ready to start saving? Explore each promotion's guidebook to get started!
Personalized messaging is a core component of all modern marketing channels and a key driver of user engagement. Lob brings the power of personalization at scale to direct mail, enabling you to improve the performance of this key channel and improve your return on investment.
Lob makes this possible by supporting HTML creatives with merge variables. This empowers you to leverage your customer data to individually cater your messaging to each recipient in a way that will maximize the impact of a mail piece. You can now design your direct mail similar to how you would an email or other digital channels, leveraging dynamic personalization to drive conversions.
Some best practices that leverage dynamic personalization include:
Capture 1-to-1 attribution: Use dynamic landing pages, QR codes, and unique URLs/promo codes to understand audience response at the individual level
Repurpose digital campaign assets: Orchestrate an omnichannel campaign with cohesive messaging and branding through online and offline channels
Experimentation: Easily execute A/B and multivariate tests by combining audience targeting with dynamic creation of multiple creative permutations. Test the efficacy of different images, layouts, CTA copy, promotions, and more.
Integrate into the customer journey: Automatically send mail at any point in the customer journey by creating automated direct mail triggers at key actions and milestones
Below is an overview of how to leverage personalization within Lob.
Lob's HTML Templates support the inclusion of dynamic fields, called merge variables, which can be populated individually for each mail piece. These merge variables can be mapped to attribute values in your customer records or audience segments. For example, the value for your customer attribute "First Name" can be passed into a merge variable field in your creative called {{Name}} to dynamically include each recipient's own name in the content of the mail piece they receive. You can create and name your own merge variables within your template, giving you the flexibility to personalize nearly any aspect of your creative.
To utilize an HTML within the Campaigns builder in the dashboard, you must first create a Live template in Lob.
You can create, view, edit, and manage your HTML templates for any mail format by saving them within Lob's system. You can create a template by sending HTML directly to Lob's Templates API endpoint or HTML templates can be created within your Lob dashboard underHTML Templates.
While it is optional, we highly recommend adding a description so you can easily identify your template within Lob.
In the dashboard, you must indicate the Mail Format and Size order to save a template.
Both the description and your HTML can be edited after saving.
Like all Lob mail pieces, you can create HTML templates in both your Test and Live Environments.
Templates created in the Test Environment will only be available for mail pieces created in the Test Environment, while templates created in the Live Environment will only be available for mail pieces created in the Live Environment.
While you can move templates from one environment to the other, make sure you are working in the correct environment (don't move a Live template!).
In Live mode, you can only have as many templates as allotted in your current Print & Mail edition. There is no limit in Test mode.
To utilize an HTML template within the Campaigns builder in the dashboard, you must first create a Live template in Lob.
As for the HTML design, you can start off with a pre-designed template from our gallery (or see these examples in GitHub). Our templates are compatible with merge variables, which enable dynamic content.
If you have limited access to designers and developers, consider using our Figma-to-Lob plugin. This plugin will take any creative designed in Figma and convert it into a HTML template with merge variables.
When designing content with HTML, use inline styles or an internal stylesheet. Do not use an external stylesheet.
If you are linking to images, please ensure that they are at least 300 dpi (but there is no need to go higher than 300 dpi). Because the content is only being designed for a single size, we recommend using absolute positioning (code snippet shown below).
All URLs must be accessible. For example, broken links, missing files, and incorrect permissions will all cause mail pieces to fail before they are sent to print. See here if you are experiencing rendering errors.
Once you've created an HTML template, you'll be able to view it on your dashboard under HTML Templates. Clicking any template will bring you to the Template Details page.
From the menu, you can edit the template, view a large print preview of the template, or delete the template (from the meatball menu).
Also the this page you can:
See a small preview of the template
View the Template ID (completely unique to this particular template)
View the Version ID
View the template's metadata
View the HTML for the template
See previous versions of the template
When you select View Print Preview, a pop-up will display and auto-populate any merge variables we find in your template, which are dictated by {{double_curly_braces}}
. After you've filled out these fields (sample data is fine), you'll be able to preview your template as a PDF, which will open in a new tab. You may need to unblock pop-ups in the browser of your choice.
A JSON editor will be required if you need to use loops, conditionals, or objects. We will not auto-populate any merge variables we find in your template when using the JSON editor.
You won't be able to see any specific proofing elements such as address information, barcodes, or cropping which occur when actually creating a mail piece. The best way to test these elements of your template will be to send it to yourself as a live mail piece.
You can edit a template's description as well as its HTML from the Dashboard as well. When you edit a template's HTML, a new published version of that template will be created. Those changes will go into effect immediately. Any subsequent mail piece integration referencing that template ID will reflect the updated changes as soon as they are submitted.
If a template is no longer of use to you, you can delete it from Lob. Once you delete a template, it will no longer be usable for any postcard, self-mailer, letter, or check requests. Before deleting, ensure that the template is not being actively used in any integrations.
The published version of a template will be the first version featured on the page. This is the version that will be used when that template is referenced in a mail piece request. Prior versions of the template can be viewed within the page, along with a unique ID and browser preview for each. This can be helpful for reconciling edits made in the past, or copying a prior template and saving it again in order to revert to it.
Merge variables make it easy to personalize your mail pieces with whatever custom information you'd like to include. Common use cases for merge variables include:
Personalized customer information (name, city, etc)
Date
Invoice line items
Custom copy or images
CTAs (URLs, coupon code, phone numbers)
Merge variables only work if you use HTML to generate your mail piece. To make use of a merge variable, insert {{tag_name}}
(with double curly braces) into the HTML template. You can define the merge variable name, and you can enter it into any section of your HTML.
If the HTML above were used with the information below:
Harry
20px
red
Ami
30px
green
Then the final two postcards would be rendered like so:
Use this feature to your advantage to create dynamic creatives for your recipients, without having to generate PDFs on your side.
All URLs must be accessible. For example, broken links, missing files, and incorrect permissions will all cause mail pieces to fail before they are sent to print. See here if you are experiencing rendering errors.
You have the ability to access merge variables at any depth within your JSON. For instance, you can have an object created with multiple attributes:
To access these within your template you can do the following:
This renders the following template:
You can also create a "section" which will change the context of the variables you are accessing. For instance:
This renders the same HTML as above, since you changed the context to the "user" temporarily. This is done by the {{#user}}
and {{/user}}
syntax. Everything inside that "section" tries to access a property on the "user" object.
Conditionals allow you to conditionally render content in a mail piece. An example use case could be including additional text for any user who has purchased over 1,000 products. To do that would require the following:
Merge variables:
Template:
This renders:
If you want to render content if a condition does not pass, simply use ^: {{^condition}}{{/condition}}
.
For example:
Merge variables:
Template:
Loops allow you to display content multiple times for multiple objects. The following is an example of how to use loops:
Merge variables:
Template:
This renders:
While JavaScript can unlock all kinds of new functionality in your Lob templates, it comes with the important caveat that not all client-side JavaScript can be rendered by Lob. You are thus strongly encouraged to test all JavaScript prior to utilizing in live mail templates. Test your entire HTML template containing the JavaScript (rather than just the JavaScript snippet itself) using your Test API key before using the template in any live mail API requests.
For even more flexibility we recommend using the Handlebars templating engine.
Lob offers a merge variable strictness setting that dictates how we treat merge variables in your HTML templates, and whether to send out any mail pieces that are missing their merge variable input values. This is a setting that can be set at the account or campaign-level, and is critical to use when handling dynamic creatives. See Merge variable strictness settings for more information.
You can incorporate any font into your Lob HTML Templates by using one of the options below. Links to fonts must be accessible by Lob or they will not render successfully.
Using Google Web Fonts is a simple way to import and use a wide variety of fonts within your Lob HTML without having to download or upload any assets.
Once you've identified your font within Google, just include a link to the font in the <head></head>
tag of your HTML:
Then reference the font in your <style></style>
tag or inline:
You are also free to use any custom font that is accessibly hosted. Upload your font files to a performant file hosting platform (such as Amazon S3) and use CSS @font-face declaration to load them into your design.
For example, in the <style></style>
tag of your HTML, add the rule like so:
And then reference the font in your <style></style>
tag or inline:
When creating HTML letters within Lob, you may find it necessary to create page breaks in order to split up your content by page. This is easy to do using CSS's page-break-after
property.
For example, create a page
class in your HTML and apply these styles:
And then, divide the pages of content in your HTML by this page
class:
Templates can be viewed in the Lob dashboard, where they can be created, managed, and stored.
The total number of templates available is dependent on the Platform Edition; if you need more HTML templates than what is available in your current edition of Lob, we encourage you to upgrade to a higher tier edition. You may also delete any HTML templates you no longer need to make room for new ones.
Although anyone versed in HTML/CSS will find the process of creating templates familiar, we recommend these practices.
If you need a place to start, we highly recommend working off an example from our Template Gallery.
For the closest visual analog to our own rendering technology, we suggest viewing your template in the Safari browser. This also means that usage of CSS stylings unsupported by the Webkit (Safari) engine may not render correctly. We recommend working at a 300dpi resolution, any higher resolution would be lost once the mail piece is printed.
Be sure to make use of the "Print Preview" option with your HTML templates, whether in Live or in Test mode, to get a basic digital proof of your mail piece. (Keep in mind that templates created in the Test Environment will need to be recreated in the Live Environment before they can be used with Live mail pieces.)
In the Campaigns builder, most mail formats will also display a Creative Proof; this will display merge variables, address block, Lob carbon-neutral logo, and indicia, plus return address and QR codes if included.
Where possible, we always recommend sending yourself a printed mailpiece.
RGB vs CMYK
As it stands today, our rendering engine does not support the CMYK color profile in HTML templates, though we are slated to resolve this in the near future. As such, colors provided in HTML templates will need to undergo a transition from RGB to CMYK which may affect the hue and saturation. This is true even when assets are provided in CMYK. We advise our customers keep this in mind when requesting to print brand logos or skin tones. If preferred, we support CMYK for static (PDF) formats.
For a successful template creation experience, abstain from the following:
using the object-set
property
images img
with opacity
properties
images using background-image
, border-radius
, and border
properties in unison
gradients using transparency
background-size: contain
in these cases, also include background-repeat: no-repeat;
JPEG images with EXIF orientations set to non-zero values; workarounds include:
using a JPEG header manipulation utility such as jhead to correct the rotation value
Example: jhead -autorot myfile.jpg
using a PNG instead
In the Campaigns tool, Step 3: Choose creative, you will select an HTML template, and then choose from the drop down options. An HTML template must exist in the Live environment for the Campaigns tool to reference.
To test and use your HTML template, you'll need to create a mail piece. For parameter details, see the respective documentation for each single endpoint in our API documentation.
For this example, we'll create a postcard. Don't forget to add merge variables to your HTML template for any dynamic fields. Also, remember that the published version of the template is the version that will be used for the request.
After sending this request, a successful response will include a signed URL to a digital copy of the created postcard. You will also be able to view this in the Lob dashboard, under Print & Mail then the corresponding mail format (in this case, Postcards).
For any mail piece that use templates, the Template IDs and Version IDs used will be retrievable from the API (see the respective documentation for each endpoint), as well as viewable on the dashboard under HTML Templates listing and each Template Details page.
The Tactile, Sensory, and Interactive (TSI) Promotion encourages mailers to excite their customers’ senses by incorporating innovative techniques into their First-Class Mail and USPS Marketing Mail. New developments in papers and paper stocks, substrates, finishing techniques, and inks can be incorporated into mailpieces to create a multi-sensory experience through special visual effects, sound, scent, texture and even taste! Features like pop-ups, infinite folds, and other dimensional treatments encourage interaction and drive customer engagement.
The USPS offers a discount for three types of new experiences:
Specialty inks
Sensory treatments
Interactive elements
The USPS Tactile, Sensory, and Interactive (TSI) promotion is all about helping you make your mail stand out. By adding unique design elements that engage the senses, you can create a stronger connection with your audience and save money. Here’s everything you need to know to qualify.
The TSI promotion is open to these types of mail:
First-Class Mail: Letters, cards, and flats
USPS Marketing Mail: Letters and flats
Nonprofit USPS Marketing Mail: Letters and flats
Mailpieces that include mail diversion messaging—such as “Go paperless” or “Switch to e-billing”—are not eligible for the discount. Even if your piece includes the right treatments or technology, these types of messages will disqualify you from the promotion.
To qualify, your mailpiece needs to feature one or more eligible treatments. These can appear:
On the outside of the envelope
Directly on the mailpiece itself
Important: Treatments like blow-in cards, inserts, order forms, or reply envelopes don’t qualify for this promotion.
To take advantage of this promotion, select the sensory treatments for your mailpiece. All treatments must be produced using Lob’s Custom Format product, unless noted otherwise.
By adding these creative touches to your mail, you can enhance engagement and qualify for USPS discounts—all while creating a memorable experience for your audience.
The USPS Tactile, Sensory, and Interactive (TSI) promotion is designed to encourage creative, engaging direct mail that stands out in the mailbox. To qualify for the promotional discount, mailpieces must include one or more of the eligible treatments outlined below.
Showcase unique ink properties in ways that are visible and distinguishable to recipients:
Conductive inks: Activate electronic devices or include printed, battery-powered circuits.
Thermochromic inks: Change colors in response to temperature shifts.
Photochromic inks: Change colors when exposed to UV light.
Metallic and optically variable inks: Create reflective effects or metallic sheens.
Piezochromic inks: Change appearance when pressure is applied.
Hydrochromic inks: Transform when exposed to water or liquids.
Scented inks: Add fragrances using scented varnishes or coatings to amplify your message.
Non-eligible ink treatments: If the specialty ink resembles a photo or doesn’t create a distinguishable effect as listed above, it won’t qualify. Treatments must deliver a noticeable and impactful effect to recipients.
Engage the senses with innovative designs that appeal to sight, sound, smell, taste, and touch:
Texture: Use papers that feel soft, leathery, crinkly, or feature embossing for a tactile experience.
Pro tip: Lob can swap standard blank #10 envelopes with grooved blank #10 envelopes, which can run through our normal workflow and qualify for the discount. Reach out to your AM to discuss your options.
Scent marketing: Incorporate unique aromas using scented varnishes, coatings, or labels.
Visual effects: Add holographic treatments, filters, or lenticular designs to enhance your message.
Deliver a dynamic and engaging experience that encourages recipients to interact with your mailpiece:
Integration: Use three-dimensional elements, pop-ups, zip strips, clean-release cards, and more to surprise and delight.
Infinite folds: Include layers of hidden information behind folds for customers to uncover.
Trailing edge die- cut (TED-C) envelopes: Add eye-catching cutouts and shapes that make your piece stand out.
Pro tip: Lob offers “Tip-on-Card” or “Card Affix” options through our normal workflow, which qualify for the promotion when used in tip-on-card (TOC) campaigns.
By incorporating one or more of these eligible treatments, you can transform your mailpiece into an unforgettable experience and qualify for the USPS TSI promotional discount.
Participating in the USPS TSI promotion through Lob is simple with a step-by-step process designed to help your campaign qualify for discounts while delivering standout mailpieces.
Decide which eligible sensory treatment you’d like to incorporate into your campaign. Options include specialty inks, tactile finishes, or interactive elements.
For grooved envelopes or Tip-On-Cards: Use Lob’s standard workflow by specifying the inventory item in your API call. In order to participate in this promotion starting on 2/1/2025, customers need to have their inventory order placed for either their grooved envelopes or Tip-On-Cards by 12/31/24.
For other sensory treatments: Submit your campaign through Lob’s Custom Format workflow.
To get started, log into the Lob Promotions Portal:
Select “Opt-In” for the USPS TSI promotion.
Accept the terms and conditions for participating in the promotion through Lob.
Design: Work with your Lob Account Manager (AM) to create a mailpiece featuring your selected treatment.
Sample approval:
Create digital and physical samples of your mailpiece.
Upload the sample via a Service Request in the Lob Promotions Portal.
Lob will print the relevant information from your service request and mail it, along with your mailpiece sample, to the USPS Promotions Office.
You’ll receive approval via email and in the Promotions Portal.
Lob will enroll you in the Tactile, Sensory, Interactive Program on the Business Customer Gateway.
Lob will prepare and electronically submit your postage statements, using the CCR code “SS” to reflect the discount.
Keep a hard copy of your mailpiece for your records.
Once your mail is sent, sit back and watch your customer engagement rise—thanks to the powerful impact of sensory, tactile, and interactive direct mail!
For any questions or assistance, your Lob AM is here to help every step of the way.
If you’re sending letters in Lob’s standard blank #10 window envelopes, contact your Account Manager (AM) about switching to Grooved Standard #10 envelopes. This upgrade qualifies your mail for the promotion while keeping your workflow simple.
For customers interested in tip-on cards (TOC), Lob’s standard product supports this option. Work with your AM to source the necessary inventory and set up your campaign.
Lob recommends all letter customers update their Standard Blank #10 envelopes to Grooved Standard Blank #10 envelopes to take advantage of the TSI promotion. This quick and easy change ensures eligibility while enhancing your mailpiece’s tactile appeal. Ensure you speak with your AM about your Grooved Envelope inventory needs prior to 12/31/2024.
The promotion runs from February 1, 2025, to July 31, 2025. Be sure to plan and execute your campaigns during this period to maximize your savings and engagement.
Reach out to your Lob AM to discuss your options and ensure your mailpieces meet the requirements for this exciting promotion.
If you've spent long hours preparing an audience list by appending data, you also know that your direct mail campaign can only be successful if your mail actually makes it to the recipient in the first place.
Similar to digital campaigns, physical mail campaigns need postal address verification so that physical mailers can check the accuracy of the addresses on their list, fix mistakes, and avoid undeliverable mail. Lob's Address Verification solution suite can ensure that submitted addresses are accurate and ready to be mailed, and reduce costly mistakes that end up undelivered and returned or thrown away.
Additionally, if your business is operating in a growing web of complex regulatory requirements, maintaining good address hygiene can play a critical role in meeting compliance and reducing friction in your customer experiences.
Here at Lob, our suite of products can help improve your business in the following ways:
Improve deliverability by ensuring the physical address in question is deliverable
Mitigate erroneous data inputs or fraudulent transactions through cleansing and verification
Validate recipient identity by ensuring individuals and businesses reside at their stated address
Read on for further information on our Address Verification suite.
Lob's Address Verification API is able to correct and identify over 156 million US domestic addresses (and more globally) to determine whether or not these physical addresses are deliverable. This is because Lob is CASS (Coding Accuracy Support System) Certified, meaning the API has been thoroughly tested by the USPS to ensure that it can accurately correct and validate street addresses. When our API confirms that a physical address is deliverable, you can be much more confident that your mail will be delivered.
Validate, automatically correct, and standardize US domestic addresses based on USPS's Coding Accuracy Support System (CASS). See our API reference for more details.
If your addresses are returning as undeliverable
, refer to the various fields in the US verification object in our API reference for detailed definitions and explanations.
Given partial address information, including optional input of city, state, and zip code, US Autocomplete returns up to 10 full US address suggestions. Not all of them will turn out to be valid addresses; they'll need to be verified. See our API reference for more details.
Use of the US Autocomplete API is included with every Address Verification subscription. See our pricing page for different Address Verification editions for more information.
Find a list of zip codes associated with a valid US location via latitude and longitude; a live API key is required to use this feature. See our API reference for more details.
Lob's Zip Lookup tool can verify US zip codes without having to provide a full address. If the inputted zip code is real, Lob can return information about the zip code including a list of cities, states, and other associated information. If it's not a real zip code, Lob will return an "invalid zip code
" error message. See our API reference for more details.
Lob Address Verification Elements verifies an address by intercepting the original form submission and pre-validating the address fields with Lob. Thus our APIs can be leveraged in customers' address entry workflows without any major rewrite required--just a few additional attributes to add to any existing markup, and it'll be running with a few minutes of work.
See our AV Elements Quickstart guide to get started.
The Lob Confidence Score is an object returned from the US verification endpoint that provides a value between 0-100 of the likelihood of the address being deliverable. Lob leverages its extensive insights, having sent mail to more than 1 in 2 US households, to generate a confidence score and provide more comprehensive address deliverability data.
Score definitions
70-100% - This address has received one or more successful deliveries
40-68% - This address has both mail returned to sender and successful deliveries
0-39% - This address has more mail returned to sender than successful deliveries
None ("") - Lob does not have data on this address
Note that high scores do not guarantee deliverability. These are estimates based on Lob’s extensive mail tracking data.
See our API reference under the JSON object lob_confidence_score
for more details.
Create an account at Lob.com to obtain a Live Public API Key. The key is available in the API Keys tab of the Lob Dashboard Settings and uses the format, live_pub_*
Address Elements works by targeting the input elements of your address form and using their values with Lob's verification and autocomplete functionality. Include the AV Elements script tag immediately before the closing <body>
tag
Code demo:
Sandbox:
AV elements works great with e-commerce platforms because they use predictable element names. For example, Shopify users can simply paste the following preconfigured script at the bottom of their Shopify Plus template.
Remember to replace live_pub_xxx
with your Lob public key
Many E-commerce platforms have strict content security policies that prevent scripts from loading additional content. Embed the merged build of Address Elements to handle these situations as shown in the example above (lob-address-elements.min.merged.js
). This ensures all dependencies are included in the download.
The Address Verification script has many attributes to give you complete control over its appearance and behavior. They generally go by the following pattern:
These attributes are used to identify an element on your web page. Their values should be the elements ID and correspond to the components of an address: primary line, secondary line, city, state, and zip.
Example: data-lob-primary-id="address1"
These attributes modify the behavior of autocomplete and verification. Their values are either true, false, or a string from a list of options
Example: data-lob-verify-value="passthrough"
With version 2, AV Elements can detect address form inputs automatically. We can improve performance by skipping the form detection process when these attributes are provided. Set them to the IDs for each field to target.
data-lob-primary-id
data-lob-secondary-id
data-lob-city-id
data-lob-state-id
data-lob-zip-id
data-lob-country-id
These attributes modify the behavior of AV Elements
data-lob-verify-value
strict
normal
relaxed
passthrough
false
Controls the strictness level when verifying an address. If the strictness criteria is not met, we block the form submission and prompt the user to correct the address. Set to passthrough
to submit the form regardless of the verification result. Set to false
to disable verification altogether.
Default: relaxed
data-lob-primary-valu
e
Enables or disables address autocompletion.
Default: true
data-lob-secondary-value
When set to false, force the suite or unit number to render on the primary address line during address verification.
Default: true
data-lob-*-message-id
Identifies the element containing the error message at the input level. Lob will update the text content for this element and toggle its display.
data-lob-primary-message-id
data-lob-secondary-message-id
data-lob-city-message-id
data-lob-city-message-id
data-lob-zip-message-id
data-lob-country-message-id
Example: data-lob-primary-message-id
points to the element below the input for Address 1. Any errors related to the primary line will be inserted inside this element.
data-lob-err-*-value
Overrides the default error message when a value is missing or specific Lob verification error messages
data-lob-err-primary-line-value
data-lob-err-city-state-zip-value
data-lob-err-zip-value
data-lob-err-undeliverable-value
data-lob-err-missing-unit-value
data-lob-err-unnecessary-unit-value
data-lob-err-incorrect-unit-value
data-lob-err-confirm-value
data-lob-err-default-value
data-lob-anchor-id
This optional attribute will place the general error message before the element with the id provided. An alternative attribute is data-lob-anchor-class
which will search for the target element by class name.
Modern web frameworks like React and Vue boost developer productivity without sacrificing control. Add IDs to the components of your address inputs (they will be included in the compiled HTML at runtime) then include these IDs in the form detection attributes of the AV elements script.
If your component has many layers, you must ensure that the ID is propagated down to the root html components being used.
React demo
In this demo we use React out of the box and create an address form. The AV elements script is added in public/index.html
before the closing body tag. This demo also overrides some styles to keep the verification message centered in the form and to undo the styles applied to our primary address by our dependency algolia (for autocompletion).
Vue 3 demo
Similarly, the AV elements script is also placed in public/index.html
before the closing body tag.
The AV elements script searches for key form elements like the form tag and <input type="submit" />
. When building your form with component libraries such as Material-UI or Ant Design, check for the following:
An ID can be propagate down to the root html elements used by the component.
The components render the appropriate html elements for their behavior - they are materially honest (e.g. not styling links as buttons or using hidden elements to work correctly)
Case #1 may be the more common scenario you'll come across. If this happens, you will need to fallback to writing the component yourself in place of using the library's component.
International address verification is enabled when there is a country input present and it is set outside the United States. Form detection is relaxed on international forms since different countries may require different sets of address components.
Autocomplete is disabled for international addresses.
AV Elements employs multiple strategies to detect your address form. If none of them work, we display an error message to help fix this. Those messages are shown below:
Problem: These errors arise in the form detection process:
Either we are unable to find the input for a given address component, or we detected multiple inputs that may correspond to the same address component. There could be various causes for these errors including the input not existing, a label we're not familiar with, or a problem with the component's implementation from an external library.
Solution: Add the attribute(s) mentioned in the error to the AV elements script. The value should be an element id. For example, with the message above we must add the attribute data-lob-state-id
.