# ZAP-POST Documentation Hub

Welcome to ZAP-POST's documentation hub — the one-stop shop for learning everything from using our App and API to our latest integrations and how to get the most out of your ZAP experience.

{% hint style="info" %}
We know it's practically impossible to go through all of our documents in a single run. Make sure to use the **Lens search feature,** sign up for [**our latest updates**](https://zappost.com/mailing-list-sign-up/) or [**get in touch** ](https://zappost.com/contact)with a member of our team. We're always happy to chat with you! 👋
{% endhint %}

## Get started with the ZAP App

We've put together some helpful guides for getting set up with the ZAP App (ZAPP) quickly and easily. Check out our user guide documentation here:

{% content-ref url="/pages/3B2EbmjWYoGkclBpjpMD" %}
[ZAP-POST User Guide](/zap-post-web-app/zap-post-user-guide)
{% endcontent-ref %}

## Introducing the ZAP API

Here, you can view the ZAP API (ZAPI) documentation:

{% content-ref url="/pages/OxSVI9fesvO8gRyizVFr" %}
[ZAP-POST API Documentation](/zap-api/zap-post-api-documentation)
{% endcontent-ref %}

## Explore our Integrations

Looking to integrate? You can view the current integrations available for ZAP\~POST:

{% content-ref url="/pages/DTsocxiDHKuVGRfBUjqu" %}
[ZAP-POST Integrations](/zap-integrations/zap-post-integrations)
{% endcontent-ref %}


# ZAP-POST User Guide

ZAP\~POST is a direct mail platform which helps you get Direct Mail campaigns sent out for your business- just as easily as sending out email marketing.

<figure><img src="/files/EVufUGUw0nvTGsQeycL8" alt=""><figcaption></figcaption></figure>

## Introduction

ZAP-POST is an automated Direct Mail Platform intended to provide your business with the ability to send programmatically driven direct mail campaigns composed of personalised mail for each of your customers.\
\
If you're looking for information on the demo designer experience that's available on zappost.com then you can check [here](/zap-post-web-app/zap-post-user-guide/zappost.com)\
\
If you're unsure how to sign up or want to know what the sign up process looks like you can see our sign up flow [here](/zap-post-web-app/zap-post-user-guide/zap-app/sign-up).&#x20;

If you're new to direct mail or just to ZAP\~POST we recommend you follow our [**Getting Started** Section](broken://pages/sRA50jABS5KcNdKCWsvu).


# Getting Started

Get up and running in ZAP\~POST in a matter of minutes and start sending your first mail

This guide will show you how to sign up, create a campaign and send your first pieces of direct mail. \
By time you finish this guide you will have a ZAP\~POST account with Live Campaign that has mail sent that you know how to do effective campaign analysis on. \
\
There are 3 main steps to any direct mail campaign within ZAP\~POST. If you're unfamiliar with any terms below don't worry we'll explain as we go along:<br>

1. **Campaigns**. This is where you tell us what you want to send. What paper stock, what artwork will go in the mail. You'll use our ZAP Designer to create your dynamic artwork so each recipients mailing is unique to them.&#x20;
2. **Submissions.**  This is where you tell us who you want to send the mail to. This can be done via one of our integrations on a recurring schedule, via an API integration or manually via file upload.&#x20;
3. **Campaign and Recipient Analysis**. This is where you can determine which of your campaigns are most effective based on our R.O.A.S reporting. You can also see which mail was rejected, undeliverable, who has scanned any QR codes or other key metrics. <br>

### **Step 1 - Create an account**

In order to get started using ZAP\~POST you'll need to go through the [sign up process](/zap-post-web-app/zap-post-user-guide/zap-app/sign-up) to create your account.&#x20;

After creating your account you'll be taken to the ZAP dashboard from where you can get Zapping.&#x20;

### **Step 2 - Create your first campaign**&#x20;

The easiest way to create a new campaign is to use the new campaign button on the dashboard.&#x20;

<figure><img src="/files/sf50ph9Om9u2YqSYsPtc" alt=""><figcaption></figcaption></figure>

There is also an option to create a new campaign on the campaigns page

<figure><img src="/files/0oRikFWCfjsX3RDweCVx" alt=""><figcaption></figcaption></figure>

From here you should follow the Campaign Wizard steps or use the [campaign creation guide ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns#creating-a-campaign)

### Step 3 - Designing your ZAPs

Now that we know what data we're expecting for our campaign and we know what paper we're planning to use we can start to design our campaign artwork. \
\
For ZAPPOST Campaigns your artwork will be managed in the ZAP Designer. This tool allows you to add text, images (Static and dynamic) and QR codes. \
You can use your own custom artwork, fonts and other assets within our tool. \
\
To get to the designer you can select designer from the top nav, or if you're on the campaign you wish to edit artwork for you can access that from the edit designs button or by clicking the edit icon on each page.

<figure><img src="/files/LQGuOgNVHeERNlO12ZHB" alt=""><figcaption></figcaption></figure>

Any of these options will take you to the designer where you can edit your artwork.&#x20;

#### Using the ZAP Designer

You can view our full breakdown of the designer functionality in the [designer documentation](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/design)\
\
We also have a helpful [article on our academy too](https://zappost.com/academy/lessons/how-to-design-your-zap-video/)

<figure><img src="/files/LUYpUrICPx96FaoDyEmU" alt=""><figcaption></figcaption></figure>

Once you're happy with your design, you're ready to proof it. \
Proofing will show you some example documents using default ZAP POST data or using your own custom data set that you're uploaded for testing. \
\
The proof will allow you to check **text accuracy, colour matching, layout and placement** before publishing your designs and running any large volume sends. <br>

<figure><img src="/files/qSZGArln0Cvhj3ur0rxl" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/gGdnrdqePXcRuB0ZnZtb" alt=""><figcaption></figcaption></figure>

From there you can refine as necessary or publish your artwork if you're happy to begin sending mail.&#x20;

### Step 4 - Creating your first ZAP Submission

A ZAP submission is just a collection of recipients to whom you wish to send mail. In order for us to know who to send mail to, you create a submission against an Active Campaign. \
This allows us to combine your data, with your artwork to create the dynamic ZAPs that will go into the mail. \
There are 3 primary ways to submit data to ZAP POST.&#x20;

<figure><img src="/files/ReXJDKrwYJ3dI449NnTp" alt=""><figcaption></figcaption></figure>

#### CSV File Submission

The simplest way to submit data to ZAP\~POST is to download the campaign csv file and populate it with your required recipient data. This can then simply be uploaded to the app. \
This process is documented in our [CSV submission process documentation](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/sending-zaps#uploading-data)

#### API Submission&#x20;

For developer submissions, or self managed integrations users can submit their data via API. \
The following documentation on [API Consumers](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/api-consumers) and [API Submissions](/zap-api/api-endpoints/submissions) will be useful.&#x20;

#### ZAP Integrations

There are numerous integrations available in ZAP\~POST as you can see below each are covered extensively in our [integration documentation](/zap-integrations/zap-post-integrations).&#x20;

<figure><img src="/files/wRR1zthUKzy6lsxqMgrh" alt=""><figcaption></figcaption></figure>

Regardless of your preferred submission method you will end up with a new Submission created in ZAP POST which will be ready for us to process.&#x20;

<figure><img src="/files/D0FeTReR6qLaEzzwvAtm" alt=""><figcaption></figcaption></figure>

From there, we'll complete some internal processes to validate your data and confirm your recipient address details are correct. \
Once those processes are run you'll be put into the send date pool associated with your send and they will be mailed.&#x20;

### Step 5 - Analysis&#x20;

For each submission there are various key events that will occur. ZAP POST has several tools to enable users to gain key insights into their direct mail campaigns.&#x20;

#### Submission Monitoring&#x20;

Recipients in a submission can have several key events that you may wish to keep monitor. &#x20;

* Record rejected (Recipient moved, deceased, address details incorrect).&#x20;
* QR Code Scanned
* Mail Returned&#x20;
* Mail sent Successfully
* Submissions with dynamic image issues (If your campaign uses dynamic images)<br>

<figure><img src="/files/3wwf5HbYLuuqBUlRL7f3" alt=""><figcaption></figcaption></figure>

The following events are also logged to all enabled integrations with events functionality: <br>

* Submission Created
* Mail Rejected
* Mail Sent
* QR Scanned
* Mail Returned

#### Return on Ad Spend&#x20;

Users with integrations enabled that allow us to pull order information can also benefit from ROAS reporting. \
User can see overal, Campaign or Submission level ROAS reports&#x20;

<figure><img src="/files/hhabbqb8YY7kWh6OVz6f" alt=""><figcaption></figcaption></figure>

You should now be comfortable with the basic steps of sending mail with ZAP\~POST. \
If you want any more details you can view the whole [app documentation](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp) or you can use our AI powered search functionality to ask any questions you have.&#x20;


# ZAP APP

app.zappost.com

## Introduction

The ZAP-POST Web App or 'ZAP APP' is the app that provides the lions share of the ZAP-POST functionality.&#x20;

If you're new to direct mail or just to ZAP\~POST we recommend you follow our [**Getting Started** Section](broken://pages/sRA50jABS5KcNdKCWsvu).<br>

*

```
<figure><img src="/files/DGMgVwjhWi3sGq8U15hT" alt=""><figcaption></figcaption></figure>
```

\
The following document is intended to cover the functionality of the ZAP APP Extensively. \
\
Navigate by functionality:&#x20;

1. [Set up your Account](/zap-post-web-app/zap-post-user-guide/zap-app/sign-up)
2. [Set up your Campaign](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns)
3. [Design your Zap](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/design)
4. [Upload your Data ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/sending-zaps)
5. [Tracking your Zap campaigns](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/insights)

\
Navigate by Page: <br>

1. [Dashboard](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/dashboard)
2. [Campaigns](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns)
   1. [Campaign Wizard](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns#creating-a-campaign)
   2. [Campaign Details Page](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns/campaign-details)
3. [Settings](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings)
   1. [User Management](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/user-management)
   2. [ZAP Settings](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/zap-settings)
   3. [Account Details](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/account-details)
   4. [Notifications](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/notifications)
   5. [Plan](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/plan)
   6. [API Consumers](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/api-consumers)
   7. [ZAP History](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/zap-history)
   8. [Webhooks](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/webhooks)
   9. [Billing](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/billing)
4. [Submissions](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/sending-zaps/processing)
5. [Insights](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/insights)
6. [Integrations](/zap-integrations/zap-post-integrations)


# Sign up

Getting started with ZAP-POST

## Initial Sign up

In order to sign up to ZAP-POST, you will need to provide an email address and a password.

If you have any issue with this process you can either utilise the chat widget to communicate with the team or email <help@zappost.com>.

<figure><img src="/files/BnpJaUfyluwcTiP7Cdhx" alt=""><figcaption></figcaption></figure>

## Activation Email

Upon successful completion of the form, you will be sent an automated email asking you to activate your account by proving ownership of the email account provided. As this email has an expiration period, you should activate your account as soon as possible.

<figure><img src="/files/xx57528mhxgLR5Rf3Ki1" alt=""><figcaption></figcaption></figure>

Once you have followed the link, you will be successfully signed up to the app and will be able to log in to continue your sign-up process.

## Successful Activation

<figure><img src="/files/qOCWwnfe4ksIcwEFazdY" alt=""><figcaption></figcaption></figure>

## Expired Activation

If you are late when attempting to activate your account, you will be presented with an error and the option to generate another email to try again.&#x20;

<figure><img src="/files/jsbnJ8Q5fqrz1Wpi489m" alt=""><figcaption></figcaption></figure>

## Set Up - Company Info

With your account activation completed, the next step is to finalise setting up your account on ZAP-POST. To complete this, you must first fill in your company name, contact phone number, and company address. You can also upload a logo for your company to be used in UI's and to be available in our ZAP Designer.

<figure><img src="/files/IdL4aGVnEA8dsWkod1Bp" alt=""><figcaption></figcaption></figure>

## Set Up - Plan Selection

The next step is for you to select which Zap plan you are signing up for.

There are five categories of plans to choose from:&#x20;

### **Monthly plans (Basic, Standard, Pro, Premium, Enterprise)**

With monthly plans, you will pay for a set number of Zaps which must be used in the following month. Data cleansing and returns management are included as standard in all of our plans. With a monthly plan, any unused Zap credits will not be rolled over to the following month for use. Any Zap credits which have been earned from data cleanses will be available to use in the following month. With a monthly plan, you can cancel with 30 days' notice.&#x20;

### **Annual plans (Basic, Standard, Pro, Premium, Enterprise)**

With annual plans, you will pay for a set number of Zaps which can be used at any time in the following year. Data cleansing and returns management are included as standard. Any Zap credits which have been earned from data cleanses will be available to use in the following month from which they were earned. With an annual plan, you can cancel with 30 days' notice.&#x20;

### Trial plans (Basic, Standard, Pro, Premium, Enterprise)

With trial plans, you will pay for a set number of Zaps which can only be used within the trial period (1 month). Trial plans have access to the same rates which annual users enjoy. Data cleansing and returns management are included as standard.  Any Zap credits which have been earned from data cleanses will be available to use in the following month from which they were earned (provided the client upgrade to either a monthly or annual plan following the trial period). With a trial plan, there is no need to cancel following the trial period.

### PAYG plan

With the PAYG plan, you only pay for the Zaps you use with no monthly cost. Data cleansing and returns management are included as standard in all of our plans. With a PAYG plan, you can cancel at any time.&#x20;

<figure><img src="/files/BgWsIRocAb5zpEowqtcS" alt=""><figcaption></figcaption></figure>

## Set Up - Summary

This is the final stage of the setup process.&#x20;

On this screen, you will be shown a summary of the choices you have made during the setup process. At this stage, if you wish to change anything you have done so far, you can click on the edit button next to the relevant information. You can also book a call with our team from this screen by clicking on the link under the summary box. When you are happy with all the choices you have made, click the checkbox to agree to the [Terms and Conditions](https://zappost.com/terms-privacy-and-cookies/#terms) and then click ‘Get Zapping!’ to proceed to the [dashboard ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/dashboard)with your newly-created ZAP-POST account.

<figure><img src="/files/Ds1410yqIaTze3fzipXk" alt=""><figcaption></figcaption></figure>


# Authentication

Logging in to the ZAPP

## How to Authenticate

You have two options when logging into Zapp. You can authenticate via your ZAP-POST username and password or via one of our other approved authentication providers, including using your existing SMARTSlip account.&#x20;

<figure><img src="/files/O2SucPS6Nh89RI1hROUj" alt=""><figcaption></figcaption></figure>

If you wish to log in via your SMARTSlip account, you will be redirected to the SMARTSlip login page. You can then provide your username and password and will be automatically returned to the ZAPP.

## Password Reset

If you have forgotten your password, you can reset it using the following link: [ZAP\~POST password reset](https://www.account.zappost.com/account/requestresetpassword). \
\
Alternatively, you can visit: <https://account.zappost.com/account/requestresetpassword>

<figure><img src="/files/zEe4iJnGJGky0uNEE3oL" alt=""><figcaption></figcaption></figure>


# Using the ZAPP

The ZAP-POST web application (or ZAPP for short)

Once you've created your account and set up your company with ZAP-POST, you will be taken to the ZAPP. This is the web application from which you can manage your Direct Mail campaigns.\ <br>

* [Dashboard](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/dashboard) - The ZAP\~POST home page with your up to date information
* [Campaigns](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns) - ZAP-POST Campaign management
* [Design ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/design)- How to create and manage ZAP Content&#x20;
* [Processing ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/sending-zaps/processing)- Review your ZAP Submissions&#x20;
* [Insights ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/insights)- Return on Ad Spend reporting.&#x20;
* Integrations - Manage your ZAP POST Integrations&#x20;
* [Settings](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings) - App configuration such as users, roles, and plan management\ <br>
* [Submitting Recipient Data](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/sending-zaps) - How to send Zaps
* [ZAP Credits](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/zap-credits) - Understand ZAP Credits
* [Support](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/support) - Help and chat

For further information and for any commonly asked questions you can see our FAQ [here](/zap-post-web-app/faq)<br>


# Dashboard

The ZAPP 'homepage'

The dashboard is the screen you arrive at once you have logged in to ZAP-POST. From the Dashboard, you can navigate to the rest of the ZAP-POST app.&#x20;

## Dashboard

The dashboard is designed to give you all of the important information within the ZAP APP to keep you up to date with your marketing operations and direct mail performance. \
\
You'll see some top line stats for the last 30 days, you top campaigns, latest submissions, integration statuses and any actions or updates that require your attention. &#x20;

<figure><img src="/files/2b6dSn1r3OWFOtXsfrWf" alt=""><figcaption></figcaption></figure>

## Navigation

Using the icons at the top of the page in the header section, you can navigate to the different areas of the app.

<figure><img src="/files/r6MwSrAlN8hzhbD4uGUI" alt=""><figcaption></figcaption></figure>

Navigate by Page: <br>

1. [Campaigns](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns) - This will take you to the campaigns page, which will list all of your campaigns. You can create a new campaign and you can also access any archived campaigns.&#x20;
2. [Settings](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings) - Here you can manage your account, users, notifications, APIs, Webhooks and billing.
3. [Processing](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/sending-zaps/processing) - Here you can see your submissions, make any necessary changes, download records and more.&#x20;
4. [Insights ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/insights)- View your ROAS performance at account, campaign and submission level.
5. [Integrations ](/zap-integrations/zap-post-integrations)- Manage your ZAP integrations, create data connections, sync data and view logs.
6. Help / User Dropdown - Access user docs, FAQ, Terms and Conditions and log out.


# Campaigns

Campaigns in ZAP-POST allow you to send personalized direct mail to individual customers based on real-time events or actions.

## Campaigns Page

To navigate to the campaigns overview page, click the ‘campaigns’ icon in the header of ZAP-POST.&#x20;

<figure><img src="/files/ZmETkV0xEFQc6Fe2dCM5" alt=""><figcaption></figcaption></figure>

On the campaign overview page, you can&#x20;

* create new campaigns
* manage existing campaigns
* manage archived campaigns
* Send mail

<figure><img src="/files/GQGth1liD6leWsagGoea" alt=""><figcaption></figcaption></figure>

## Creating a Campaign

To create a new campaign click the 'New Campaign' button on the campaigns page

<figure><img src="/files/0oRikFWCfjsX3RDweCVx" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You can also create a new campaign using  the new campaign button on the dashboard.&#x20;

<img src="/files/sf50ph9Om9u2YqSYsPtc" alt="" data-size="original">

{% endhint %}

### **Paper Stock Selection**

The first step of creating a campaign in ZAP\~POST is deciding which paper stock you wish to use since this will dictate the cost of your mailings. \
ZAP\~POST offers a wide range of paper stocks for various use cases.

<figure><img src="/files/pRIUmdFXwCSjanS9D45J" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Should you wish to compare prices across different paper stocks and plans we recommend viewing the [pricing calculator](https://zappost.com/pricing-wizard/)
{% endhint %}

### **Template Selection**

Once, you've select your paper stock the next step is to decide what data you want to use in your campaign. \
All ZAP\~POST campaigns have default fields for recipient address information. Should you wish to customise your campaign for a specific kind of campaign, we offer various template across many business sectors.&#x20;

<figure><img src="/files/fOE0qxRyYqJtIO37KC8e" alt=""><figcaption></figcaption></figure>

Once you're happy with your selected template or to Start from Scratch you can continue to the next step.&#x20;

### Setting up Fields

Once you've select a template (or start from Scratch), the next step is to manage the custom fields.  On this screen, there is a table of all of the mandatory data fields which a campaign must have in order to send out Zaps.&#x20;

If you're happy with the data model defined on your selected template you can simply continue.&#x20;

If you choose to start from scratch, or want to customise your selected template model you can do so now. By using the 'Add new custom field' button at the bottom of this table, you can add new custom fields to one of your campaigns. You can find out more about this in our [custom fields section.](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns#managing-custom-fields) \
\
When you're happy with your fields, click the ‘continue’ button which will appear at the bottom right of the screen.

### **Campaign Name**

The final step is to name your campaign. Once you're happy with the name click the Create Campaign button and you are done.&#x20;

{% hint style="info" %}
The campaign name must be unique to this campaign.&#x20;
{% endhint %}

<figure><img src="/files/O2TApGXbMRrXC3cdvNYF" alt=""><figcaption></figcaption></figure>

## **Managing Custom Fields**

If you wish to customise your campaign further, you can edit the custom fields. These custom fields allow you to choose data specific for your campaigns and customer data to be displayed on your Direct Mail campaigns.

When selecting 'add new custom field', you will be able to create the following:<br>

| Field           | Description                                                                                                                                  |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**        | The name of the field. This will be shown in CSV templates as column headers.                                                                |
| **Description** | This will identify the use of the field to users submitting via CSV. The CSV template will contain the description below each column header. |
| **Mandatory**   | If a value must be included for the field.                                                                                                   |
| **Label**       | This will be used in the design to identify the field so that it can be replaced for submitted data.                                         |

<figure><img src="/files/oqSKwnXrDcX5qJXQEHCd" alt=""><figcaption></figcaption></figure>

Further options on the field creation wizard include the data type. All data types are listed below, including variable fields based on each data type.

| Data Type    | Field                | Description                                         |
| ------------ | -------------------- | --------------------------------------------------- |
| **Number**   | Min Value            | The minimum number allowed                          |
|              | Max Value            | The maximum number allowed                          |
|              | Decimal Places       | The number of decimal places expected               |
|              | Example Value        | An example of a typical value that may be submitted |
| **Text**     | Min Length           | The minimum length the provided text value can be   |
|              | Max Length           | The maximum length the provided text value can be   |
|              | Example Value        | An example of a typical value that may be submitted |
| **Date**     | Date Format          | The format the date must be provided in             |
|              | Example Value        | An example of a typical value that may be submitted |
| **Time**     | Time Format          | The format the time must be provided in             |
|              | Example Value        | An example of a typical value that may be submitted |
| **Datetime** | Date and Time Format | The format the datetime must be provided in         |
|              | Example Value        | An example of a typical value that may be submitted |

<figure><img src="/files/y7c4JQ7o7dLITfBaMKiZ" alt=""><figcaption></figcaption></figure>

The final customisation option when creating a new field for your template is 'Validation Expressions'. This can be used to define a collection of regular expressions (should the field require its own unique validation).

More information on regular expressions can be found here: <https://en.wikipedia.org/wiki/Regular_expression>

<figure><img src="/files/v4j2MGOU7R6x0XknnErH" alt=""><figcaption></figcaption></figure>

When you have finished setting up your field, please click the 'add field' button in the bottom right of the page followed by the 'save changes' button.

## Sample Data

<figure><img src="/files/n7XEmDHRSaXyEC9JgGwz" alt=""><figcaption></figcaption></figure>

Uploading Sample data allows you to use your own custom data sets to proof your designs before sending live mail. This will allow you to confirm you're happy with your artwork. \
This will be available to use later when artwork is being designed and published. \
\
There are a few bits of validation around the Sample Data which are important to note when trying to troubleshoot issues with data uploading via CSV or ingestion via the API.

| Name         | Mandatory Field | Validation                                         |
| ------------ | --------------- | -------------------------------------------------- |
| Customer ID  | Yes             |                                                    |
| Email        | No              |                                                    |
| Salutation   | No              |                                                    |
| Firstname    | Yes             | Up to 35 Characters in combination with Surname    |
| Surname      | Yes             | Up to 35 Characters in combination with First name |
| Company Name | No              | Up to 40 Characters                                |
| Address1     | Yes             | Up to 35 Characters                                |
| Address2     | No              | Up to 35 Characters                                |
| Address3     | No              | Up to 35 Characters                                |
| City         | No              | Up to 35 Characters                                |
| Postcode     | Yes             | Up to 15 Characters                                |
| Country      | Yes             | Only UK Currently                                  |
| Currency     | No              |                                                    |
| Language     | No              |                                                    |

## Campaign Statuses

There are four possible campaign statuses in ZAP-POST. \
These can be seen in the column marked ‘status’ on the table of your campaigns on the campaign management page.&#x20;

| Name                                          | Description                                                                                                                                                                                                                              |
| --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:red;">**Waiting**</mark>   | The campaign requires either a design to be published or data to be uploaded.                                                                                                                                                            |
| <mark style="color:red;">**On Hold**</mark>   | The account has billing issues which need to be resolved before proceeding. Users should get in touch with their ZAP-POST client manager or contact <billing@zappost.com>                                                                |
| <mark style="color:green;">**Active**</mark>  | The campaign has had Zaps sent from it and is ready to send more                                                                                                                                                                         |
| <mark style="color:blue;">**Archived**</mark> | This will move the campaign to the ‘archived campaigns’ area which can be accessed by clicking the link on the campaign management page. This allows users to file away old campaigns, ready to be used again at a later time if needed. |

## Send Data

The Send Data option available on each campaign row allows users to submit data to send new ZAPs. This wizard experience is covered in our [Sending ZAPs section](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/sending-zaps)

<figure><img src="/files/ATI4iHyMxDzrD0hlMeuz" alt=""><figcaption></figcaption></figure>

## Expanded Menu

each campaign has an expanded menu available at the end of the row which exposes further functionality.&#x20;

<figure><img src="/files/WvZbtpZnlqizH2Jcdmnl" alt=""><figcaption></figcaption></figure>

* View Campaign - This will take you to the [Campaign](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns/campaign-details) page&#x20;
* Edit ZAP Design - This will take you to the [ZAP Designer](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/design)
* View Published Designs - This shows a preview of any published artwork&#x20;

<figure><img src="/files/CMBwSWNsKkePxKCuyFmE" alt=""><figcaption></figcaption></figure>

* Edit Campaign - This will allow you to update the campaign name.
* Edit Fields - This will take you to the campaign field wizard which allows you to manage you [custom fields](#managing-custom-fields)&#x20;
* Download CSV Template - This will download a CSV file which is pre-populated with your campaign data model ready for any recipient records to be added to submit to the app
* Archive Campaign - This will archive the campaign, removing it from your campaigns screen allowing you to keep a clear picture of your active campaigns. A campaign can be archived or unarchived at any time.&#x20;


# Campaign Details

This page will show you a full overview a specific ZAP\~POST campaign

## Introduction

<figure><img src="/files/2aVPwAkwQOFr6FMnPYFO" alt=""><figcaption></figcaption></figure>

This page will show you the following details: <br>

* Campaign name
* Campaign Status&#x20;
* Campaign Paper Stock&#x20;
* Campaign ID
* Key dates such as when it started and when it last sent
* Next scheduled send
* Total zaps sent
* Number/percentage of records cleansed returned, and currently processing
* A preview of the current published artwork, if any is published
* The latest Campaign Submissions stats such as status, record count, cleansed count, with links to access each submission

## Available functionality

You can do the following from this page:

<figure><img src="/files/h0TiZKUB4JcX8PXcxY1Q" alt=""><figcaption></figcaption></figure>

* New Submission - This allows you to submit data to send new ZAPs. This wizard experience is covered in our [Sending ZAPs section](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/sending-zaps)
* Edit Campaign - This will allow you to update the campaign name.
* Edit Design - This will take you to the [ZAP Designer](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/design)
* Edit Custom Fields - This will take you to the [custom wizard editor ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns#managing-custom-fields)
* View Published Designs - This shows a preview of any published artwork&#x20;
* Download CSV Template - This will download a CSV file which is pre-populated with your campaign data model ready for any recipient records to be added to submit to the app
* Manage Data Connections - This is covered in our [Integration Documentation](/zap-integrations/zap-post-integrations)
* Archive Campaign - This will archive the campaign, removing it from your campaigns screen allowing you to keep a clear picture of your active campaigns. A campaign can be archived or unarchived at any time.&#x20;

### Design History

The design history will show you a history of all published designs for the campaign with any submissions that were created using the published content. \
\
In order to access the design history simply click the icon on the preview<br>

<figure><img src="/files/BQWRbAqO8lIeuW8YwCnt" alt=""><figcaption></figcaption></figure>

Once selected you'll be taken to the Design History modal. From here you'll see a list of all of your historic publishes with dates and thumbnails as well as a submission count. The current live artwork will be indicated by the LIVE marker on the right.&#x20;

<figure><img src="/files/V4a5dHcxMm5EWA0tdlef" alt=""><figcaption></figcaption></figure>

You can expand the design to see it in more detail. This will show when it was published and who published the artwork.&#x20;

<figure><img src="/files/xHpnv4vOtxVB0Ee21ueN" alt=""><figcaption></figcaption></figure>

You can also see any submissions created in more detail by expanding the arrow. This will show you the submission date, how many records were accepted, how many were rejected, the submission status and the send date.&#x20;

<figure><img src="/files/kqFOqvu5WZ1FVZXKvWPb" alt=""><figcaption></figcaption></figure>

From here you can also click the details icon to be taken directly to the submission.&#x20;


# Design

The design editor allows you to personalise and edit the layout of your Zaps.

## Accessing the Designer

Once a campaign has been created, the next step is to create a design. \
There are various ways to get to the ZAP-POST designer:\
\- By selecting the ‘design’ icon in the ZAP-POST Nav

<figure><img src="/files/AxXdp5IkinSUPO2uDsC0" alt=""><figcaption></figcaption></figure>

\
\- Via the campaigns page

<figure><img src="/files/tfYDjvGwZSQ8CeQMjr17" alt=""><figcaption></figcaption></figure>

\- Via the View Campaign page design preview

<figure><img src="/files/5i8kXTbDk2BBrEjhqSEN" alt=""><figcaption></figcaption></figure>

## ZAP-POST Designer

The ZAP-POST designer is a tool that allows you to easily create direct mail designs for specific mail campaigns. With the design tool, you can add images, text, customisations, and QR codes to your Zap designs. \
You can keep your designs on-brand and within your brand guidelines by uploading your own fonts into ZAP-POST. You can also save designs for later; these will be ready to use again whenever they are needed.

When you load a campaign in the designer, you will see a canvas area which matches the paper stock chosen for that campaign.&#x20;

{% hint style="info" %}
If you need to see what paper stock is configured on your campaign you can download the help pack directly from the designer

![](/files/pxZetyreTsKo4XlKcWpB)
{% endhint %}

<figure><img src="/files/TWoi2IEEaqXovyVLOiGH" alt=""><figcaption></figcaption></figure>

## Printer's Marks

Depending on the paper stock you have chosen for your campaign, there will be a number of different lines shown on your canvas. Simply put, these lines are quality control methods that help to achieve the professional print and finish your designs deserve.

The visibility of these lines can be turned on/off using the view settings submenu.&#x20;

<figure><img src="/files/q1WA2hNKKQPJdo08bReq" alt=""><figcaption></figcaption></figure>

There are 3 key printer's marks shown on the Impact, Mini and Secure paper stocks:

1. **Bleed area** - The **red-shaded bleed area** extends out an extra 3mm from the solid black trim line. All images or colour that print to the edge of your design should be fully extended into this area to avoid the chance of white lines appearing. This will ensure that when trimmed, your design is printed edge to edge. Make sure not to place any important content or artwork elements in this area, as it will get trimmed off.
2. **Trim Line** - The **solid black trim line** shows the finished size of the document. Anything placed outside of this area will be trimmed off.
3. **Safety Line** - We recommend that no text or barcodes are placed outside the **red dashed safety line**, as anything placed outside of this box will risk being cut off.&#x20;

<figure><img src="/files/cpM82Op8fBD77bpvyS6r" alt=""><figcaption></figcaption></figure>

#### Postage and Returns Management Areas

The grey, un-editable boxes shown on the canvas are for the postage and returns management areas. Text and barcode widgets can be placed in these areas but they will become opaque and you'll be presented with a warning. Any images placed in these areas will sit behind a white box outline of the area when printed.

<figure><img src="/files/kq7ZxKje0MZkNpqGta8m" alt=""><figcaption></figcaption></figure>

## Assets

Using the asset bar shown below, you can add a number of different assets to your Zap designs. \
ZAP-POST Assets may include the following media types:

* [Static Images](#static-images)
* [Dynamic Images](https://userguide.zappost.com/zap-post-user-guide/zapp/using-the-zapp/design/dynamic-images)
* [Text](#text)
* [Variable Text](#variables)
* [QR Codes](#qr-codes)
* [Custom Fonts](#fonts)

<figure><img src="/files/lA1KCS8mTcpcOXwYkxv2" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You can use the asset explorer on the top right of the designer screen to select, rename, reorder, and delete assets within a campaign's design.
{% endhint %}

<figure><img src="/files/pl7PnpDsjKlGbon8Yxva" alt=""><figcaption></figcaption></figure>

#### Duplicating Assets

Assets can be duplicated by either using CTRL C and then CTRL V, or by clicking the duplicate asset icon. This is useful when you might want to preserve the formatting of an asset, rather than starting from scratch on a new asset with default formatting.

<figure><img src="/files/8waawcEn6A0IayQgWPHa" alt=""><figcaption></figcaption></figure>

### Generic Asset Controls

These controls exists on all assets regardless of their type.&#x20;

<figure><img src="/files/EaOxDBW5ohlgYHeGsJ6c" alt=""><figcaption></figcaption></figure>

**Arrange** - This will allow you to move the asset up and down layers as well as to the top of bottom layer. \
\
**X Position** - This allows you to define a specific **horizontal** position in mm on the document rather than dragging to place. Upon entry of a value the asset will move to the defined position. \
\
**Y Position** - This allows you to define a specific **vertical** position in mm on the document rather than dragging to place. Upon entry of a value the asset will move to the defined position.&#x20;

**W (width)** - This allows you to define a specific **width** in mm for the asset. Upon entry of a value the asset will resize accordingly.\
\
**H (height)** - This allows you to define a specific **height** in mm for the asset. Upon entry of a value the asset will resize accordingly.\
\
**ROT (Rotation)** - This allows you to define a specific **rotation** value (in rotation degrees). Upon entry of a value the asset will rotate accordingly.

\
**Rotate Controls** - These rotate buttons allow the user to snap rotate 90 degrees clockwise or anticlockwise depending on the selected button.&#x20;

**0 degrees button** - This will snap the item back to 0 rotational degrees.  \
\
**Scale (%)** - This allows you to define a specific **scale** in % for the asset. Upon entry of a value the asset will resize accordingly.\
\
**Plus and Minus controls** - This will resize the asset up or down 10% depending on the selected control

**1:1 button** - This will resize the asset back to its original size

### Other useful controls

#### Help and Keyboard Shortcuts

To view our simple help guide and keyboard shortcuts click the question mark in the bottom right of the design view.

<figure><img src="/files/lrDGUPJu4KmuqGO3LV4O" alt=""><figcaption></figcaption></figure>

#### Pan and Zoom&#x20;

Users can pan and zoom the canvas using the control in the bottom left of the page or by using the keyboard shortcuts available.&#x20;

Select the hand control to enable 'pan mode' then when you're happy with the canvas position, you can turn pan mode back off. \
\
Keyboard Shortcuts:&#x20;

**Ctrl + scroll** to zoom in and out.&#x20;

**Space + mouse drag** to pan the canvas

<figure><img src="/files/m7WrDudn88BeSXLb0pZV" alt=""><figcaption></figcaption></figure>

#### Multi-Select

Users can hold shift when selecting elements to multi select elements on the canvas

These elements can then be moved together or deleted.&#x20;

<figure><img src="/files/osowF8NET0ikpOjDIms1" alt=""><figcaption></figcaption></figure>

#### Dark and Light Mode

Users can swap between light mode and dark in the designer using the control under the username dropdown

{% hint style="info" %}
Light and Dark Mode is available across the entire ZAP APP so the entire app will be styled when this setting is changed however it can be switched at any time from the username dropdown
{% endhint %}

<figure><img src="/files/VcY1U4d4ojIBjEvGKkW5" alt=""><figcaption></figcaption></figure>

### Static Images

Clicking the static image icon will open the static image window.

Using the static image tool, you can click ‘upload’ to add up to 3 files at once. Accepted formats are jpeg, jpg, png, pdf and tiff. Files can be up to 5MB in size, however, tiff files can be up to 50mb.

These uploaded images are added to your static image library where you can access them at any time.

You can delete any unwanted images from your image library by selecting them and then clicking ‘delete’. You can also create folders in your static image library to organise your images.

<figure><img src="/files/n5C8Anj6OUP6TdoayQFD" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fo7mdTKYRcyd2g7y8Tmw" alt=""><figcaption></figcaption></figure>

To add an image into a Zap design, select it in the static image window then select ‘choose’. When an image has been added to the design, you can use the handles on the sides of the image to resize or rotate the image to your preferred size & position.&#x20;

{% hint style="info" %}
**Drag & Drop uploads -** drag and drop one or more images into either your static assets folder, or straight onto your canvas when uploading them.&#x20;
{% endhint %}

### Text

By clicking the text icon, a text box will be added to the centre of a Zap design. \
You can use the handles on the sides of the text box to resize and reposition it.\
&#x20;\
Select the box to view the text controls in the sidebar. There are two controls worth mentioning here: variables and copy fitting.&#x20;

<figure><img src="/files/Bqh64EEPFDNEe8PYSKQu" alt=""><figcaption></figcaption></figure>

#### Variables

This is how you add personalisation to your Zap designs. Select from the dropdown list to choose a personalisation.

When inserted into the design, a placeholder text will appear, this will look similar to ‘<\~D:firstname\~>’. When you upload your recipient data to ZAP-POST, any personalisations will be replaced with the relevant field from your data.

To preview how personalisations will look, you can toggle the preview personalisation to swap out the placeholder example data. By toggling this on you can then cycle through different sets of example data.

<figure><img src="/files/zGpfYzIBTLyGokzydg7o" alt=""><figcaption></figcaption></figure>

#### Date and Time Format

Along with customisation and variables, clients can specify the date and time format that's displayed on their designs.

If the data contains a date or time as a custom field, clients can select from the below.

**Date Formats:**\
Original Formatting\
MM/DD/YYYY - 12/25/2023\
DD/MM/YYYY - 25/12/2023\
Month DD YYYY - December 25 2023\
DD Month YYYY - 25 December 2023\
\
**Time Formats:**\
Original Formatting\
24 Hour - 13:00\
12 Hour - 1:00pm

#### Mailed Date and Mailed Date (Calculated)

<figure><img src="/files/4yZdnTqIIxWc0u6s7ice" alt=""><figcaption></figcaption></figure>

**Mailed Date**: This will be replaced with the date the send is mailed. \
\
**Mailed Date Calculated:** This allows you to calculate a date based on the mailing date. This allows you to warn users of expiring offers. \
\
The options to configure the date are: \
\
**+/-:** Allows you to calculate forward and backwards from the Mailed Date\
**Value:** The number you want to alter the Mailed Date by.\
U**nit of time**: The units of time available to be used to alter the Mailed Date are - Days, Weeks, Months and Years.&#x20;

<figure><img src="/files/LOHmJMdpJtyEcIWjJ3Sb" alt=""><figcaption></figcaption></figure>

\
\
This combination allows us to calculate the date that will be shown on the final ZAP.&#x20;

<figure><img src="/files/Vw1iLSHl02fj1AUUjj1F" alt=""><figcaption></figcaption></figure>

#### Copy Fitting

This is directly related to Variables. If using a personalisation that potentially has different lengths of data (eg. a first name), copy fitting will ensure that the text will be automatically resized to still fit inside your text box. There are two types of copy-fitting:

1. Shrink Copy to fit area - this will decrease the font size to make the text fit inside the text box if it is too long.
2. Grow Copy to fit area - this will increase the font size to make the text as large as it can be within the text box.

'Shrink copy to fit area' is turned on by default, but both of these settings can be toggled on and off using the toggles.

<figure><img src="/files/7uxjUUxcOP6hAlc3VqJJ" alt=""><figcaption></figcaption></figure>

### QR Codes

QR codes can be inserted into any design by clicking on the QR code icon. When added to your design, you have four options to select from, Standard, Phone, Email and Tracked QR.

<figure><img src="/files/PgoRZcxE3zwdFTgAvoC5" alt=""><figcaption></figcaption></figure>

#### Standard QR

There are two options when defining a URL for the QR code. You can either choose a customisation that will use a URL stored within your data, or you can manually enter a URL using the text box field in the QR Code control sidebar.  You can select the barcode colour along with the background colour and set a transparency for the background.

<figure><img src="/files/UWzcvxguckeOiCXLoJ4P" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
A word of warning: QR Codes will only scan when there is enough contrast between them and the background. Make sure that your QR code is sat on a white box or on a light colour background to ensure it will work as intended. A QR code must also be at least 2cmx2cm in size to scan successfully.
{% endhint %}

#### Phone QR

When selecting phone, you can either use a customisation found in your data or enter a fixed number. when this is scanned on a mobile device, that users phone will automatically start a call phone call to the number entered.

#### Email QR

When selecting email, once again, you can use customisations or enter the email address, subject and body text manually. When this is scanned, that user will automatically compile an email using the stating subject and body.

#### Tracked QR

If you select 'Tracked QR' from the drop down, you'll be shown a list of fields to populate, this will then create a UTM tracking URL for a Google Analytics campaign.

**Website URL** - the full website to direct your customers to (e.g. <https://www.zappost.com)\\>
**Campaign ID** - used to identify which adds campaign this referral references. Use **utm\_id** to identify a specific ads campaign.\
**Campaign Source** - use **utm\_source** to identify a search engine, newsletter name, or other source.\
**Campaign Medium** - use **utm\_medium** to identify a medium such as emails or cost-per-click\
**Campaign Name** - used for keyword analysis. Use **utm\_campaign** to identify a specific product promotion or strategic campaign\
**Campaign Term** - used for paid search. Use **utm\_term** to note the keywords for this ad.\
**Campaign Content** - used for A/B testing and content targeted ads. Use **utm\_content** to differentiate ads or links that point to the same URL.

<figure><img src="/files/fDg5nKRtfofmTQf03FGQ" alt=""><figcaption></figcaption></figure>

#### Adding ZAP Insights to QR Codes

QR Code usage can be easily tracked using ZAP-POST. By turning on the 'Add ZAP Insights' toggle switch, you can measure how many scans you receive from your Zap submission.

<figure><img src="/files/NRgRvMMtBAUXkM53Hxas" alt=""><figcaption></figcaption></figure>

When you have turned on ZAP Insights for QR codes, the scans will be recorded and grouped according to the submission the Zap was a part of. You can download a CSV of which recipients have scanned a QR code using the 'QR Code Tracking' download button in the furthest right column of the table on the Zap Processing screen.

<figure><img src="/files/Ws4GVfOULYhjsIFtVZNM" alt=""><figcaption></figcaption></figure>

#### Fonts

With ZAP-POST, you can upload custom fonts for use in your ZAP designs. To do so, you should first select the ‘fonts’ icon from the asset bar to navigate to the font management area. \
\
From here, you can upload fonts in either .ttf or .otf file formats. You can view, edit or remove their existing custom fonts. Any fonts uploaded will be available to use in the text editor tool.

<figure><img src="/files/PVhKoG0xfbkGPsJ5yXpa" alt=""><figcaption></figcaption></figure>

## Background Colour

You can select a background colour for your design. On the right hand side under assets you will see an option called background. There are multiple ways you can choose your colour,\
\
RGB value \
HEX value\
HSV value

<figure><img src="/files/2dzgMY74L24y6FdEYnes" alt=""><figcaption></figcaption></figure>

## Saving and loading designs

There are two reasons you will want to save your designs:

1. To be able to publish it to be the live design for your campaign
2. To use the design again in the future without having to start again from scratch.

Saving your designs is easy. Click ‘file’, then click on ‘save’. If you are saving your design for the first time, a window titled ‘your saved designs’ will launch. You will then need to give your design a name before hitting ‘save’ on the window. If you have already saved your design previously, then clicking save will overwrite the existing save with the design shown in the design area. If you want to change the name of the design or create a new copy, click ‘file’ and then click ‘save as’. Give your design a new name by filling in the bottom text box in the window, then click 'save'.

\
To open a previously saved design, click ‘file’ and then click ‘open’. This will launch the window of your saved designs where you can click on the design you wish to load into the panel. Once you have clicked the thumbnail of the design you want to load, click ‘choose’ to load it into the panel.&#x20;

To make finding your saved designs easier, you can also create folders within the ‘your saved designs’ explorer.

Saved designs are specific to either the front or back of your Zaps, but can be used across multiple campaign types. If a saved design uses a variable that is not available in a different campaign type,  you will be warned of this when you load the saved design into the new campaign. You will then need to change the variable before you can proceed to save or publish the design.

{% hint style="info" %}
If you are trying to load a saved design and are shown the warning notification, 'Some assets could not be loaded' then it is likely that the images used in the design have been deleted from your Static Image library. To fix this, either re-upload the asset into your library, or choose a different image to use.

<img src="/files/I5Iwk03ORyMtNhZRC9nn" alt="" data-size="original"> - warning notification in Zap Designer.
{% endhint %}

#### AutoSave

The Auto Save feature ensures that your work is continuously saved after every change you make, providing a safety net against unexpected disruptions or crashes.

You have the flexibility to toggle the Auto Save feature on or off, based on your preference and workflow. To turn autosave on, click the toggle next to the save icon in the designer.

<figure><img src="/files/plQcYHFe9tOCItCDH0IE" alt=""><figcaption></figcaption></figure>

Autosave will be turned on by default when you create a campaign. If you have not yet saved a design for that campaign, then autosave will create a file for you. This file can be found in your saved designs folder in the Zap Designer accessed from the file dropdown menu.

## Proofing

Before you start sending out your campaign, you may wish to generate a proof to check that your design works how you intend it to. The proofing process will create a pdf using either your data or a sample set of data, which you can then download to your computer to check if it is up to standard.&#x20;

### How to proof your designs

To begin the proofing process, click the proofing icon. This will take you to the first step of the proofing wizard. You can leave this wizard at any time by clicking the ‘back to content portal’ link at the top left.&#x20;

<figure><img src="/files/E6caX9BG2vpenwF1nSgv" alt=""><figcaption></figcaption></figure>

The first step of the wizard requires you to select the saved design you wish to use for the front page of the proofing process. &#x20;

<figure><img src="/files/qHw5H1YIwm4G7ZmGKtDA" alt=""><figcaption></figcaption></figure>

You will do this for the front of your Zap, and then repeat the process on the next step for the back of your Zap.

\
\
If you need to go back and change your selected designs, you can do this by clicking ‘back’ in the bottom left corner of the screen.&#x20;

<figure><img src="/files/Kg7PYfewl8b6jsHY0FL0" alt=""><figcaption></figcaption></figure>

With the designs for the proof chosen, you will now be presented with two options:&#x20;

1. Use example data
2. Use your own data

If you choose to use the example data to generate your proof, any variable and address info in your designs will be completed using a predefined data set. This enables you to get a proof generated even if you don’t have any data yet ready to try your design with. The predefined data set consists of 20 example customers resulting in a pdf of 20 Zaps (front & back).

If you prefer utilising your own data to create your proof, simply upload a CSV file for your campaign through our user-friendly proofing wizard. Please note that the maximum limit for records on the uploaded CSV is 50. Once uploaded, we'll generate up to 50 Zaps for you, incorporating your design and data.&#x20;

<figure><img src="/files/KXYqNWtjClb0X7VA0Dzd" alt=""><figcaption></figcaption></figure>

The final step of the wizard is to click ‘generate proof’ and then wait for your proof to be made.

<figure><img src="/files/eZVL0s9eEUVcRX5mcazT" alt=""><figcaption></figcaption></figure>

&#x20;Once it is ready, a download link will appear which you can click to download your Zap proof file and review the content.&#x20;

<figure><img src="/files/0CEUy3XuOV8greCgc9ha" alt=""><figcaption></figcaption></figure>

## Publishing

In order to start uploading data to your campaign, you must first publish one of your saved designs.&#x20;

{% hint style="warning" %}
The content must be published before the data!\
This is because we have to maintain a copy of the content as it was at the point the data was submitted. This allows the clients free reign to update their content whenever they want without disrupting the submissions they have already created with the intention of using the previous artwork. \
This has caused some confusion previously so it's an important note to be aware of.&#x20;
{% endhint %}

### How to Publish your designs

To publish a design for a campaign, make sure the campaign you wish to publish for is selected within the designer.  With the campaign selected, click the ‘publish’ button to show the publishing options:

1. **Publish** - clicking this will launch the publish wizard
2. **View published design** - clicking this will launch a pop up showing you what the current published design is for this campaign.
3. **Share published artwork** - clicking this will copy a link to your clipboard. Anyone who clicks this link will have pdf of the published design for this campaign downloaded to their machine.

<figure><img src="/files/ykgmwadXKZGDASjBkjKr" alt=""><figcaption></figcaption></figure>

**Publishing Wizard**

On the first screen of the wizard, choose the saved design you wish to publish for the front of your Zap campaign then click ‘next step’. On the following screen, choose the saved design you wish to publish for the back of your Zap campaign. With both sides of your Zap chosen, you will now need to create a proof which you will be required to sign off on in order to publish.&#x20;

<figure><img src="/files/evmeKIhSyx8yWIdYmd81" alt=""><figcaption></figcaption></figure>

The proof generation process is exactly the same as the [proofing process. ](#proofing)

With the saved designs for the campaign chosen, you will now be presented with two options to generate the proof:&#x20;

1. Use example data
2. Use your own data

If you choose to use the example data to generate your proof, any variable and address info in your designs will be completed using a predefined data set. This enables you to get a proof generated even if you don’t have any data yet ready to try your design with. The predefined data set consists of 20 example customers resulting in a pdf of 20 Zaps (front & back).

If you want to use your own data to generate your proof, you can do this by uploading a CSV for your campaign to the proofing wizard. We will generate up to 50 Zaps for you using your design and data. If you upload a CSV with more than 50 records, then we will take the first 50 records from the CSV and use those to create your proof.

\
The next step of the wizard is to click ‘generate proof’ and then wait for your proof to be made. Once it is ready, a download link will appear which you can click to download your Zap proof file.&#x20;

<figure><img src="/files/FvrnWKnP20zaTRiNf8Ac" alt=""><figcaption></figcaption></figure>

After you have downloaded the proof file and checked it is all ok, you will be able to click ‘next’ and proceed to the final sign-off and publish page.

<figure><img src="/files/s7soFitL8ywWLpXwI8od" alt=""><figcaption></figcaption></figure>

&#x20;Here, you will see a summary of what you are publishing: the materials, the data source, the campaign you are publishing for, and the saved designs you are using. If you are happy with all of this, click ‘sign & publish’ to publish the designs for the campaign. You should now be taken back to the designer where you will see a notification to let you know your design has been published.

<figure><img src="/files/SebI33kryEFBZKqY2cC7" alt=""><figcaption></figcaption></figure>

\
After publishing your designs, you are now ready to upload data to your campaign and start sending Zaps.

## Paper Stock Design File Download

You may download Adobe InDesign files for each of the Paper stock options. These are available in the designer and on the [Useful Resources Page](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/design/useful-design-resources) in this documentation.&#x20;

The InDesign files are designed to provide you with the creative guidelines to produce imagery and content for your Zap campaign. You can use these file to create designs in InDesign and export them into the Zap App or you can design your Zap directly inside the Zap App.

Important things to remember:

Add any variable text, or dynamic content like variable images or QR codes directly in the ZAP App, as opposed to saved into the images you export out of InDesign.

Best practices:

* 300dpi/ppi print resolution
* Images in CMYK colour space (not RGB) as .jpgs with no compression
* Ensure images extend to the red bleed line to allow for trimming.
* Keep important text or detail inside the safe zone, denoted by the red dashed line
* When exporting jpg images from our templates, use settings as shown: (Note - ‘Use Document Bleed Settings is ticked on)

<figure><img src="/files/Uq5f7nrtbkomQhgcfJt3" alt="" width="346"><figcaption><p>InDesign Export Settings</p></figcaption></figure>


# Dynamic Images

Dynamic images in ZAP-POST allow you to further personalise your direct mail by having unique images on each ZAP.

To get started, follow these steps:

### Campaign Creation

In order to include dynamic images on a design, you'll need to create a new campaign and add a custom field to your template, for more help on this see [our campaigns guide](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns).

When adding a custom field, you need to ensure the below fields are completed, for more help on creating custom fields, see [our custom fields guide](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/campaigns#custom-field-setup).

<table><thead><tr><th>Field</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Name</td><td>The name of the field. This will be shown in CSV templates as column headers.</td><td></td></tr><tr><td>Description</td><td>This will identify the use of the field to users submitting via CSV. The CSV template will contain the description below each column header.</td><td></td></tr><tr><td>Mandatory</td><td>If a value must be included for the field.</td><td></td></tr><tr><td>Label</td><td>This will be used in the design to identify the field so that it can be replaced for submitted data.</td><td></td></tr><tr><td>Data Type</td><td>This must be set to URL</td><td></td></tr></tbody></table>

<figure><img src="/files/pUeZ2Xrez1bPSHw0FuqX" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1mkWYCVAnbrqbz9TJQrv" alt=""><figcaption></figcaption></figure>

### Designer

Adding a dynamic image to your design couldn't be easier, choose 'Dynamic Image' from the widget toolbar.

<figure><img src="/files/DsMLGZO2fs85jTQk64Wb" alt=""><figcaption></figcaption></figure>

By selecting 'Dynamic Image' a placeholder will automatically be added to the canvas. Once on the canvas you can treat it as any other image by moving and resizing as desired.

When clicking on the placeholder, you'll see the management area. Here you need to click on the 'Custom Field' drop down and select the field you would like the image to be mapped to.

{% hint style="info" %}
The custom field name will be the same name you gave the field during the campaign creation.&#x20;
{% endhint %}

<figure><img src="/files/JKQn0lPu1bCXg28VpIrm" alt=""><figcaption></figcaption></figure>

Using the management area, you can adjust the exact width and height of the placeholder.

{% hint style="warning" %}
When adding a dynamic image, auto save will temporarily be disabled until a custom field has been selected.
{% endhint %}

### Proofing

You can proof and publish your designs if you have included a dynamic image. When going through the proofing or publishing journey, you have the option to create a proof with your own data or existing sample data, for more help on proofing, follow [our proofing guide](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/design#proofing).


# Useful Design Resources

## Paper Stock Details

### UK

These paper stocks are available for any direct mail campaigns targeting the UK and Ireland.<br>

**A5 Postcard: 210 x 148mm**

* 350 gsm
* Coated
* FSC Paper

<figure><img src="/files/aEgpA0mjiZIMatvHtwK7" alt="" width="279"><figcaption></figcaption></figure>

{% file src="/files/ikWJpnRGInPeGv4IMWGV" %}

{% file src="/files/CFsxhXIMKP0T86VIsImO" %}

**SECURE Letter: 210 x 297mm**

* 100 gsm
* Uncoated
* FSC Paper

<figure><img src="/files/13j37zteKyTgoFpiycax" alt="" width="179"><figcaption></figcaption></figure>

{% file src="/files/XHqjwL4ERopYfndWTLY3" %}

{% file src="/files/j7Ileay423AmHPDWhd4b" %}

\
**'Handwritten' Postcard in Envelope: 210mm x 148mm -**&#x20;

* 300 gsm
* Uncoated
* FSC Paper
* Mailed in a plain, white envelope with handwritten-style address and green stamp, no postage indicia

<figure><img src="/files/90eyD81yR4zfkcqklD8c" alt="" width="180"><figcaption></figcaption></figure>

{% file src="/files/KAfhns4lLMfj9m1jx3BL" %}

{% file src="/files/8KDDzKFzosI2iJZlkSFs" %}

\
**A5 One Piece Mailer: 210mm x 336mm**

* 250gsm
* Coated
* FSC Paper

<figure><img src="/files/fxUpDeSbqzBjGgVpkUIB" alt="" width="300"><figcaption></figcaption></figure>

{% file src="/files/ApnecJ72N34LZqdb6xcS" %}

{% file src="/files/OUipPF3BFo1xMxxgADFi" %}

\
**Impact Postcard: 240 x 155mm**

* 350 gsm
* Coated
* FSC Paper

<figure><img src="/files/VCtmhmA2BfoyArMWoRlM" alt="" width="279"><figcaption></figcaption></figure>

{% file src="/files/8F4SjY9Xnbz7PuC4ESpl" %}

{% file src="/files/XHthTCduLdccpBQbXmjA" %}

\
**Postcard in Envelope: 210mm x 148mm**

* 350 gsm
* Coated
* FSC Paper
* Mailed in a plain, white envelope with address printed on.

<figure><img src="/files/GSasA6xwS6hdpmYrlBRq" alt="" width="180"><figcaption></figcaption></figure>

{% file src="/files/tFSbJg1BKNHZI7iNF3pF" %}

{% file src="/files/WZTOYS71V3SzjvUC3dud" %}

\
**A6 Postcard: 148mm x 105mm**

* 350 gsm
* Coated
* FSC Paper

<figure><img src="/files/QEp9EBXJkpx9es3G6hTM" alt="" width="279"><figcaption></figcaption></figure>

{% file src="/files/aBYXWhWVcRx3xVOo4Urh" %}

{% file src="/files/laFGUltP0mmNUqoIFYwq" %}

### United States

These paper stocks are available for any direct mail campaigns targeting the United States

\
**ZAP US Impact Postcard (6" x 8.5")**

* 350 gsm
* Coated

<figure><img src="/files/0hrzLQMK86ZOQNMPN87T" alt="" width="315"><figcaption></figcaption></figure>

{% file src="/files/cK5OroYVORXy0aCY6aTR" %}

{% file src="/files/WHxWRxVXl5DrgLQpMYXX" %}

\
**ZAP US Standard Postcard (4.25" x 6")**

* 350 gsm
* Coated

<figure><img src="/files/Ky3ymjUo54uyChDArUae" alt=""><figcaption></figcaption></figure>

{% file src="/files/LbawwtLeBztF2XOnPgNl" %}

{% file src="/files/9E186obt3UFFt3m15Dz8" %}

\
**US Occasion Card (6.75" x 10" flat, 4.99" × 6.75")**

* 350 gsm
* Coated
* folded & mailed in a plain, white envelope with address printed on

<figure><img src="/files/t20rp5V3SswBWJE72FHy" alt="" width="180"><figcaption></figcaption></figure>

{% file src="/files/BB84fR8M0TEDM0EY87ZE" %}

{% file src="/files/sW1S7KU1VsXTeTGZjfnI" %}

\
**ZAP US Secure Letter**

* 100 gsm
* Uncoated

<figure><img src="/files/ZPkU2V6Vp2WbQZ0KydkN" alt="" width="179"><figcaption></figcaption></figure>

{% file src="/files/bPEBCk7zIIyjiEmUQs5r" %}

{% file src="/files/jzhTnaBueBwt2FdaRU73" %}


# Sending Zaps

This section of the user guide will walk you through uploading data into the ZAP APPP in order to get your Direct Mail sent out.

At this point your campaign should be set up, the design created and published, and ready for data upload.

## Uploading Data

There are multiple ways to being the journey to send data in the ZAP APP. Users can:&#x20;

* Select Send Postcards on the Campaign Page<br>

  <figure><img src="/files/zeIFlAspNCkZQclj4zpc" alt=""><figcaption></figcaption></figure>
* Select Send Data on the Campaigns Page<br>

  <figure><img src="/files/glwoumDm4eVTXmjhYbsc" alt=""><figcaption></figcaption></figure>

Each of these options will take you to the Submission Wizard. This will guide you through the process of submitting your ZAPs.&#x20;

{% hint style="info" %}
You can also submit data directly from the integrations page this is covered in the [integrations documentation](/zap-integrations/zap-post-integrations)
{% endhint %}

## Submission Wizard

### Step 1 - Selecting your data source

The first step of sending mail is to tell us where the data for the campaign is going to come from.&#x20;

<figure><img src="/files/uUET7Z03oZWmivRumFbs" alt=""><figcaption></figcaption></figure>

If you wish to upload via csv select the option, click continue and follow the [csv steps](#step-2-csv-upload-a-csv-file)

If you wish to upload vis a connected integration select the integration you wish to use, click continue and follow the [integration steps](#uploading-data-using-an-integration)

If you need to connect a your first, or a new integration you can select the option to set up a new integration this is explained per integration in our [integration documentation](/zap-integrations/zap-post-integrations)

<figure><img src="/files/L88x7lXBT4WeObQz3Qhx" alt=""><figcaption></figcaption></figure>

### Step 2 (CSV) - Select your send Date

The next Step is to Select a Send Date. This will be the date your mail is posted.&#x20;

<figure><img src="/files/D04ONvDA9q3xW4NNNTW8" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ddpBNdvF1NtA6VBD3ODQ" alt=""><figcaption></figcaption></figure>

### Step 3a (CSV) - File Upload

This is the part where your file is uploaded, this will then be used to confirm your mapping and complete the data validation.

{% hint style="info" %}
There are several validation steps your data will go through before it is posted, this is the first set of validation.&#x20;
{% endhint %}

<figure><img src="/files/zZo5cuOgv5H7P195qz7Z" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Any blank rows in your CSV will automatically be removed upon upload.

We only allow certain characters into the name and address fields. We will attempt to clean up data that does not meet the character expectations. Accented characters will be replaced by non-accented equivalents and certain UTF-8 representations of MS ANSI characters will be replaced by equivalents. All other characters will be stripped before ingestion into our system.
{% endhint %}

### Step 3b (CSV) Mapping -&#x20;

When a file is uploaded you will be taken to the mapping screen. When we validate the file we will attempt to match your column names to the field labels. If we find a match we will automatically select that option for you. If we cannot find a matching column, or if you want to change any of the values, each column is available to select in the dropdown.

<figure><img src="/files/UUtKvKcLuCrhAAwy0JQP" alt=""><figcaption></figcaption></figure>

You will not be able to confirm your changes until, as a minimum, all mandatory fields are mapped.

<figure><img src="/files/g43I3YriV8AL2DXvqF5D" alt=""><figcaption></figcaption></figure>

### Step 3c (CSV) - CSV Summary

Upon clicking confirm, the ZAP APP will continue validation, checking missing mandatory data and any validation requirements.&#x20;

<figure><img src="/files/JeGcDoLYKYPoW5YZWK03" alt=""><figcaption></figcaption></figure>

You will then be presented with a summary that will show:&#x20;

* How many records were found in the csv
* How many fields were mapped for the submission
* If a file with invalid records is uploaded the user will be shown how many records are invalid and will have an option to download a file explaining why each record failed validation.
* If the submission contains any records that pass validation, then the user will see the total there too

<figure><img src="/files/qmWKly66vSjjLmY7lxxm" alt=""><figcaption></figcaption></figure>

### Step 4 (CSV) - Review and Confirm

The final step of the submission process is to review the CSV data provided and confirm you're happy to send the mail to your intended recipients. \
Should you have a promotional code to use or a Purchase Order Number you wish to use you will be afforded the opportunity to provided them at this stage.&#x20;

<figure><img src="/files/KNiiwOT2cSHmKEvCCn8N" alt=""><figcaption></figcaption></figure>

The summary should contain the following information:&#x20;

* Number of ZAPs to send
* The Campaign that's being used
* The Date of the send and estimated arrival
* Credit allocation usage (If you're unsure about credits you can visit our [FAQ](https://zappost.com/faq/))

If you're happy with all of the information you can download your invoice and submit your data. \
From there it will go through our internal data processes. These are outlined on [our website academy](https://zappost.com/academy/lessons/recipient-data-cleansing/)

### Step 2 (Integration) - Selecting your customer segment

Various integrations are available to connect your data directly with ZAP-POST, these include:

* Klaviyo
* Hubspot
* DotDigital
* Braze
* Ometria

For detailed information on our integrations, see our [Integration Documentation](https://integrations.zappost.com/) for your specific integration steps.&#x20;

For this example we're using a Klaviyo connection. Once selected all of the Klaviyo customer segments are presented for selection. \ <br>

<figure><img src="/files/Xhatv2xPLM6FTSNxC20f" alt=""><figcaption></figcaption></figure>

### Step 2a (Integration) - Mapping

Once you've selected your segment(s) you'll be given the opportunity to map the necessary fields. We will populate any standard fields that we can for you however some manual mapping may be necessary.&#x20;

{% hint style="info" %}
For Static segments (sometimes called lists), your data connection will be a one off submission. Any time you wish to use this list again you can select the sync option in your integration and we'll create another submission. \
\
For Dynamic Segments we will create a data connection that polls every 12 hours for any new recipients that have been added and create daily submissions on your behalf. These can be paused or updated at any time. \
\
For more information view your [integration specific documentation ](/zap-integrations/zap-post-integrations)
{% endhint %}

<figure><img src="/files/P9ZTYr5r1BpLNybwllxu" alt=""><figcaption></figcaption></figure>

Once you're happy with your mapping you can confirm the mapping.&#x20;

Should you wish to add more than one data connection for the campaign you can do so now by selecting another segment to map, however if you're happy you can select continue<br>

<figure><img src="/files/9RGSmundQTfg4PxaCrVx" alt=""><figcaption></figcaption></figure>

### Step 3 (Integration) - Review and Confirm

The final step of the submission process is to review the configuration and confirm you're happy to send the mail to your intended recipients.&#x20;

<figure><img src="/files/6NtXplPHAdf60W145Eo2" alt=""><figcaption></figcaption></figure>

The summary should contain the following information:&#x20;

* The integration platform
* The Campaign that's being used
* How many data connections were configured
* Data Connection type - One off or Ongoing
* Credit allocation usage (If you're unsure about credits you can visit our [FAQ](https://zappost.com/faq/))

If you're happy with all of the information you can confirm your data connections and we'll poll them for your submission data. \
From there it will go through our internal data processes. These are outlined on [our website academy](https://zappost.com/academy/lessons/recipient-data-cleansing/)

### Dealing with Records that failed validation

If any of your records are rejected from the submission process you can download the invalid records file and understand what was wrong. <br>

<figure><img src="/files/Ygr42W4aBDiT3rcXChwU" alt=""><figcaption><p>Example of Failed Records</p></figcaption></figure>

After you have corrected or removed any failed records, you can upload the file again from the campaigns page.

## Submitting Data via the API&#x20;

Should you wish to use the ZAP POST API you can configure your API Consumers and submit data as you wish. \
To manage your API consumers visit the [API Consumers section](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/api-consumers)

To understand more about our API view the [API document on submissions](/zap-api/api-endpoints/submissions)


# Processing

The Processing Overview allows you to see Zaps submitted; Zaps sent and Zap campaigns yet to be sent.

## ZAP Processing page

To navigate to the ZAP Processing page, click the ‘processing’ icon in the header of ZAP-POST.&#x20;

<figure><img src="/files/lNNyWnmyFp45VcsRxGvk" alt=""><figcaption></figcaption></figure>

From the ZAP processing page shows your submissions in the ZAP APP. It will show important information relating to each submission and complete key actions such as exporting records that have scanned QR codes on your mailed ZAPs.

Uses can filter submissions by ID, Status and Paper Stock.&#x20;

<figure><img src="/files/BYJEP3vdCJrThRqLZ0Qf" alt=""><figcaption></figcaption></figure>

The page will show the following for each submission:

* **Date Submitted** - This is the date the original submission was uploaded to the campaign
* **Submission ID** - A unique submission ID (You can copy the ID to use when filtering reporting UIs or for  use with ZAP-API)
* **A link to our** [**ROAS Reporting**](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/insights)
* **Count of Records** - The number of records on initial submission, prior to any data cleansing results.
* **Paper Stock** - The paper being used for the submission
* **Campaign Name** - The name of the campaign the data has been submitted against
* **View/Edit Design** - You can use this to amend which design a submission uses
* **Frequency Rejected** - Details of any records that have been rejected due to the accounts frequency settings
* **Rejected Records** - Details of all records that fail the PAF and Cleanse process, dynamic image collection, address lookup or another validation process.&#x20;
* **Accepted Data** - The number of accepted records following the PAF and Cleanse process
* **Scheduled**  - The date Zaps are due to send
* **Status** - The status of the submission
* Credits - The number of credits refunded due to rejected records<br>

### Expanded options&#x20;

For each submission in the table there is an expanded menu which offers the following functionality:&#x20;

<figure><img src="/files/t4RrwHlbQ81Sj1nPYWsm" alt=""><figcaption></figcaption></figure>

* View Submission
* View / edit design
* Opens ROAS Report
* Download Original Records - Download the original submission data
* Download any Frequency Rejected records - Download any records that are rejected due to your send frequency settings.&#x20;
* Download any Rejected records - Download any records that were rejected due to a cleanse result, PAF result, dynamic image issue, validation issue or address lookup attempt.&#x20;
* Download the final accepted records after any data corrections have occurred - Download the records that made it through the validation processes to be mailed.&#x20;
* Download any Returned ZAP records - Download any records that were undeliverable
* Download QR code scans report - Download any records that have scanned QR codes on your ZAP.&#x20;
* Download the submission invoice - This may not be available if you have grouped invoicing enabled on your account.&#x20;

## View or Edit Design

If you've already submitted data and realised you need to change your design. You can make changes to your design, save and publish your changes and select the new design from this screen.

Click on the View/Edit Design icon and select 'Change Design'

<figure><img src="/files/JBdI2ZVVe6Z2kJwxI4On" alt=""><figcaption></figcaption></figure>

You'll then be prompted to select a new front panel design

<figure><img src="/files/tbPtfGqGV8Fw9xJAl8UQ" alt=""><figcaption></figcaption></figure>

You'll then be prompted to select a new back panel design

<figure><img src="/files/H1kcsARh7hJMumbgXQuk" alt=""><figcaption></figcaption></figure>

Once you've selected your new design, you'll be able to specify which submission(s) you would like to update.

<figure><img src="/files/NMXjV1A1O1wIAsgRZKhJ" alt=""><figcaption></figcaption></figure>

Once you've selected which submission is updated, click 'Save Changes'


# Data Cleansing

Industry standard data cleansing processes

Data cleansing is the process of checking the accuracy of records using the Postcode Address File as well as a database of Deceased or Gone Away recipients. Data filtering, PAF check, and data cleansing are all included as part of the ZAP-POST process.

As part of the data cleansing process, we provide all clients with a 'Cleanse Report' at the end of each campaign. This report will highlight any records from the original submission that failed a PAF, deceased, or gone away check.


# Address Processing

As part of address processing, ZAP-POST takes the records you've submitted  and uploads them to the Postcode Address File aka PAF.

The UK Postcode Address File (PAF) is a database that contains all known 'delivery points' and postcodes in the United Kingdom. The 'delivery points' held on the PAF are routing instructions used by Royal Mail to sort and deliver mail quickly and accurately.

During this process, we check your submission records against PAF. Any discrepancies from the submission are then amended in the PAF - this file is owned and maintained by Royal Mail.


# Deceased and Gone Away

Deceased and gone away checks are included as part of ZAP-POST's data cleansing process. These checks are performed against a list of 3rd party services/agencies.

## Deceased services/agencies

The Bereavement Register\
MPS (Mailing Preference Service)\
Mortascreen

## Gone Away services/agencies

GAS (Goneaway Suppression File)\
Information Works Goneaway\
NCOA Suppress (National Change of Address)


# Insights

Track the performance your Zap campaigns and gain valuable insights.

## Accessing Insights

Once your first submission has been created, the next step track how well it performs. \
To access the Insights area of the Zap App, select the ‘insights’ icon in the ZAP-POST header and then Return on Advertising Spend.&#x20;

<figure><img src="/files/jm9SqdOTNZLtpCM24EwZ" alt=""><figcaption></figcaption></figure>

## ROAS Reporting

ZAP\~POST ROAS Reporting ensure every campaign is automatically matched against attributed conversions, giving you a clear, real-time return on ad spend figure you can act on.&#x20;

<figure><img src="/files/PJRdp5gX0XrIewtCpKpr" alt=""><figcaption></figcaption></figure>

Reporting is available at the account, campaign and submission level. All reports can be filtered by date and Match back attribution.&#x20;

Match back options

| Match back Method | Description                                                                                                                                                                           |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| All               | This will match any orders that pass any of the match back methods.                                                                                                                   |
| Customer          | This will only attribute an order if a customer specifically targeted in a send made a purchase within 42 days of the campaign land date (This is a default value and can be changed) |
| Address           | This will attribute an order that is placed from a postcode that was targeted as part of your send.                                                                                   |

{% hint style="info" %}
If you want to change your ROAS attribute window, you can speak with your account manager and they can handle this for you.
{% endhint %}

All reports can also be exported to PDF for use outside of the ZAP APP.&#x20;

<figure><img src="/files/Jw8r9x4Jk6SXGIQJGpdF" alt=""><figcaption></figcaption></figure>


# ZAP Credits

ZAP Credits and their role within the ZAPP

## What are ZAP Credits?

ZAP Credits are applied to your account as a result of Data Cleansing.  Data Cleansing is the process of validating the mailing address and that a named individual still resides at the address, and is not deceased.

## Credit Refunds

ZAP-POST members with a monthly or annual plan are issued with Zap credits after each submission of recipient data has been completed.  PAYG users do not qualify for Zap Credits. Credits are given if a ZAP is not sent following the [Data Cleansing process](https://zappost.com/academy/lessons/recipient-data-cleansing/).\
\
The credit system is a simple ratio, based on the count of records that are rejected, per the table below.

<figure><img src="/files/BSoEZRiBvShQmwn1uO66" alt=""><figcaption></figcaption></figure>

There is more information on this topic in the [ZAP-POST Academy](https://zappost.com/academy/lessons/zap-credits-direct-mail-address-validation-and-data-cleansing-explained/).

ZAP credits are associated with your account rather than your plan. They will also only roll over to the next billing period - after that, they are lost.


# Settings

The Settings page allows you to amend or edit various options within your account.

To navigate to the Settings page, click on the settings icon in the ZAP-APP navigation bar.

<figure><img src="/files/8Qr2qcQd2b3AeirAwwIm" alt=""><figcaption></figcaption></figure>

Once on the settings page, you have access to amend or view the below.

![](/files/yGa83kHg3z5AY97pQ1mN)\ <br>

* [**User Management**](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/user-management) - Manage users and their roles / permissions associated with your  ZAP account.&#x20;
* [**ZAP Settings** ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/zap-settings)- Manage your GDPR cleanse frequency, Dictate how often you allow people to receive ZAPs and configure your preferred ROAS settings.&#x20;
* [**Account** **Details**](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/account-details) - Manage your company details such as address, contact details and logo
* [**Notifications** ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/notifications)**-** Manager your ZAP Email notification preferences
* [**Plan** ](/zap-integrations/zap-post-integrations)- Manage your ZAP Account plan, view your credit balance and consume any promotional codes you may have
* [**API Consumers**](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/api-consumers) - Manage your API Keys for the ZAP API
* [**Zap History**](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/zap-history) **-** View a breakdown of your send history and costs
* [**Webhooks** ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/webhooks)**-** Generate, view and manage your webhooks
* [**Billing** ](/zap-post-web-app/zap-post-user-guide/zap-app/using-the-zapp/settings/billing)- Search for and download invoices associated with your Zap account


# User Management

Add and manager users associated with the ZAP account

User management (found under 'Settings') is where you can manage your users and their roles. User roles will dictate the functionality available to a user. \
\
You can also enable multi-factor authentication (MFA) for your account which will require all users to configure MFA access for the ZAP APP. \
This screen also allows you to see your total number of current users, a breakdown of user roles, and a table outlining each user, email, role, and status.

<figure><img src="/files/kjWCnofe8MsdJBEqMLDw" alt=""><figcaption></figcaption></figure>

## Adding a new user

To add a new user select the 'Invite user' button. This will bring out the user creation form.\
Complete the form and select the roles you want the user to have. \
Once you're happy with the details click 'Create User'. The invited user will then receive an email inviting them to join your account. \
![](/files/gHtKmEckCgM1o2o9KNWz)

{% hint style="info" %}
A single user can be invited to multiple ZAP\~POST account. Once a user is on more than one account they will have a dropdown to swap between accounts.&#x20;
{% endhint %}

### Expired Invite

When inviting a new user, the user will then have 48 hours to accept their invite before it expires. \
Should the user lose the email or the link expire another invite can be send using the 'Resent Invite' button on invited users.&#x20;

<figure><img src="/files/69TzddOKHTuYxWlNQsfP" alt=""><figcaption></figcaption></figure>

### Roles

<table><thead><tr><th>Role</th><th>Functionality</th><th data-hidden></th></tr></thead><tbody><tr><td>Admin</td><td>All app functionality</td><td></td></tr><tr><td>Billing</td><td>Can Download Invoices.<br>Has access to billing pages such as Settings > ZAP History and Settings > Billing.</td><td></td></tr><tr><td>Data</td><td>Can submit data to the ZAP APP and configure data connections. </td><td></td></tr><tr><td>Reporting</td><td>Can access ZAP POST Insights and Reporting</td><td></td></tr><tr><td>Design Publisher</td><td>Can Publish ZAP POST Designs to any campaigns</td><td></td></tr><tr><td>Design Editor</td><td>Can edit ZAP POST Designs on any campaigns</td><td></td></tr></tbody></table>

## Editing a user

When editing a user you can update their name or roles\
Make your required changes, then click 'Save Changes'.&#x20;

<figure><img src="/files/gsJpbkeV0p2EWgAO8zCD" alt=""><figcaption></figcaption></figure>


# ZAP Settings

ZAP settings is a simple page containing some key settings for your ZAP Account. \
\
Here you can configure your ROAS reporting settings as well as how often your recipients are allowed to receive ZAPs and how long your data should be stored for.&#x20;

<figure><img src="/files/m9nuaKw3adN0VhtnVeAR" alt=""><figcaption></figcaption></figure>

## ROAS Settings

Return on Ad Spend reporting is enabled by connecting one of our integration platforms that includes sales data. Should you have ROAS enabled and wish to change any settings you can do so here:&#x20;

### Default Match Back Method

There are 3 match back options in ZAP\~POST when attributing a sale to a ZAP Campaign. \
\
**Customer** - Order received for customer with the same email or customer ID as a ZAP recipient who received mail in the last 42 days. \
\
**Address** - Order received from a customer at a postcode targeted by a ZAP Campaign in the last 42 days.\
\
**Any** - Order matched by by customer or address will show here. \
\
Be sure to save your changes.&#x20;

### Include VAT?&#x20;

By default ROAS reporting will show VAT free values. Should you wish to include VAT in your reporting figures, then enable this setting.&#x20;

Be sure to save your changes.&#x20;

## Operational Settings

### Recipient Send Limiter

This setting will allow you limit how frequently you want to send to a single recipient. When switched on you will be asked to provide a number of days, weeks or months. This figure will then be checked against everyone you attempt to mail to ensure they're not within their send frequency limit. \
\
This allows users to connect automated mailing pipelines but not worry they're sending multiple mailing to people in quick succession.&#x20;

<figure><img src="/files/08QP7eMVBVDdQT9vYoZW" alt=""><figcaption></figcaption></figure>

### GDPR Data Purge Frequency

This setting will dictate how long we hold your submission data before we cleanse it from our system. \
By default your GDPR cleanse setting will be 6 months however this can be changed to the value that best matches your data security policies.&#x20;


# Account Details

Change your Company details

The account details screen (found under 'Settings') in the ZAP-APP allows you to view and amend your company logo, details and address information.&#x20;

This information is used in various areas of the system which will be covered in this document.&#x20;

<figure><img src="/files/NXWmDIZqe26uAMT0poL6" alt=""><figcaption></figcaption></figure>

## Company Logo

This logo will be used in various UI's within the ZAP APP to show users which account they're on. \
This logo will also be exposed in the ZAP designer should you wish to include your logo in your ZAP Designs.&#x20;

<figure><img src="/files/45TMKSJNhZ5LAzEAVYP2" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Your uploaded logo should be a png or jpeg file with recommended dimensions 300px x 300px.
{% endhint %}

## Company Details

<figure><img src="/files/wbTtYdZNLoKO92yDUhPm" alt=""><figcaption></figcaption></figure>

Here you can edit your company name, phone number, accounts payable email and select your business sector. \
\
Company Name - Used for display and document composition purposes

Phone Number - Used for contact where necessary.&#x20;

Account Payable Contact Email - When this is populated the email address will be CC'd into any invoicing emails.&#x20;

Sector - This will dictate which sector templates show by default when selecting campaign templates and artwork.&#x20;

## Company address

<figure><img src="/files/kWqnWMWxtRQoVj1p58pT" alt=""><figcaption></figcaption></figure>

This is used for document composition and contact purposes so we can deliver and physical proofs when requested.&#x20;


# Notifications

Take control of your inbox by selecting or deselecting the emails you want to receive.

Notifications (found under 'Settings') allows you to make changes to your email notification preferences.

<figure><img src="/files/tOAfCxBMMPFPOmC0wcRr" alt=""><figcaption></figcaption></figure>

ZAP email notifications are broken down into 4 sections:\
Required Emails\
Updates\
Notifications\
Reminders

## Notifications

* **Data Submission** - Confirmation of a submission upload whether that's via the app or API
* **Invited User** - When a new user is added to your account
* **Campaign Creation** - Confirmation a campaign has been successfully created
* **Cleansed Data** - Confirmation when your records have been cleansed
* **Publish Confirmation** - Confirmation of a successful design publish
* **Webhook Failures** - Alerts recipient to a failed webhook execution
* **Integration Failures** - Alerts recipient to a failed Integration sync&#x20;

### Reminders

<figure><img src="/files/PadtVk4wPBvT8NXbGeo9" alt=""><figcaption></figcaption></figure>

* **Feedback Requests (Publisher)** - Request for feedback when a design is published
* **Feedback Requests (Campaigns)** - Request for feedback when a campaign is created
* **Notice of Upcoming Renewal** - Reminder that you ZAP Plan is due for renewal
* **Inactivity Reminder** - Reminder when there has been no activity on your ZAP account
* **Publish Reminder** - Reminder that a design has been saved but not published

### Updates

* **Mailing Updates** - Update informing you that your ZAPs have gone to print
* **Changelog Updates** - News on when new exciting features are released to the ZAP app
* **Summary Email** - A weekly email highlight the summary for that week, including sent and returned ZAPs

### Required Emails (opt-in essential)

* **Plan Cancellation** - A confirmation that you've opted to cancel your ZAP Plan
* **Change of Plan** - A confirmation that you've either upgraded or downgraded your ZAP Plan
* **Payment Updates** - Receive billing a payment related emails

To enable or disable emails, simply check the box next to the relevant email and click save changes.


# Plan

View or change your account plan.

The plan page (found under 'Settings') in the ZAP-APP allows you to view your current plan type as well as upgrade. downgrade and cancel your plan.\
\
Your ZAP Plan will dictate how many ZAPs you can send, which app functionality you can access and billing. \
This pagewill show many ZAPs are remaining on your account, how many credits have been issued, and any extra ZAPs that have been used over your initial sign-up limit.

<figure><img src="/files/746qIZM356zDpFTB7UDy" alt=""><figcaption></figcaption></figure>

### Upgrade/Downgrade

Should you wish to upgrade or downgrade your plan you can do so by clicking on 'Change Plan' and selecting the new plan you wish to change to. \
If you want to swap from monthly or annual plan you can do so at the top of the plan cards. \
Once you've selected the plan card you wish to change to you can then continue to confirm your selection.&#x20;

<figure><img src="/files/CwN13NVzhi35Sbp9T9L4" alt=""><figcaption></figcaption></figure>

Once you've selected your new plan, you'll see a confirmation pop up to confirm your changes. When downgrading your plan, this will happen on your plans renewal date. When upgrading your plan, you have the option to upgrade now or upgrade on your next renewal date.

<figure><img src="/files/ClnEvfui52K54jClAK8H" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/tvULFXKrCVYc8c5XgM2L" alt=""><figcaption></figcaption></figure>

If you've chosen to alter your plan on the next renewal date, you'll then have the option to cancel your changes.

<figure><img src="/files/2RfxckLN9KQfwNAKe87x" alt=""><figcaption></figcaption></figure>

To cancel your changes, go ahead and click 'Cancel Upgrade' or 'Cancel Downgrade' depending on your selection.

### Cancellation

To cancel your plan entirely, click on 'Cancel Plan', you'll see a pop up confirmation asking if you wish to proceed, plan cancellations always happen on your next renewal date.

<figure><img src="/files/3KukUm9zlk2ABhijWVQB" alt=""><figcaption></figcaption></figure>

When cancelling your plan, you'll still have full access to the ZAP-APP as well as any remaining ZAP Allowance and Cleanse Credits. If you cancel your plan and change your mind, [reach out to us ](https://zappost.com/contact/)and we'll back you back on track.


# API Consumers

Manage your ZAP POST API configuration and consumption

The API consumers page (found under 'Settings') is used to manage your API consumers. \
An API Consumer is used to connect our application to other applications. They may be required to connect one or more of our integrations or if you wish to build your own.&#x20;

If you're a developer you can read the [documentation here](/zap-api/zap-post-api-documentation) or visit [the API](https://api.zappost.com/index.html)

<figure><img src="/files/4cE0U0x3TmkBgIAx8bhr" alt=""><figcaption></figcaption></figure>

## Adding a new API Consumer

In order to add a new consumer you should select the 'Add New Consumer' button.

<figure><img src="/files/94ilYWePurGBekUiHAZK" alt=""><figcaption></figcaption></figure>

Once selected you will be to taken to the New Consumer slide out from which you can configure your preferred consumer name and enable the consumer. Whilst we will auto generate your API Credentials for you, these can be set manually to your preferred values or use the generate keys button to generate random keys.&#x20;

Once you're happy with your values, you can click create consumer and the API consumer will be saved for you.&#x20;

<figure><img src="/files/mZZTgzWT6UnRhwGkTTBK" alt=""><figcaption></figcaption></figure>

## Managing Your API Consumers

Once you have one or more API consumers configured, you'll be able to see and manage them in the API  Consumers UI. \
You can copy the API keys, enable or disable them, delete them, generate a new set of keys and also view the API logs associated with the consumer<br>

<figure><img src="/files/Y4xr8jx71YMH2dloorVk" alt=""><figcaption></figcaption></figure>

## API Logs

Each API Consumer will keep a log of all requests and responses for auditing and troubleshooting.&#x20;

<figure><img src="/files/OTL4YMZD9NchPIcZOZ1G" alt=""><figcaption></figcaption></figure>

Once on the logs UI you can filter by date, API Verb, HTTP Status and endpoint.

<figure><img src="/files/ps8N5AqnFXtM4ZUWk8I1" alt=""><figcaption></figcaption></figure>

By clicking the view logs icon you can see the request endpoint, the http status,  request headers, request body, response headers and  response body. Each content section is downloadable and has a copy to clipboard option for convenience.&#x20;

<figure><img src="/files/1tYTfn44bmUe0qFIQvny" alt=""><figcaption></figcaption></figure>


# ZAP History

Manage your ZAP POST API configuration and consumption

The ZAP History page (found under 'Settings') is a reporting UI can that be used to see your account send history including send numbers and costs.&#x20;

<figure><img src="/files/52738LpgZ0fjoDvQ6ByP" alt=""><figcaption></figcaption></figure>

Your ZAP History will be broken down by campaign level. \
You can filter the results by date or search by campaign name or ID. \
By default we will show the last 3 months of data however this can be extended using the date filters.\
If you wish to view a specific billing month, then the month dropdown can be used. \
Each campaign can be expanded to see a detailed submission history.&#x20;

<figure><img src="/files/9N0WHxr1iT3tBWrJpKSd" alt=""><figcaption></figcaption></figure>


# Webhooks

Create, edit, delete webhooks.

The Webhooks page (found under 'Settings') in the ZAP-APP allows you to manage webhooks and view any historic executions.

### What is a webhook?

A webhook is a way for an application to provide other applications with real-time information. Webhooks provide a powerful mechanism for integrating different services and enabling automation in a streamlined manner.

Any created webhooks also have the option to view the logs giving you more insight into any successes and errors.

<figure><img src="/files/ktNdAZ2EoT40SlGCgxQJ" alt=""><figcaption></figcaption></figure>

### Adding a Webhook

To add a webhook, simply click 'Add New Webhook'. A slide out will then appear allowing you to create your webhook. You'll have the ability to set the following values.

**Name** - An easily recognisable name for the webhook being created.\
**Target URL** - The URL endpoint to which events should be sent.\
**Event Trigger** - When the specific event happens in the ZAP APP, it triggers the webhook.\
**Basic Auth Username** - The username built into the HTTP protocol.\
**Basic Auth Password** - The password built into the HTTP protocol.\
**HTTP Headers** - These let you and the server pass additional information with an HTTP request or response. They're most often used for authentication purposes.\
**Status -** Determines if the webhook is active or inactive.

Once you're done, click 'Create Webhook' and your details will be saved.

<figure><img src="/files/dHyqHFNCvmSs5KZCw4tq" alt=""><figcaption></figcaption></figure>

#### Event Triggers

When creating a webhook, choose the event that should send the request.

The examples below show the typical JSON body for each event. Use your webhook logs to confirm the exact values returned for your account.

**New Submission**

This triggers whenever a new submission is created in ZAP-POST. This includes submissions added in the app via CSV uploads, integration submissions and submissions sent through the API.

<pre class="language-json"><code class="lang-json">{
  "WebhookEventTrigger": "NewSubmission",
  "ScheduledSendId": "9e7c7140-0ab6-4b28-a6cc-3f3de9b5c821",
  "ScheduledSendDateUtc": "2026-05-05",
  "SubmissionId": "5a6d9625-4b8d-41f8-89a8-764b75e1f6d8",
  "CampaignName": "Abandoned Basket Follow-up",
  "CampaignId": "f8a4b8ec-1c6f-4d34-b95a-4d02886a0c5c",
<strong>  "Submissions": [
</strong>    {
      "UniqueIdentifier": "8b2dd7b5-da21-4055-b5a3-82d824031657",
      "CustomerId": "1",
      "Email": "user@email.com",
      "Salutation": "Ms",
      "Firstname": "fname",
      "Surname": "lname",
      "CompanyName": "",
      "Address1": "address1",
      "Address2": "address2",
      "Address3": "address3",
      "City": "city",
      "State": "",
      "Postcode": "pcd1",
      "Country": "UK",
      "Currency": "",
      "Language": "",
      "user_defined_custom_field": "Test Value"
    }
  ]
}
</code></pre>

**Records Rejected**

This triggers during the 'Data cleanse' phase of the ZAP process. During this stage we will execute any end limit checks as well as any address checks. It fires when a record fails validation , address check or hits a send limit and is removed from the send.<br>

{% hint style="warning" %}
Please note, the PAF, Cleanse and Sent Limiter processes are sent as independant Records Rejected Webhooks.
{% endhint %}

```json
{
    "WebhookEventTrigger": "RecordsRejected",
    "ScheduledSendId": "9e7c7140-0ab6-4b28-a6cc-3f3de9b5c821",
    "ScheduledSendDateUtc": "2026-05-05",
    "SubmissionId": "5a6d9625-4b8d-41f8-89a8-764b75e1f6d8",
    "CampaignName": "Abandoned Basket Follow-up",
    "CampaignId": "f8a4b8ec-1c6f-4d34-b95a-4d02886a0c5c",
    "RejectedDateUTC": "2026-05-02T09:15:00Z",
    "Submissions": [
        {
            "UniqueIdentifier": "8b2dd7b5-da21-4055-b5a3-82d824031657",
            "CustomerId": "1",
            "Email": "user@email.com",
            "Salutation": "Ms",
            "Firstname": "fname",
            "Surname": "lname",
            "CompanyName": "",
            "Address1": "address1",
            "Address2": "address2",
            "Address3": "address3",
            "City": "city",
            "State": "",
            "Postcode": "pcd1",
            "Country": "UK",
            "Currency": "",
            "Language": "",
            "RejectedDateUtc": "2026-04-29",
            "RejectedReason": "Deceased and Gone Away"
        },
        {
            "UniqueIdentifier": "3ffc2b49-88f2-4628-b815-06245d4cf67f",
            "CustomerId": "2",
            "Email": "user2@email.com",
            "Salutation": "Ms",
            "Firstname": "fname",
            "Surname": "lname",
            "CompanyName": "",
            "Address1": "address1",
            "Address2": "address2",
            "Address3": "address3",
            "City": "city",
            "State": "",
            "Postcode": "pcd1",
            "Country": "UK",
            "Currency": "",
            "Language": "",
            "RejectedDateUtc": "2026-04-29",
            "RejectedReason": "Send Limiter Rejected"
        },
        {
            "UniqueIdentifier": "c2549451-f3f0-46cd-a2a1-ed369a40bea2",
            "CustomerId": "3",
            "Email": "user3@email.com",
            "Salutation": "Ms",
            "Firstname": "fname",
            "Surname": "lname",
            "CompanyName": "",
            "Address1": "address1",
            "Address2": "address2",
            "Address3": "address3",
            "City": "city",
            "State": "",
            "Postcode": "pcd1",
            "Country": "UK",
            "Currency": "",
            "Language": "",
            "RejectedDateUtc": "2026-04-29",
            "RejectedReason": "Address Match"
        }
    ]
}
```

**Submissions Sent**

This triggers when the final composed mail files are released to print and mail.

```json
{
    "WebhookEventTrigger": "SubmissionSent",
    "ScheduledSendId": "9e7c7140-0ab6-4b28-a6cc-3f3de9b5c821",
    "ScheduledSendDateUTC": "2026-05-05",
    "ZapsSent": [
        {
            "CampaignName": "Abandoned Basket Follow-up",
            "CampaignId": "f8a4b8ec-1c6f-4d34-b95a-4d02886a0c5c",
            "SubmissionId": "5a6d9625-4b8d-41f8-89a8-764b75e1f6d8",
            "ZapsSent": [
                {
                    "UniqueIdentifier": "8b2dd7b5-da21-4055-b5a3-82d824031657",
                    "CustomerId": "1",
                    "Email": "user@email.com",
                    "Salutation": "Ms",
                    "Firstname": "fname",
                    "Surname": "lname",
                    "CompanyName": "",
                    "Address1": "address1",
                    "Address2": "address2",
                    "Address3": "address3",
                    "City": "city",
                    "State": "",
                    "Postcode": "pcd1",
                    "Country": "UK",
                    "Currency": "",
                    "Language": "",
                    "ReturnedDateUtc": "2026-04-29"
                }
            ]
        }
    ]
}
```

**Zap Returned**

This triggers when a mailed ZAP is returned to sender after a delivery attempt.

```json
{
  "WebhookEventTrigger": "ZapReturned",
  "ScheduledSendId": "9e7c7140-0ab6-4b28-a6cc-3f3de9b5c821",
  "ScheduledSendDateUtc": "2026-05-05",
  "SubmissionId": "5a6d9625-4b8d-41f8-89a8-764b75e1f6d8",
  "CampaignName": "Abandoned Basket Follow-up",
  "CampaignId": "f8a4b8ec-1c6f-4d34-b95a-4d02886a0c5c",
  "ZapsReturned": [
     {
      "UniqueIdentifier": "8b2dd7b5-da21-4055-b5a3-82d824031657",
      "CustomerId": "1",
      "Email": "user@email.com",
      "Salutation": "Ms",
      "Firstname": "fname",
      "Surname": "lname",
      "CompanyName": "",
      "Address1": "address1",
      "Address2": "address2",
      "Address3": "address3",
      "City": "city",
      "State": "",
      "Postcode": "pcd1",
      "Country": "UK",
      "Currency": "",
      "Language": "",
      "ReturnedDateUtc": "2026-04-29"
    }
  ]
}
```

**QR Code Scanned**

This triggers when a recipient scans a tracked QR code on the mailed ZAP.

```json
{
    "WebhookEventTrigger": "QRCodeScanned",
    "ScheduledSendId": "9e7c7140-0ab6-4b28-a6cc-3f3de9b5c821",
    "ScheduledSendDateUtc": "2026-05-05",
    "SubmissionId": "5a6d9625-4b8d-41f8-89a8-764b75e1f6d8",
    "CampaignName": "Abandoned Basket Follow-up",
    "CampaignId": "f8a4b8ec-1c6f-4d34-b95a-4d02886a0c5c",
    "DateScannedUtc": "2026-04-30",
    "TimeScannedUtc": "15:31:49",
    "DestinationUrl": "https://www.google.com",
    "DeviceInformation": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/29.0 Chrome/136.0.0.0 Mobile Safari/537.36",
    "ZapThatScanned": [
        {
            "UniqueIdentifier": "8b2dd7b5-da21-4055-b5a3-82d824031657",
            "CustomerId": "1",
            "Email": "user@email.com",
            "Salutation": "Ms",
            "Firstname": "fname",
            "Surname": "lname",
            "CompanyName": "",
            "Address1": "address1",
            "Address2": "address2",
            "Address3": "address3",
            "City": "city",
            "State": "",
            "Postcode": "pcd1",
            "Country": "UK",
            "Currency": "",
            "Language": ""
        }
    ]
}
```

### Editing Webhooks

To edit a webhook, click on the edit icon on the webhooks page and you can amend any details you need.

### Deleting Webhooks

To delete a webhook, click on the bin icon on the webhooks page, you'll see a pop up asking if you're sure you want to delete.

<figure><img src="/files/5zXyPqUFWz49mlTCJTP7" alt=""><figcaption></figcaption></figure>

### Webhook Logs

To view the logs for one of your webhooks, click on 'View' from the webhooks page. This will then give you an overview of all logs for that webhook with a quick visual of the Status Code for each event.

<figure><img src="/files/hJtX7XhFnfx7okWqI3kZ" alt=""><figcaption></figcaption></figure>

You can filter this page based on Target URL, Status Code, From and To Dates and Time. Click the filters expand control to see the different filter options

<figure><img src="/files/205RF7COYUG6JYvf8Kh1" alt=""><figcaption></figcaption></figure>

To see the request and response for each log, click on the view logs icon.

### Requests

When viewing a log, you'll be able to see the request header, a webhook request header is part of the HTTP request sent to a specified URL endpoint when an event triggers the webhook. These headers contain data about the request and help ensure that the receiving server can interpret the incoming data correctly and securely.

You'll also be able to view the request body, a webhook request body contains the actual data payload sent from the source application to the receiving server when an event triggers the webhook. This payload includes detailed information about the event and any relevant data associated with it.

<figure><img src="/files/ms4p3BQUxMq0BDoSAFX0" alt=""><figcaption></figcaption></figure>

### Responses

You're also able to view the webhook response header, A webhook response header is part of the HTTP response sent by the server that receives a webhook request. These headers provide information about the response and can include status information, content type, and other metadata.

A webhook response body is the data returned by the server receiving a webhook request. It provides feedback about the result of the webhook processing.

<figure><img src="/files/JpVbsYfCYLBlGaF5Nqnm" alt=""><figcaption></figcaption></figure>


# Billing

Search for and download invoices associated with your Zap account

The Billing page (found under 'Settings') in the Zap App allows you view and download any invoices associated with your account.

<figure><img src="/files/esUfrLEy0Fmusmj5ISni" alt=""><figcaption></figcaption></figure>

You can search by invoice number or submission ID in the search box.

It includes the invoice date, number, type and amounts. To download the invoice, click on the download icon.

You can expand any row within the table to see a more detailed breakdown without having to download the invoice.

<figure><img src="/files/Rm9YVdN9HcT4f2Hvl3mp" alt=""><figcaption></figcaption></figure>

* **Records Uploaded** - The total count of records uploaded
* **Cleanse Credits** - The amount if cleanse credits used for the submission
* **Records Charged** - The difference between the records uploads and cleanse credits
* **Membership Total** - The total membership fee if applicable
* **Zap Subtotal** - Subtotal for the amount of records charged
* **Discount** - The amount for any discount allocated to the submission
* **Subtotal** - Total charge excluding VAT
* **VAT** - Total VAT charged&#x20;
* **Total** - The total for the invoice


# Support

We’ve created the ZAP\~POST [Academy](https://zappost.com/academy/) to help you get the most out of the ZAP-APP experience.&#x20;

If you can’t find what you’re looking for, [reach out to us](https://zappost.com/contact/) and we’ll get back to you. We also have a live chat option if you need to speak to someone right away. Our live chat is monitored 08:30am - 5:30pm BST/GMT


# ZAPPOST.COM

zappost.com

## ZAP-POST: Send Direct Mail

ZAP-POST is the UK’s leading Direct Mail platform, created for marketing teams and agencies to design, automate, and send high-impact, data-driven campaigns that are printed and mailed in the post. Our seamless integrations, smart personalisation tools, and tracking features make it easy to connect with customers through highly targeted print.

Our website contains all the answers to your questions on ‘who we are’ and these documentation guides aim to solve any further technical topic you may wish to learn about.

## Drop-in Designer: Instant Access to Direct Mail Creation

Our [Drop-in Designer](https://zappost.com/designer) removes barriers to campaign creation, allowing you to start designing immediately.

* No sign-ups required upfront
* Choose from expertly-crafted templates for all industries
* Or start building from scratch
* Full customisation options including fonts, colours, QR codes and variable data

Our Drop-in Designer lets you create, customise, and preview campaigns in minutes. Whether you're a seasoned pro or new to print, getting started has never been easier.


# Using the ZAP-POST Designer

The design editor allows you to personalise and edit the layout of a Zap.

The ZAP-POST designer is a tool that allows you to easily create direct mail designs for specific mail campaigns. With the design tool, you can add images, text, customisations, and QR codes to your Zap designs.&#x20;

You can keep your designs on-brand and within your brand guidelines by uploading your own fonts into ZAP-POST. You can also save designs for later; these will be ready to use again whenever they are needed.

### Accessing the Designer

Once on zappost.com, the designer can be accessed from three different pages:

* Home page - <https://www.zappost.com/>
* Design your Zap - <https://zappost.com/design-your-zap/>
* How direct mail works - <https://zappost.com/how-direct-mail-works/>

### ZAP-POST Designer

When visiting the designer for the first time, you'll have the option to select one of our premade designs, or to start from scratch.

<figure><img src="/files/K2MqBJSS6dWyqefrWfBA" alt=""><figcaption><p>zappost.com design picker</p></figcaption></figure>

You can filter designs by different sectors or campaign types.

<figure><img src="/files/71ZTQZ48Fku3CIFnm1Xh" alt=""><figcaption><p>Design picker with sector filter selected</p></figcaption></figure>

<figure><img src="/files/B5YVhU0aDYytei2B9dh9" alt=""><figcaption><p>Design picker with campaign filter selected</p></figcaption></figure>

To start from scratch, select the blank template

<figure><img src="/files/Rp0enKTPMpcfohatXWAN" alt=""><figcaption><p>Design picker with the blank template selected</p></figcaption></figure>

### Start from scratch

If you do choose to start from scratch, you'll then have the option to select which paperstock you would like. For more information on our paperstocks and to download a template, see our academy [here](https://zappost.com/academy/lessons/zap-post-template-downloads).

<figure><img src="/files/yAYeZ8cvCHq1i4RFGo8M" alt=""><figcaption><p>Paperstock selector</p></figcaption></figure>

### Printer's Marks

Depending on the paper stock you have chosen for your campaign, there will be a number of different lines shown on your canvas. Simply put, these lines are quality control methods that help to achieve the professional print and finish your designs deserve.

The visibility of these lines can be turned on/off using the view settings submenu.&#x20;

<figure><img src="/files/Fy88ifBvzhTlP2jYZlg2" alt=""><figcaption><p>The safety line, trim line and bleed area printers marks shown on a Zap Impact Campaign</p></figcaption></figure>

There are 3 key printer's marks shown on the Impact, Mini and Secure paper stocks:

1. **Bleed area** - The **red-shaded bleed area** extends out an extra 3mm from the solid black trim line. All images or colour that print to the edge of your design should be fully extended into this area to avoid the chance of white lines appearing. This will ensure that when trimmed, your design is printed edge to edge. Make sure not to place any important content or artwork elements in this area, as it will get trimmed off.
2. **Trim Line** - The **solid black trim line** shows the finished size of the document. Anything placed outside of this area will be trimmed off.
3. **Safety Line** - We recommend that no text or barcodes are placed outside the **red dashed safety line**, as anything placed outside of this box will risk being cut off.&#x20;

### Postage and Returns Management Areas

The grey, un-editable boxes shown on the canvas are for the postage and returns management areas. Text and barcode widgets can be placed in these areas but they will become opaque and you'll be presented with a warning. Any images placed in these areas will sit behind a white box outline of the area when printed.

<figure><img src="/files/VS3k69a1Y29LxKiNeHuV" alt=""><figcaption><p>Postage area (top right) and Returns management area (bottom right) shown on a Zap Impact Campaign</p></figcaption></figure>

### Assets

Using the asset bar shown below, you can add a number of different assets to your Zap designs. ZAP-POST assets may include the following media types:

* [Static Images](#static-images)
* [Dynamic Images](https://userguide.zappost.com/zap-post-user-guide/zapp/using-the-zapp/design/dynamic-images)
* [Text](#text)
* [Variable Text](#variables)
* [QR Codes](#qr-codes)
* [Custom Fonts](#fonts)

<figure><img src="/files/JHDW8q8stPJ8InIFZsTO" alt=""><figcaption><p>ZAP Designer asset bar</p></figcaption></figure>

You can use the asset explorer on the right of the designer screen to select, rename, reorder and delete assets.

<figure><img src="/files/6ccAL2AN8SDzx7rw6yvM" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Static Images and Custom Fonts are restricted to three unique uploads.

Dynamic Images are completely restricted

\
All assets and completely unrestricted when creating an account
{% endhint %}

### Duplicating Assets

Assets can be duplicated by either using CTRL C and then CTRL V, or by clicking the duplicate asset icon. This is useful when you might want to preserve the formatting of an asset, rather than starting from scratch on a new asset with default formatting.

<figure><img src="/files/4grIhG4vRLxPNWIEiH5F" alt=""><figcaption><p>Duplicate asset icon shown at top right of QR code asset.</p></figcaption></figure>

### Static Images <a href="#static-images" id="static-images"></a>

Clicking the static image icon will open the static image window.

Using the static image tool, you can click ‘upload’ to add up to 3 files at once. Accepted formats are jpeg, jpg, png, pdf and tiff. Files can be up to 5MB in size, however, tiff files can be up to 50mb.

These uploaded images are added to your static image library where you can access them at any time.

You can delete any unwanted images from your image library by selecting them and then clicking ‘delete’. You can also create folders in your static image library to organise your images.

<figure><img src="/files/3YcRXkcgVcUyJJ9IeLf2" alt=""><figcaption><p>The ZAP Designer Static Image explorer</p></figcaption></figure>

To add an image into a Zap design, select it in the static image window then select ‘choose’. When an image has been added to the design, you can use the handles on the sides of the image to resize or rotate the image to your preferred size & position.

{% hint style="info" %}
**Drag & Drop uploads -** drag and drop one or more images into either your static assets folder, or straight onto your canvas when uploading them.
{% endhint %}

### Text <a href="#text" id="text"></a>

By clicking the text icon, a text box will be added to the centre of a Zap design. You can use the handles on the sides of the text box to resize and reposition it.&#x20;

Select the box to view the text controls in the sidebar. There are two controls worth mentioning here: variables and copy fitting.

<figure><img src="/files/2p17YaKETbtwzKDixQsj" alt=""><figcaption><p>Adding Text with the ZAP-POST Designer</p></figcaption></figure>

### **Variables**

This is how you add personalisation to your Zap designs. Select from the dropdown list to choose a personalisation.

When inserted into the design, a placeholder text will appear, this will look similar to ‘<\~D:firstname\~>’. When you upload your recipient data to ZAP-POST, any personalisations will be replaced with the relevant field from your data.

To preview how personalisations will look, you can toggle the preview personalisation to swap out the placeholder example data. By toggling this on you can then cycle through different sets of example data.

<figure><img src="/files/wWr09R6pnOq9RvVs3tGC" alt=""><figcaption></figcaption></figure>

### **Date and Time Format**

Along with customisation and variables, you can specify the date and time format that's displayed on their designs.

If the data contains a date or time as a custom field, you can select from the below.

**Date Formats:** \
Original Formatting \
MM/DD/YYYY - 12/25/2023 \
DD/MM/YYYY - 25/12/2023 \
Month DD YYYY - December 25 2023 \
DD Month YYYY - 25 December 2023 \
\
**Time Formats:** \
Original Formatting \
24 Hour - 13:00 \
12 Hour - 1:00pm

### **Copy Fitting**

This is directly related to Variables. If using a personalisation that potentially has different lengths of data (eg. a first name), copy fitting will ensure that the text will be automatically resized to still fit inside your text box. There are two types of copy-fitting:

1. Shrink Copy to fit area - this will decrease the font size to make the text fit inside the text box if it is too long.
2. Grow Copy to fit area - this will increase the font size to make the text as large as it can be within the text box.

'Shrink copy to fit area' is turned on by default, but both of these settings can be toggled on and off using the toggles.

<figure><img src="/files/26k9JIYHbZhBxP2gb2Jo" alt=""><figcaption><p>ZAP-POST Designer Copy Fitting toggles</p></figcaption></figure>

### QR Codes <a href="#qr-codes" id="qr-codes"></a>

QR codes can be inserted into any design by clicking on the QR code icon. When added to your design, you have four options to select from, Standard, Phone, Email and Tracked QR.

<figure><img src="/files/nvF1g5SmnRQTVPVHGcNE" alt=""><figcaption></figcaption></figure>

**Standard QR**

There are two options when defining a URL for the QR code. You can either choose a customisation that will use a URL stored within your data, or you can manually enter a URL using the text box field in the QR Code control sidebar. You can select the barcode colour along with the background colour and set a transparency for the background.

<figure><img src="/files/gBXwFYaMJAV0XWHBHYSY" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
A word of warning: QR Codes will only scan when there is enough contrast between them and the background. Make sure that your QR code is sat on a white box or on a light colour background to ensure it will work as intended. A QR code must also be at least 2cmx2cm in size to scan successfully.
{% endhint %}

**Phone QR**

When selecting phone, you can either use a customisation found in your data or enter a fixed number. when this is scanned on a mobile device, that users phone will automatically start a call phone call to the number entered.

**Email QR**

When selecting email, once again, you can use customisations or enter the email address, subject and bodt text manually. When this is scanned, that user will automatically compile an email using the stating subject and body.

**Tracked QR**

If you select 'Tracked QR' from the drop down, you'll be shown a list of fields to populate, this will then create a UTM tracking URL for a Google Analytics campaign.

**Website URL** - the full website to direct your customers to (e.g. <https://www.zappost.com>) \
**Campaign ID** - used to identify which adds campaign this referral references. Use **utm\_id** to identify a specific ads campaign. \
**Campaign Source** - use **utm\_source** to identify a search engine, newsletter name, or other source. **Campaign Medium** - use **utm\_medium** to identify a medium such as emails or cost-per-click **Campaign Name** - used for keyword analysis. Use **utm\_campaign** to identify a specific product promotion or strategic campaign \
**Campaign Term** - used for paid search. Use **utm\_term** to note the keywords for this ad. \
**Campaign Content** - used for A/B testing and content targeted ads. Use **utm\_content** to differentiate ads or links that point to the same URL.

<figure><img src="/files/FVRy7KvmHkF4NjL5lTDg" alt=""><figcaption></figcaption></figure>

### **Adding ZAP Insights to QR Codes**

QR Code usage can be easily tracked using ZAP-POST. By turning on the 'Add ZAP Insights' toggle switch, you can measure how many scans you receive from your Zap submission.

When you have turned on ZAP Insights for QR codes, the scans will be recorded and grouped according to the submission the Zap was a part of. \
\
You can download a CSV of which recipients have scanned a QR code using the 'QR Code Tracking' download button in the furthest right column of the table on the Zap Processing screen. You can also view the QR scan data in the graphs shown on the[ insights page](https://userguide.zappost.com/zap-post-user-guide/zapp/using-the-zapp/insights).

### **Fonts**

With ZAP-POST, you can upload custom fonts for use in your ZAP designs. To do so, you should first select the ‘fonts’ icon from the asset bar to navigate to the font management area. \
\
From here, you can upload fonts in either .ttf or .otf file formats. You can view, edit or remove their existing custom fonts. Any fonts uploaded will be available to use in the text editor tool.

<figure><img src="/files/UiHx6aKh2DvQ3YCAVeyA" alt=""><figcaption></figcaption></figure>

### Background Colour <a href="#background-colour" id="background-colour"></a>

You can select a background colour for your design. On the right hand side under assets you will see an option called background. There are multiple ways you can choose your colour,\
\
RGB value \
HEX value\
HSV value

<figure><img src="/files/d4YIDSXeaVUynwl7Z3Sx" alt=""><figcaption></figcaption></figure>

### Saving Designs

There are two reasons you will want to save your design:\
\
1\. To be able to come back later and amend them\
2\. If you sign up to an account, the design will be waiting for you in the ZAP APP

Saving you design is easy, click 'file' and then 'Save' or click on the save icon in the designer.

### **AutoSave**

The Auto Save feature ensures that your work is continuously saved after every change you make, providing a safety net against unexpected disruptions or crashes.

You have the flexibility to toggle the Auto Save feature on or off, based on your preference and workflow. To turn autosave on, click the toggle next to the save icon in the designer.

<figure><img src="/files/kc7M8vyntdlPiYUNcV1N" alt=""><figcaption></figcaption></figure>

Autosave will be turned on by default when you create a campaign. If you have not yet saved a design for that campaign, then autosave will create a file for you. This file can be found in your saved designs folder in the Zap Designer accessed from the file dropdown menu.

### Create an account

When you're happy with your design, and you've saved your changes, you can create an account by clicking Sign up

<figure><img src="/files/ccyXw5GUnssuJeO8tQDz" alt=""><figcaption></figcaption></figure>

For more detailed information on creating an account, see our [Sign up guide](https://userguide.zappost.com/zap-post-user-guide/zapp/sign-up)


# FAQ

To help you get your head around ZAP-POST, we’ve included answers to some of the questions we get asked the most. If you can’t find what you’re looking for, reach out to us and we’ll get back to you.

## Technical

{% content-ref url="/pages/FZ5upgDDWwiObWdfLObj" %}
[Technical](/zap-post-web-app/faq/technical)
{% endcontent-ref %}

## Plan and Pricing

{% content-ref url="/pages/4Z9LFva73CRMSIB26cZ6" %}
[Plan and Pricing](/zap-post-web-app/faq/plan-and-pricing)
{% endcontent-ref %}

## Artwork and Content

{% content-ref url="/pages/r4WHQWn0pIEDx4UsDHOa" %}
[Artwork and Content](/zap-post-web-app/faq/artwork-and-content)
{% endcontent-ref %}

## Data

{% content-ref url="/pages/QOz6cWXUCGxyLmtpuSq1" %}
[Data](/zap-post-web-app/faq/data)
{% endcontent-ref %}

## Mailing

{% content-ref url="/pages/r1txBiVoY4h1BnWw2JSd" %}
[Mailing](/zap-post-web-app/faq/mailing)
{% endcontent-ref %}

## Environmental

{% content-ref url="/pages/dGzGugo5oqHejtOCufZE" %}
[Environmental](/zap-post-web-app/faq/environmental)
{% endcontent-ref %}


# Technical

#### Will it work with my website?

It should. To see our list of current integrations click[ here](https://zappost.com/how-it-works#integration), and if you can’t find what you’re looking for then let us know and we might be able to help.

#### Where does the paper come from for ZAP-POST?

The paper we use for our Zaps is ethically sourced and FSC accredited. FSC stands for 'Forest Stewardship Council'. The FSC certifies forests all over the world to ensure they meet the highest environmental and social standards. Products made with wood and paper from FSC forests are marked with the 'tick tree' logo. [Read more](https://zappost.com/csr) about how we’re using ZAP-POST to change things for the better.

#### What is the quality of the printing presses used?

We use the highest quality HP Indigo colour production grade printing presses for our Zaps. Not to get too geeky about it, this print tech has unmatched colour and ink capabilities, can print on a broad range of substrates in the digital print industry and deliver the highest speeds for high print quality. Most importantly this ensures your Zaps are in the hands of your customers quickly and to a high standard- reflecting your brand in the best possible way.


# Plan and Pricing

#### How much does it cost?

With annual and monthly plans to choose from, the cost of a Zap depends on how many you want to send. More Zaps = bigger discounts. Our pricing can be found [here](https://zappost.com/pricing/)

#### How long will it take to get set up?

Quicker than you can say ‘Zap me baby one more time’... But in all seriousness you can be up and Zapping in minutes. Select your campaign, customise your design and with your integration(s) connected - we’ll take care of the rest.

#### What's a ZAP credit?

A credit given should a zap not be sent following the “data cleanse process” of all ZAP-POST addresses provided.

#### Why can't I get a refund instead of a Zap credit?

Data cleansing is usually subsidised by ZAP-POST. Most companies charge a separate fee for data-cleansing services. As ZAP-POST doesn't charge for it, we can't refund it, but we issue credits instead.

#### How long do the ZAP credits last

Zap Credits roll over to your next billing period. Use them or lose them.

#### If a plan is upgraded or downgraded, what happens to any Zap Credits?

Zap Credits are associated to an Account not a plan.

#### What's included in the Zap tier pricing?

The kitchen sink. The price of a zap includes print and post, but it goes way beyond that. Data filtering, PAF check and data cleanse is included. Portal access to upload and your creatives and add any dynamic codes, QRs and barcodes. Any available data integrations are included too, and we're adding more all the time. Returns management is also in the price.

#### Why are some tiers cheaper than others?

Economies of scale. The more we send, so the price goes down. Think of it as the opposite to easyjet - surge pricing in reverse.

#### I can send booklets for the same as your postcards?

Zapology: Less is more. Be relevant, personal, and timely. Your goal is to drive users back to your website where products and services will always be up to date. Remember the NEXT Directory?

#### How soon can I cancel?

With a rolling monthly contract, you can stop your account anytime. You will be able to keep on Zapping until your next billing date, and after that you’ll need to restart your plan to send more Zaps.


# Artwork and Content

#### Colour profiles

You should upload artwork output to CMYK, not RGB as this is a print campaign. Remember, your computer screen is RGB, so the colours will look different when you upload to the content portal but don't worry - the printed output will match your CMYK images.

#### Preferred file type

The Content Portal accepts PDF, .JPG and .PNG. Our advice is to use .JPG for images and .PNG where the image is mainly text.

#### Max file size you can accept?

Each image must be not more than 5mb. You can upload multiple images per side or panel.

#### Can I use my own Fonts?

Yes, upload any fonts you have permission or licence to use as long as they are .ttf and .otf formats.

#### What do you mean by 'print-ready artwork'?

ZAP-POST takes care of everything to do with printing - the only thing you need to make sure of is that the images are full bleed - in other words, they cover the white image canvas entirely, if that is your design intention.

#### Can you offer Design assistance?

Yes, we have in-house design services at ZAP-POST - use the chat window, or drop an email to <hello@zappost.com> to find out more. You can buy Design time in 2, 5 or 10 hour chunks.

#### A 3rd party agency does my artwork - can they send it to you directly?

You can add your agency as a user so they can upload directly to the Design tool in the app. That way you and your agency can work collaboratively to create the results you want, first time.

#### Can you give me some inspiration and examples?

ZAP-POST has seen all kinds of campaigns and the craziest artwork deliver some really stellar results. The first place to look is [the Designer](https://zappost.com/designer), where there are plenty of pre-designed templates to inspire you. The Zap team can definitely guide you but you know your brand better than we ever will. See some past campaigns and their Return on Investment in [impact stories](https://zappost.com/impact-stories/). If you'd like a pack of samples, let us know and will zap them over to you.

#### What do other brands do with QR codes?

QR codes are your fabulously flexible friend :) . A top tip is 'go deep, or go home'. A QR can be dynamically created to create a personalised experience for each recipient. QR code best uses in a Zap include linking straight to a customer's basket, wish list, email subscribe page and a personalised page of product recommendations.

#### Can I add my branding to the design of my Zaps?

Logos, images, text, custom fields and trackable codes; all this and more can be part of your designs. It’s also easy to create your Zaps for each campaign with our intuitive drag & drop editor.

#### I don’t know what to put on my Zap?

The most effective Zaps have a clear call to action (CTA) and use good branded imagery and messaging. Check this article on [Effective Content](https://zappost.com/academy/lessons/how-to-create-effective-content/) in the [Academy](https://zappost.com/academy/). To get inspired, have a look at what our other clients have been doing with their [Zaps](https://zappost.com/impact-stories/).

#### What do other brands do with discount codes?

If you want to keep things simple, Zap advice is to generate a one time, single use code with an expiry date no more than 30 days from the intended send date. Discounts can be either Percentage off, or an absolute value, on a minimum spend. Both work. If you're unsure which works best, the easy answer is to test both, and see which one is the winner - split testing is easy - start a chat session to down below to find out how.

#### Can I make QR Codes personal to each customer or do they have to be generic?

If ZAP-POST had a middle name, it would be 'Personalisation'. Our strong advice is every recipient of every campaign should receive a personalised Zap. Honestly, if its just generic one-size-fits-all content, you can get it done cheaper elsewhere, but don't expect the same level of results.

#### Can you help me create the QR codes?

Unique QR Code generation is part and parcel, out-of-the-box functionality. Select the QR code, add variables, and add tracking too, so you have a dynamically created, personalised and trackable QR code for every Recipient. If you need help setting it up, hit the chat button below, or drop an email to <support@zappost.com>

#### Will I receive a proof to approve?

You can download a proof of every campaign at any point. Once downloaded, you can print it locally on any device.  If you want a printer's proof from ZAP-POST, you can request one, but of course it will delay your campaign going live. We recommend adding yourself and one or two colleagues as 'seeds' in your recipient data so you get the actual printed version through your own letterbox.

#### I don't want to send a postcard - is that all you do?

No, we offer four templates; Two Postcards: The original Zap IMPACT and a standard A5 postcard., an A4 letter, sent out in a C5 window envelope and a One Piece Mailer ("OPM").  The OPM is A4, folded to A5 and self sealed, with the address on front - no envelope required. See all [Direct Mail Templates](https://zappost.com/design-your-zap/#paper-stock-section).&#x20;

Request a sample pack via the [form at the bottom of this page](https://zappost.com/design-your-zap/)

#### Do you track QR codes scans or do we?

Yes! QR codes in ZAP\~POST are automatically set to trackable. We can provide insights into which of your customers are scanning the codes and when.


# Data

#### What if our data is really old and out of date?

There's one way to find out. Submit a csv (you can download the template from the 'Campaign' page). We'll do three checks on it and give you the results. If its over 60% undeliverable, ZAP-POST will respectfully suggest your data is not worth spending any money on. If its anything better than that, the campaign will proceed and you'll just get Zap credits for those that are undeliverable. (See Zap Credits).

#### How far back should we go for Lapsed customers?

The more recent the better. As the data gets older, you'll find more of your database has moved on, in one way or another. We wouldn't want to put a number on it, because it depends on too many factors as to how far back you should go. The answer is to test it. Split your segments up into lapsed age bands and do one campaign at a time. Test, test and test again, just like you will do with your email campaigns.

#### How long is too long for targeting a Lapsed Customer segment ?

The answer depends on your Customer demographic. If your target Customers are Gen Z, we'd suggest 2 years would be your max. If Silver Surfers are more your bag, a lapsed customer campaign up to 5 years has been done before. The good news is ZAP-POST allows you to test these segments in small doses, so you'll know the answer without exposing yourselves to too much risk.

#### How do you clean my Data?

ZAP-POST has partnered with the best in the business to provide you with the cleanest data sets possible. There are actually three levels of process to deliver a fully cleansed data set:&#x20;

1\) Filtering and validation, \
2\) PAF (Post Code Address File) checks, to remove any unrecognisable and undeliverable addresses and \
3\) Deceased and gone away checks, comparing against multiple databases.

#### Do I get the clean data back?

Yes. And no. ZAP-POST will enable you to download the records that failed simple validation. Same goes for addresses that were rejected in the PAF process - you can download those records too. Recipients who have moved or gone away, they cannot be shared, unless you have opted for advanced data cleansing (the difference between "Surpress" and "Flag").

#### Other mailing houses charge me to clean my data - how come you don't?

ZAP-POST ethos is to make Automated or Programmatic Direct Mail really simple. Everything is built into your Zap pricing, including Data cleaning. Zap data cleaning happens as standard for every recipient, and there's a Zap credit system for those that are rejected and removed for members with a Monthly or Annual plan. Search Zap Credits for more information.

#### Do I have to send it in a CSV?

CSV data is the most reliable method of sending data in a file format. Ultimately, your Zap campaigns are powered by your Ecommerce store, your marketing automation platform or your CRM / CDP tools and they should be connected to ZAP-POST via API.&#x20;

If you cannot connect via API, then export records from your Data Source, and import them into ZAPPOST.

The easiest way to connect campaigns to ZAP-POST is via [Integrations](https://integrations.zappost.com/integrations).

#### How do you protect my data?

ZAP-POST is ISO 27001 accredited. Your recipient data is transferred and 'at rest' fully encrypted. By default, all recipient data is anonymised after 180 days.

#### How long do you keep our customer data for?

Default data retention period is 180 days post send, after which time all recipient data is anonymised. You can change the default in account settings any time.

#### What if I don't want my data cleansed?

If your data is 'clean', that's great. It won't hurt to run it through the Zap machine, and it will not cost you a bean, or a Zap. By default though, every recipient record gets put through the mill to ensure highest possible deliverability which means you get the highest possible conversion.


# Mailing

#### What's PAF?

The Postcode Address File (PAF) is a database that contains all known "delivery points" and postcodes in the United Kingdom. The PAF is a collection of over 29 million Royal Mail postal addresses and 1.8 million postcodes. If you want to get into the weeds, [check wikipedia](https://en.wikipedia.org/wiki/Postcode_Address_File)

#### Do you use Royal Mail or other carriers?

In the UK, ultimately 'Postie' always delivers, regardless of which carrier is used. ZAP-POST will use any carrier based on factors at that time, including price, performance and network availability.

#### What if we don't want to send on your schedules?

We'll get to daily sends soon enough, but if you want to do a solo send, yes, just let us know the date you want a campaign to land and we'll advise the best send date.

#### I want to time the landing of my campaign with a new product launch - what's the timeframe to do this?

When you're ready, choose a send date in the app, or via the API. You can expect your Zaps to start landing two or three days after the send date.  If your preferred send date is not in the app, start a webchat, or send an email to <hello@zappost.com> to request one.

#### Can I send first class or only second?

Zap pricing is based on second class mail. If you want to go first class, great, but we'll need to give you some first class pricing :) First class pricing is not available on the website so please get in touch.

#### What's a good volume for a trial?

There's your time and effort to consider here, not just the ZAP-POST cost. Zap advice is go for a minimum of 1,000 recipients for a trial, and try two different messages or offers, so you have enough data to make an informed decision about your programmatic direct mail future.

#### Why are your postcards so big?

Some times, 'less is more'. Not when it comes to Zaps. There are two postcards: "Impact" and "A5".  Impact Zaps are huge, premium postcards. If there's a crowd on the doormat, or on the kitchen table, a Zap stands out from the crowd. Impact cards are printed on 350gsm high quality FSC paper stock.

\
A5 Postcards are just that, 148mm x 210mm.  They are printed on premium 250gsm FSC coated stock.

#### What about returns?

Because your data has been cleaned before posting, you can expect a tiny percentage of returns. Zaps come back to Zap HQ to be processed and you can always download the latests returns from the app.

#### What's included in the Zap tier pricing?

The kitchen sink. The price of a zap includes print and post, but it goes way beyond that. Data filtering, PAF check and data cleanse is included. Portal access to upload and your creatives and add any dynamic codes, QRs and barcodes. Any available data integrations are included too, and we're adding more all the time. Returns management is also in the price.

#### Which Regions/Countries is ZAP-POST available in?

Currently, the UK is our main standard mailing location. However, we also have the ability to send ZAP-POST campaigns in the US, Germany, the Netherlands, France and Italy via our in-country specially selected print & mailing partners. Specifications, pricing and turnaround vary on a country-by-country basis so if you do have an interest in mailing your customers in these locations, [let's chat](https://zappost.com/contact/)


# Environmental

#### Is your paper recycled?

The paper we use for our Zaps is ethically sourced and FSC accredited.&#x20;

#### Can it be recycled?

Yes, of course.&#x20;

#### Whats FSC?

FSC stands for 'Forest Stewardship Council'. The FSC certifies forests all over the world to ensure they meet the highest environmental and social standards. Products made with wood and paper from FSC forests are marked with the 'tick tree' logo.&#x20;

#### Are you part of any other environmental initiatives?

We have partnered with [Veritree](https://www.veritree.com/impact-hub/arcxmedia)\
We were partnered with Eden Reforestation Project until the end of 2023 where, together with our sister business, [Retain.me](https://retain.me), we planted over 130,000 trees.  We moved to [Veritree](https://www.veritree.com/impact-hub/arcxmedia) to have greater transparency on our tree-planting efforts, both for us, and for ZAP-POST's members.&#x20;

#### What is Veritree?

Veritree is a restoration platform for companies and planting partners looking to make, measure and communicate nature-positive impact.

#### What do Love Paper do?

Love Paper is a global campaign promoting the sustainable and attractive attributes of print, paper and paper packaging.


# Help

We’ve created the ZAP-POST [Academy](https://zappost.com/academy/) to help you get the most out of your ZAP-APP experience.&#x20;

If you can’t find what you’re looking for, [reach out to us](https://zappost.com/contact/) and we’ll get back to you.


# Accessibility

ZAP-POST is committed to providing a website that is accessible to the widest possible audience, regardless of technology or ability. We are actively working to increase the accessibility and usability of our website and, in doing so, adhere to many of the available standards and guidelines.

This site has been built using a high standard of HTML and CSS. The site displays correctly in current browsers and using high standard HTML/CSS code means any future browsers will also display it correctly.

Whilst ZAP-POST strive to adhere to the accepted guidelines and standards for accessibility and usability, it is not always possible to do so in all areas of the website.

We are continually seeking out solutions that will bring all areas of the site up to the same level of overall web accessibility. In the meantime should you experience any difficulty in accessing the ZAP-POST website, please don’t hesitate to contact us.


# Glossary

This page is intended to break down and ZAP-POST Specific language or direct mail jargon to help users understand the different services and processes that make up the product

| Word                                 | Description                                                                                                                                                                                                                                                                                                  |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Autosave                             | A feature that automatically saves a user's work at regular intervals.                                                                                                                                                                                                                                       |
| Bleed Area                           | An area that extends 3mm from the solid black trime line.                                                                                                                                                                                                                                                    |
| **Campaign**                         | A ZAP-POST Campaign is made up of a name, fields, paper stock, content and submissions. It can be reused multiple times for multiple Direct Mail Sends                                                                                                                                                       |
| **Campaign** **Template**            | Allows a user to create their own campaign template rather than using a default option                                                                                                                                                                                                                       |
| **Client**                           | A company or organisation using the services of ZAP-POST                                                                                                                                                                                                                                                     |
| **Client Admin**                     | A person with enhanced permissions within a company or organisation using the ZAP-APP                                                                                                                                                                                                                        |
| **Client User**                      | A person within a company or organisation using the ZAP-APP                                                                                                                                                                                                                                                  |
| Copy Fitting                         | Adjusting the length of text to fit within a predefned space.                                                                                                                                                                                                                                                |
| Custom Field                         | A user defined field within a ZAP campaign adhering to a users specific needs.                                                                                                                                                                                                                               |
| **Data Cleanse**                     | A process of detecting and correcting (or removing) corrupt or inaccurate records                                                                                                                                                                                                                            |
| **Deceased**                         | Cleansing that checks the recipient against a database to identify someone that has died                                                                                                                                                                                                                     |
| **Direct Mail**                      | Direct Mail is commercial literature sent to existing or prospective customers through the post.                                                                                                                                                                                                             |
| Field Mapping                        | The process of linking data fields to a Campaign Template field.                                                                                                                                                                                                                                             |
| Fold Lines                           | The line on which foldable paper stocks are folded.                                                                                                                                                                                                                                                          |
| **Goneaway**                         | Cleansing that checks addresses against a database to identify end users that have moved and no longer live at the address                                                                                                                                                                                   |
| Insights                             | Insights provide meaningful patterns or trends for sent campaigns.                                                                                                                                                                                                                                           |
| **Internal Admin / ZAP Admin**       | An employee within ZAP-POST with access to the ZAP-APP                                                                                                                                                                                                                                                       |
| Margin                               | Shows the area in which content can be placed.                                                                                                                                                                                                                                                               |
| **Mail Sort**                        | Refers to the methods by which postal systems determine how and where to route mail for delivery                                                                                                                                                                                                             |
| **MFA (Multifactor Authentication)** | An authentication system that requires more than one distinct authentication factor for successful authentication.                                                                                                                                                                                           |
| **Paper Stock**                      | The size of paper used when printing ZAPs                                                                                                                                                                                                                                                                    |
| Postage Area                         | The postage area is an area locked for editing that contains the recipients address and mail sorting information.                                                                                                                                                                                            |
| **Print Partner**                    | A relationship with a trusted company that can print and mail your ZAPs                                                                                                                                                                                                                                      |
| Proofing                             | The process of reviewing and correcting a design.                                                                                                                                                                                                                                                            |
| Publishing                           | The process of signing off a design ready for print.                                                                                                                                                                                                                                                         |
| **Returned ZAPs**                    | ZAPs that have been returned by the receiver or Royal Mail                                                                                                                                                                                                                                                   |
| Safety Line                          | An area in which anything inside is guaranteed to be printed.                                                                                                                                                                                                                                                |
| **Scheduled Send**                   | A future date in which a clients campaign is due to be mailed                                                                                                                                                                                                                                                |
| **Seeds**                            | As a part of an advertising direct mail send there are a number of extra recipients added into the data. These extra recipients are known as ‘seeds’. These recipients are added for a number of different reasons: quality assurance, meeting mailing provider specifications, and to track delivery dates. |
| **Submission**                       | A submission is a collection of records that is submitted against a campaign. The submission will contain data specific to the campaign and will be paired with a Scheduled Send. If the records are Data Cleansed and Mail Sorted successfully they'll go into the Scheduled Send as intended.              |
| **Submission Records**               | A submission record contains the data for an individual the client is targeting for a direct mail campaign                                                                                                                                                                                                   |
| Trim Line                            | The line on which the paper stock is cut once printed.                                                                                                                                                                                                                                                       |
| **Umbraco**                          | Umbraco is an open-source content management system (CMS) that allows you to build responsive websites and data-driven apps which can be accessed from any device or browser.                                                                                                                                |
| Variable(s)                          | A data type can could be different for each recipient.                                                                                                                                                                                                                                                       |
| **ZAP**                              | A single piece of direct mail send via ZAP-POST to an individual                                                                                                                                                                                                                                             |
| **ZAP** **Credits**                  | The currency used within the ZAPP to manage sends and refunds                                                                                                                                                                                                                                                |
| **ZAP Overage**                      | Allows a client to send more ZAPs than their plan originally allowed                                                                                                                                                                                                                                         |
| **ZAPI**                             | The ZAP-POST API or ZAPI is the public facing API which can be used to provide automated submissions to the ZAP-POST platform.                                                                                                                                                                               |
| **ZAPP / ZAP APP**                   | <p>The ZAP-POST Web App or 'ZAPP' is the app that provides most of the ZAP-POST functionality. <br><br>This is the application that allows users to sign up to the platform, manage their campaigns, content and submissions. </p>                                                                           |
| **ZAP\~POST**                        | ZAP-POST Is an automated Direct Mail Platform intended to provide clients with the ability to send programmatically driven direct mail campaigns composed of bespoke content for each of their customers                                                                                                     |


# ZAP-POST API Documentation

This document is intended to serve as an integration guide for anyone working with the ZAP-POST API as part of their direct mail workflow.

Welcome to the  documentation for The ZAP-POST API (ZAPI)! Our API allows you to easily integrate direct mail campaigns into your application or workflow, automating the process of sending physical mail to your customers or prospects. With our API, you can quickly and easily create and send Postcards and other direct mail pieces called ZAPs.

Our ZAP POST Platform is designed to be flexible and easy to use, allowing you to customize your direct mail campaigns to meet the specific needs of your business. You can choose from a variety of sizes and formats for your direct mail pieces, and our API supports both individual and batch submissions.

In this documentation, you will find everything you need to get started with our API, including detailed API reference documentation, sample code snippets, and step-by-step tutorials to help you integrate our API into your application. Whether you're a developer building a new application or a marketer looking for an easier way to manage your direct mail campaigns, our  API has everything you need to simplify and streamline your direct mail processes.


# API URLs

The following URLs will show you the appropriate Swagger documentation should you view them in browser. The swagger docs can be downloaded directly there or from this documentation to us with tools such as Postman.&#x20;

| **Beta**       | <https://api-beta.zappost.com> |
| -------------- | ------------------------------ |
| **Production** | <https://api.zappost.com>      |


# Authentication

The ZAPI requires authentication credentials to be provided with every HTTP request. Applications can authenticate with the API using basic HTTP authentication over SSL. To obtain the required credentials, please visit the '[settings](https://app.zappost.com/management/accountsettings)' page in the ZAP APP under 'API Consumers'.&#x20;

To authenticate, use basic HTTP authorization, where the API key of the application is the API Key and the API password is the API password in the UI. Some HTTP clients allow for basic authentication by including the key:password in the URL hostname. For example:

POST 45634643FGDFGFDG:hfcdethuzzjhg54@'<https://api.zappost.com/>'

If your HTTP client does not support basic authentication using this method, you can provide the credentials in the Authorization header field. To do so, join the API key and API password with a single colon (:). Then, encode the resulting string in base64 representation and prepend the base64-encoded string with "Basic" and a space. The resulting string should be included in the Authorization header field, as shown below:

Authorization: Basic NDQ3OGViN2FjMTM4YTEzNjg1MmJhYmQ4NjE5NTZ...=

{% hint style="danger" %}
It's important to keep the authentication credentials secure and not share them with unauthorized users. Make sure to store the credentials securely and not hardcode them in your application code or config files.
{% endhint %}


# API Endpoints

1. ​[Campaigns ](/zap-api/api-endpoints/campaigns)- List campaigns and view campaign specific information or configuration
2. ​[Scheduled Sends](https://app.gitbook.com/o/j3sCcHTw7fXmpqup9TTi/s/jYJopZy4jSpzcf1NPU0w/api-endpoints/scheduledsends) - List the current scheduled send dates available in ZAP-POST
3. ​[Submissions ](/zap-api/api-endpoints/submissions)- Push data to the ZAP API and trigger your direct mail sends
4. ​[Rejected Records](/zap-api/api-endpoints/rejectedrecords) - Look up details for any records that have failed our data cleansing process
5. ​[Returned ZAPs ](/zap-api/api-endpoints/returnedzaps)- List any ZAPs that were unable to be posted and why


# Campaigns

Campaigns allow users to send direct mail based on a real time events or actions which is specific to an individual customer.\
Each campaign has it's own configuration of required data in order to trigger a relevant ZAP for example a an abandoned basket campaign might require a session ID and a list of products but a customer birthday might only expect the recipient info and a birthday date

Users can list all campaigns available in ZAP POST. This will provide some basic campaign information such as the name and current status.&#x20;

## GET /api/v1/campaigns

>

```json
{"openapi":"3.0.1","info":{"title":"ZAPI","version":"1.0.0"},"security":[{"Basic":[]}],"components":{"securitySchemes":{"Basic":{"type":"http","scheme":"basic"}},"schemas":{"CampaignDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"startDate":{"type":"string","format":"date-time","nullable":true},"duration":{"type":"integer","format":"int32","nullable":true},"zapLimit":{"type":"integer","format":"int32","nullable":true},"csvPath":{"type":"string","nullable":true},"enabled":{"type":"boolean","nullable":true},"status":{"type":"string","nullable":true},"paperStockId":{"type":"string","format":"uuid","nullable":true},"zapsSent":{"type":"integer","format":"int32","nullable":true},"archivedDate":{"type":"string","format":"date-time","nullable":true},"templateId":{"type":"string","format":"uuid","nullable":true},"sampleDataCsvBlobUrl":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/v1/campaigns":{"get":{"tags":["Campaigns"],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CampaignDto"}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"500":{"description":"Server Error"}}}}}}
```

Users can also look up a specific campaign which will include more detailed information regarding the custom field configuration on the campaign such as [expected values](#expected-values) and [validation expressions](#validation-expressions).&#x20;

## GET /api/v1/campaign/{campaignId}

>

```json
{"openapi":"3.0.1","info":{"title":"ZAPI","version":"1.0.0"},"security":[{"Basic":[]}],"components":{"securitySchemes":{"Basic":{"type":"http","scheme":"basic"}},"schemas":{"CampaignRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"startDate":{"type":"string","format":"date-time","nullable":true},"status":{"type":"string","nullable":true},"paperStockName":{"type":"string","nullable":true},"paperStockId":{"type":"string","nullable":true},"frontPublishedDesign":{"type":"string","nullable":true},"backPublishedDesign":{"type":"string","nullable":true},"fields":{"type":"array","items":{"$ref":"#/components/schemas/CampaignDetailsField"},"nullable":true}},"additionalProperties":false},"CampaignDetailsField":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"exampleValue":{"type":"string","nullable":true},"mandatory":{"type":"boolean"},"expectedValues":{"type":"array","items":{"type":"string"},"nullable":true},"validationExpressions":{"type":"array","items":{"$ref":"#/components/schemas/ValidationExpressionRequest"},"nullable":true}},"additionalProperties":false},"ValidationExpressionRequest":{"type":"object","properties":{"expression":{"type":"string","nullable":true},"message":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/v1/campaign/{campaignId}":{"get":{"tags":["Campaigns"],"parameters":[{"name":"campaignId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignRequest"}}}},"401":{"description":"Unauthorized"}}}}}}
```

### Useful Information

#### Campaign IDs are required for Submissions

Most of the time you'll be listing campaigns to find the ID of the appropriate campaign you wish to create a submission against or to check the progress of a historically created submission.&#x20;

#### Expected Values

Expected values are configured against fields on the campaign. If any expected values exist, then the API will only accept the values within that list. \
For example, I might configure a DayOfTheWeek field on my campaign. If I do this I may configure the expected values "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" and "Sunday". \
This is intended to provide some basic validation to clients configuring their campaigns.

#### Validation Expressions

Validations are regex expressions and paired messages. When a record is received against the campaign ZAP will validate that all validation expressions are passed. If any fail, a list of errors will be compiled with the relevant message configured for the validation expression. \
This piece of functionality provides more advanced validation as the regex expressions can get quite complex.&#x20;


# ScheduledSends

Schedule Sends, are the dates available for users to pair their submissions with. A submission that's paired with a scheduled send, will be mailed on that date landing with customers the day after.&#x20;

You can list the current scheduled sends available in ZAP-POST via the API and use the ID to pair the [submission ](broken://pages/e9GxSF4mVCBLkWKVemui)with the relevant send date

## GET /api/v1/ScheduledSends

>

```json
{"openapi":"3.0.1","info":{"title":"ZAPI","version":"1.0.0"},"security":[{"Basic":[]}],"components":{"securitySchemes":{"Basic":{"type":"http","scheme":"basic"}},"schemas":{"ScheduledSendDateRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"sendDate":{"type":"string","format":"date-time"},"paperStockName":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/v1/ScheduledSends":{"get":{"tags":["ScheduledSends"],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ScheduledSendDateRequest"}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"500":{"description":"Server Error"}}}}}}
```


# Submissions

Submissions are collections of records that are submitted against a campaign. \
The records are made up of the required recipient information and the relevant campaign specific fields that have been configured in the [ZAP APP](https://app.zappost.com)\
\
The POST endpoints allow users to submit either an entire self contained collection of records intended to be sent together on a specific date or they can submit individual records after an appropriate event has occurred.&#x20;

## Record Batching

Its very important to note that low volumes of records submitted to the ZAPI will be compiled into larger submissions at the end of each day. This is to reduce the total volume of submissions created against a campaign and make monitoring a much easier task for regularly scheduled campaigns. \
*This means you won't be able to query for any updates on records submitted until the day after submission when they've been batched.*&#x20;

{% hint style="info" %}
A common use case for the records endpoint would be to submit an individual record when a basket is abandoned for an e-com journey or for a customer quote request
{% endhint %}

## POST /api/v1/records

> For more information visit the \<a href="<https://userguide.zappost.com/zap-api/api-endpoints/submissions>" target="\_blank">documentation\</a>

```json
{"openapi":"3.0.1","info":{"title":"ZAPI","version":"1.0.0"},"security":[{"Basic":[]}],"components":{"securitySchemes":{"Basic":{"type":"http","scheme":"basic"}},"schemas":{"PartSubmissionRequest":{"required":["campaignId","scheduledSendId","submissions"],"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"onlyValidRecords":{"type":"boolean"},"scheduledSendId":{"type":"string","format":"uuid","nullable":true},"submissions":{"type":"array","items":{"type":"object","additionalProperties":{}},"nullable":true},"testMode":{"type":"boolean"}},"additionalProperties":false},"PartSubmissionResponse":{"type":"object","properties":{"validRecords":{"type":"array","items":{"type":"object","additionalProperties":{}},"nullable":true},"invalidRecords":{"type":"array","items":{"type":"object","additionalProperties":{}},"nullable":true},"duplicateIgnoredRecords":{"type":"array","items":{"type":"object","additionalProperties":{}},"nullable":true},"responseMessage":{"type":"string","nullable":true},"submissionId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false}}},"paths":{"/api/v1/records":{"post":{"tags":["PartSubmissions"],"description":"For more information visit the <a href=\"https://userguide.zappost.com/zap-api/api-endpoints/submissions\" target=\"_blank\">documentation</a>","requestBody":{"content":{"application/json":{"schema":{"required":["campaignId","scheduledSendId","submissions"],"allOf":[{"$ref":"#/components/schemas/PartSubmissionRequest"}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartSubmissionResponse"}}}},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Server Error"}}}}}}
```

{% hint style="info" %}
A common use case for the Submissions endpoint would be when adding a collection of related records such as a group of renewal reminders for a monthly send or a list of lapsed customers
{% endhint %}

## POST /api/v1/submissions

> For more information visit the \<a href="<https://userguide.zappost.com/zap-api/api-endpoints/submissions>" target="\_blank">documentation\</a>

```json
{"openapi":"3.0.1","info":{"title":"ZAPI","version":"1.0.0"},"security":[{"Basic":[]}],"components":{"securitySchemes":{"Basic":{"type":"http","scheme":"basic"}},"schemas":{"SubmissionRequest":{"required":["campaignId","submissions"],"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"onlyValidRecords":{"type":"boolean"},"scheduledSendId":{"type":"string","format":"uuid","nullable":true},"testMode":{"type":"boolean"},"submissions":{"type":"array","items":{"type":"object","additionalProperties":{}},"nullable":true}},"additionalProperties":false},"SubmissionResponse":{"type":"object","properties":{"validatedSubmissions":{"type":"array","items":{"type":"object","additionalProperties":{}},"nullable":true},"responseCode":{"type":"integer","format":"int32"},"responseMessage":{"type":"string","nullable":true},"submissionId":{"type":"string","format":"uuid","nullable":true},"invalidSubmissions":{"type":"array","items":{"type":"object","additionalProperties":{}},"nullable":true}},"additionalProperties":false}}},"paths":{"/api/v1/submissions":{"post":{"tags":["Submissions"],"description":"For more information visit the <a href=\"https://userguide.zappost.com/zap-api/api-endpoints/submissions\" target=\"_blank\">documentation</a>","requestBody":{"content":{"application/json":{"schema":{"required":["campaignId","submissions"],"allOf":[{"$ref":"#/components/schemas/SubmissionRequest"}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResponse"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"}}}}}}
```

## Useful information

### Test Mode

Test model enables you to create submissions in our production environment to test your API requests. \
These submissions will be created in the ZAP APP as if they were a normal submission so you can check that everything works however these submissions will not be included in any real mail sends and you will not incur any submission / ZAP credit costs.\
To use test mode set the testMode property to true when sending the request.&#x20;

### Scheduled Send Date selection

Any records or submissions sent to the ZAP API will be automatically included on the soonest available scheduled send if one is not specified. Unless you wish to use a specific send in the future it's most likely you don't need to specify the scheduled send on the request.

### The OnlyValidRecords property

When creating a submission users have the option to set 'OnlyValidRecords' to true or false. When true the records in the submission will only be accepted if every record is valid. If 'OnlyValidRecords' is set to false, then any records that pass validation will be accepted and any that fail will not and will be returned in the usual response format detailing the validation failures.&#x20;

### Expected Values

Expected values are configured against fields on the campaign. If any expected values exist, then the API will only accept the values within that list. \
For example, I might configure a DayOfTheWeek field on my campaign. If I do this I may configure the expected values "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" and "Sunday". \
Any records that fail because of an expected value will have the list of valid values returned in the error provided on submission.

### Validation Expressions

Validations are regex expressions and paired messages. When a record is received against the campaign ZAP will validate that all validation expressions are passed. If any fail, a list of errors will be compiled with the relevant message configured for the validation expression. \
This piece of functionality provides more advanced validation as the regex expressions can get quite complex.&#x20;

### Custom Data

The custom data object is used for custom fields that are created for a campaign. Each customField property should match the 'label' given to the matching custom field. Querying the GET campaign/{CampaignId} endpoint will return a list of all custom fields for the campaign.

### Records endpoint duplicate customer ids within separate submissions:

We now support people submitting the same customer id more than once over separate requests to the "/records" endpoint. As a submission will only allow a single customer id, we will retain the data for the first record with that customer id and return a new "duplicateIgnoredRecords" object on any following requests that lists any records from the current submission that have not been accepted due to duplicates.

### Default Field Validation

<table><thead><tr><th width="139">Property</th><th width="120">Mandatory</th><th width="327">ErrorMessage</th><th>Max Text Length</th></tr></thead><tbody><tr><td>CustomerId</td><td>Yes</td><td>Must be unique</td><td>100</td></tr><tr><td>Email</td><td>No</td><td> be in standard email address format.</td><td>255</td></tr><tr><td>Company Name</td><td>No*</td><td>Must be alphanumeric, space, -, (, ), full-stop and ' only.</td><td>120 total**</td></tr><tr><td>Salutation</td><td>No*</td><td>Must be alphanumeric, full-stop and space only.</td><td>120 total**</td></tr><tr><td>Firstname</td><td>No*</td><td>Must be alphanumeric, space, -, (, ), full-stop and ' only.</td><td>120 total**</td></tr><tr><td>Surname</td><td>No*</td><td>Must be alphanumeric, space, -, (, ), full-stop and ' only.</td><td>120 total**</td></tr><tr><td>Address1</td><td>No***</td><td>Must contain alphanumeric, space, ', ., &#x26;, -, /, \, ), ( and , characters only.</td><td>150 total****</td></tr><tr><td>Address2</td><td>No***</td><td>Must contain alphanumeric, space, ', ., &#x26;, -, /, \, ), ( and , characters only.</td><td>150 total****</td></tr><tr><td>Address3</td><td>No***</td><td>Must contain alphanumeric, space, ', ., &#x26;, -, /, \, ), ( and , characters only.</td><td>150 total****</td></tr><tr><td>City</td><td>No***</td><td>Must contain alphanumeric, space, ', ., &#x26;, -, /, \ and , characters only.</td><td>150 total****</td></tr><tr><td>Postcode</td><td>No***</td><td>Must be alphanumeric, - and spaces only.</td><td>150 total****</td></tr><tr><td>Country</td><td>Yes</td><td>Must contain letters, space, -, (, ), full-stop, &#x26; and ' only.</td><td>255</td></tr><tr><td>Currency</td><td>No</td><td>Must contain letters only.</td><td>3</td></tr><tr><td>Language</td><td>No</td><td>Must contain letters only.</td><td>10</td></tr></tbody></table>

\* The delivery name cannot be null, some combination of Salutation, First Name, Surname and Company Name is required.

\*\* Since the name can be comprised of multiple fields the 120 character maximum applies cumulatively across the following fields Salutation, First Name, Surname and Company name

\*\*\* We will allow you to submit any combination address fields however we do require an address to deliver to. Your submission can be made up or one of more of the following fields: Address1, Address2, Address3, City, Postcode. \
Since some of our clients don't usually hold customer addresses, their data isn't always standardised. This makes it easier to submit the data you do have and we'll do the clean up.&#x20;

\*\*\*\* Since the name can be comprised of multiple fields the 150 character maximum applies cumulatively across the following fields: Address1, Address2, Address3, City, Postcode


# RejectedRecords

Rejected records are the records which were sent to ZAP-POST via the API which have subsequently failed our data cleansing process.\
\
Data cleansing is the process of checking the accuracy of records using the Postcode Address File as well as a database of Deceased or Gone Away recipients. Data filtering, PAF check and data cleansing is all included as part of the ZAP-POST process.

## GET /api/v1/RejectedRecords/{submissionId}

>

```json
{"openapi":"3.0.1","info":{"title":"ZAPI","version":"1.0.0"},"security":[{"Basic":[]}],"components":{"securitySchemes":{"Basic":{"type":"http","scheme":"basic"}}},"paths":{"/api/v1/RejectedRecords/{submissionId}":{"get":{"tags":["RejectedRecords"],"parameters":[{"name":"submissionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Server Error"}}}}}}
```

### Useful information

#### Cleanse reports are also available via the [ZAP APP](https://app.zappost.com)

As part of the data cleansing process, we provide all clients with a 'Cleanse Report' at the end of each campaign. This report will highlight any records from the original submission that failed a PAF, deceased or gone away check.&#x20;


# ReturnedZaps

Returned ZAPs are mailings that were successfully sent but returned because the carrier couldn't physically deliver them for some reason. \
We will log any ZAPs returned as well as the reason they weren't delivered if the carrier provides one. This information can be retrived on a submission level via the following endpoint.&#x20;

## GET /api/v1/RejectedRecords/{submissionId}

>

```json
{"openapi":"3.0.1","info":{"title":"ZAPI","version":"1.0.0"},"security":[{"Basic":[]}],"components":{"securitySchemes":{"Basic":{"type":"http","scheme":"basic"}}},"paths":{"/api/v1/RejectedRecords/{submissionId}":{"get":{"tags":["RejectedRecords"],"parameters":[{"name":"submissionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Server Error"}}}}}}
```

Records that are submitted against campaigns with  dynamic images have their own rejection batching to make it easier to resolve any image related issues and resubmit the data.&#x20;

## GET /api/v1/RejectedRecords/DynamicImages/{submissionId}

>

```json
{"openapi":"3.0.1","info":{"title":"ZAPI","version":"1.0.0"},"security":[{"Basic":[]}],"components":{"securitySchemes":{"Basic":{"type":"http","scheme":"basic"}}},"paths":{"/api/v1/RejectedRecords/DynamicImages/{submissionId}":{"get":{"tags":["RejectedRecords"],"parameters":[{"name":"submissionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Server Error"}}}}}}
```


# ZAP-POST Integrations

ZAP\~POST has two distinct sets of integrations available in the app.&#x20;

**ZAP\~POST Integrations:** These are the integrations developed and maintained by the ZAP-POST team.&#x20;

**Third Party Integrations:** These are integrations that are developed and maintained by one or more third parties.&#x20;

<figure><img src="/files/EDUzNS8f1RHLHyodp1Lc" alt=""><figcaption></figcaption></figure>

### ZAP-POST Integrations

{% content-ref url="/pages/YtM8XRAJipE44Xovfsyo" %}
[Bloomreach](/zap-integrations/zap-post-integrations/bloomreach)
{% endcontent-ref %}

{% content-ref url="/pages/CX8srkwF7jN00vZMGvNu" %}
[Klaviyo](/zap-integrations/zap-post-integrations/klaviyo)
{% endcontent-ref %}

{% content-ref url="/pages/xGqrGx6ygcJ8zIldLFrf" %}
[Dotdigital](/zap-integrations/zap-post-integrations/dotdigital)
{% endcontent-ref %}

{% content-ref url="/pages/39qfBBvRXPWZjxmaPX1m" %}
[HubSpot](/zap-integrations/zap-post-integrations/hubspot)
{% endcontent-ref %}

{% content-ref url="/pages/7oZVjukw1EsBrlba9vDs" %}
[Ometria](/zap-integrations/zap-post-integrations/ometria)
{% endcontent-ref %}

{% content-ref url="/pages/uA7TfSE8Me8SBoEADEfP" %}
[Adestra](/zap-integrations/zap-post-integrations/adestra)
{% endcontent-ref %}

{% content-ref url="/pages/WMNXtGrCRkpb5apcsHNQ" %}
[Braze](/zap-integrations/zap-post-integrations/braze)
{% endcontent-ref %}

{% content-ref url="/pages/HFMIf5DrQVMCwYbv6scs" %}
[Shopify](/zap-integrations/zap-post-integrations/shopify)
{% endcontent-ref %}


# Bloomreach

Connect Bloomreach Engagement to ZAP\~POST to send direct mail from scenarios and track delivery/scan events on profiles.

<figure><img src="/files/C7LPFLKTqBBkOKcObl9Z" alt=""><figcaption></figcaption></figure>

Use Bloomreach Engagement (formerly Exponea) with ZAP-POST in two directions:

### 1) Push recipient data from Bloomreach to ZAP-POST

Use Bloomreach scenarios to send customer and address data via webhooks. ZAP-POST creates a submission against your campaign.

* Start here: [Pushing Data to ZAP\~POST with Bloomreach Scenarios](/zap-integrations/zap-post-integrations/bloomreach/pushing-data-to-zap-post-with-bloomreach-scenarios)

### 2) Write ZAP-POST events back to Bloomreach profiles

When ZAP-POST processes mail, it can create events on Bloomreach profiles. Typical events include submission created, mail rejected, mail sent, mail returned, and QR scans.

* Install and connect: [Installation Guide](/zap-integrations/zap-post-integrations/bloomreach/populating-bloomreach-with-zap-post-events/installation-guide)
* Then configure events: [Populating Bloomreach with ZAP\~POST Events](/zap-integrations/zap-post-integrations/bloomreach/populating-bloomreach-with-zap-post-events)
* Event payload reference: [ZAP\~POST Events in Bloomreach](/zap-integrations/zap-post-integrations/bloomreach/populating-bloomreach-with-zap-post-events/zap-post-events-in-bloomreach)

{% hint style="info" %}
Most teams use both directions: scenarios to trigger mail, then profile events to measure and automate follow-ups.
{% endhint %}


# Pushing Data to ZAP-POST with Bloomreach Scenarios

<figure><img src="/files/C7LPFLKTqBBkOKcObl9Z" alt=""><figcaption></figcaption></figure>

Bloomreach Engagement can integrate with ZAP-POST. This guide explains how to set up the integration with ZAP-POST and provides two use cases as examples of how to use ZAP-POST with Bloomreach Engagement.

### Setup process

You'll need to create ZAP-POST API credentials. API credentials allow authentication for incoming webhook requests.

To create an API key:

1. In the ZAP-POST app, click `Settings` > `Api Consumers`.
2. Click `Add New Consumer`.
3. Fill in the `Consumer Name` field with a name you want it to have.
4. Make sure you **Enable** the Consumer.
5. Click `Generate New Keys`.
6. Copy the key and password and store them safely for later use.
7. Finish by clicking `Create Consumer`.

<figure><img src="/files/T6QJdmguFLiFt1YaKLdr" alt="Create an API Consumer in the Zap App"><figcaption></figcaption></figure>

### Configure webhook authentication

In Bloomreach Engagement, configure the [webhook authentication](https://documentation.bloomreach.com/engagement/docs/webhooks#http-authentication-schemas) for ZAP-POST so that data can be passed securely in the webhook request. You will use this webhook authentication while creating a scenario in a later step.

To configure webhook authentication:

1. In Bloomreach Engagement, open `Data & Assets` > `Integrations`.
2. Click `Add new integration` > `HTTP Authentication Schemas` > `Add integration`.
3. Edit the name of the Integration - so anyone knows it is for your ZAP-POST account.
4. In `Endpoint`, enter the ZAP-POST API base URL:\
   `https://api.zappost.com`
5. Make sure you select the `Basic Authentication` method.
6. Enter the following:\
   `Username`:\
   The Api Key from ZAP-POST created in the Setup process\
   `Password`:\
   The Api Password from ZAP-POST created in the Setup process.

<figure><img src="/files/Q4S6HOAebqwaCzshDFgu" alt=""><figcaption></figcaption></figure>

Test the integration - when it is all setup properly, the authentication will be successful.

Go ahead and click: `Save integration`.

<figure><img src="/files/v9VIxsgrIGTJnTnYO4G1" alt=""><figcaption></figcaption></figure>

**Use case**

In Bloomreach, we provide an Action webhook preset option for working with ZAP-POST. This preset is available for an endpoint: `/api/v1/records` - **ZAP-POST Individual Post preset**.

Imagine you're running an online store, and sometimes customers put items in their shopping cart but don't complete their purchase. When this happens, you may want to let ZAP-POST know about these abandoned carts so personalized messages can be mailed to customers. You can use the **ZAP-POST Individual Post** preset for this.

However, it's important to understand that this is physical mail, ZAP-POST doesn't send each one individually right away. Instead, ZAP-POST waits until the end of the day and then sends them all together as a single batch. This helps keep things organized and makes it easier to keep track of what's going on. So, if you're looking for updates in your ZAP-POST account on these abandoned carts, you'll need to wait until the day after you've reported them when they've been grouped together.

In a nutshell, the **ZAP-POST Individual Post** preset is for individual pieces of information.

#### Example

In your [scenario](https://documentation.bloomreach.com/engagement/docs/scenarios-1), you can use a combination of [operators](https://documentation.bloomreach.com/engagement/docs/scenarios-1#operators) and [actions](https://documentation.bloomreach.com/engagement/docs/scenarios-1#actions) to send zaps using ZAP\~POST to relevant users based on custom conditions.

When using the **ZAP-POST Individual Post** action, you can also catch error responses returned by this Action node and update your account data or notify your team to check the address of customer, or notify the customer via other channels - email & sms - to update their postal address. You should also remove invalid addresses from future submissions - either via consent revocation or adding a flag to the customer record signifying the postal address is not valid until corrected.

**Prerequisites**

* ZAP-POST
  * You understand the only parameter required by the [Submissions API endpoints](https://documentationhub.zappost.com/v/zap-post-api-documentation/api-endpoints/submissions), which is a valid campaign ID.
* Bloomreach Engagement
  * You know your audience and scenario execution requirements.
  * You have collected and are storing relevant customer properties, e.g. postal address, in the [Data Manager](https://documentation.bloomreach.com/engagement/docs/data-manager).

**Create a scenario**

Let's create [a scenario](https://documentation.bloomreach.com/engagement/docs/scenarios-1) to automate the communication with your users based on custom conditions.

Specifically, you will use [an action](https://documentation.bloomreach.com/engagement/docs/scenarios-1#actions) to send a webhook request to ZAP-POST to send a Zap. For that you will use webhook presets that are created specifically the Bloomreach integration with ZAP-POST.

{% hint style="info" %}
📘 Your scenario path may vary from the following steps depending on the actions you decide to implement and the dynamic data you choose to include in your user communication. See [Personalization Using Jinja](https://documentation.bloomreach.com/engagement/docs/personalization-using-jinja).
{% endhint %}

To create a scenario in Bloomreach Engagement:

1. In Bloomreach Engagement, open `Campaigns` > `Scenarios` > `Create new`.
2. (Optional) Click the edit symbol in the scenario name to change it.
3. Create and configure the [triggers](https://documentation.bloomreach.com/engagement/docs/scenarios-1#triggers) and [operators](https://documentation.bloomreach.com/engagement/docs/scenarios-1#operators) that best suit your campaign needs.
4. Create [an action](https://documentation.bloomreach.com/engagement/docs/scenarios-1#actions) with the webhook request to ZAP-POST.

   * [ ] In `Scenario` select `Other` > `ZAP~POST Individual Post`.
   * [ ] In the `Settings` tab of the action:
     1. Enable `Authentication` and select the authentication you created.
     2. In `Other`, select the required [consent category](https://documentation.bloomreach.com/engagement/docs/consent-categories) for your users.
   * [ ] In the `Parameters` tab of the action fill in the parameters. In this example, the Campaign ID looks like `46761c11-ec52-ee11-9937-6045bdd0c438`. This parameter is required and can be found in the URL on the Campaign Edit page in ZAP-POST.

     Click `Campaigns` → `Edit Zap design` to find the Campaign ID in the URL.

   <figure><img src="https://files.readme.io/1a45664-image5.png" alt=""><figcaption><p>Get the Campaign ID from ZAP-POST</p></figcaption></figure>

   \
   The webhook will be sent even with only Campaign ID and will return code 200, which signals success. However, there will be no information sent to the campaign. You need to customize the customer properties category. There are mandatory properties like, for example, Customer ID and not mandatory, for example, Address 3. Read tooltips by hovering with a cursor over the 'i' and refer to the [Submissions endpoint reference](https://documentationhub.zappost.com/v/zap-post-api-documentation/api-endpoints/submissions#useful-information).
5.

```
After an abandoned cart for a day, you can send a zap to all people who didn't complete their purchase in a day. For that, we will use the "ZAP\~POST Individual Post" preset.
```

<figure><img src="/files/EjycldxDyRShC3umT604" alt=""><figcaption></figcaption></figure>

1. Make sure you customize customer properties because otherwise, no data will be sent in both examples. You can either modify values in the parameters tab or directly modify JSON.\
   Customer properties that are required:
   * [ ] `CustomerId` - Must be unique
   * [ ] `Firstname` - Must be alphanumeric, space, -, (, ), full-stop and ' only.
   * [ ] `Surname` - Must be alphanumeric, space, -, (, ), full-stop and ' only.
   * [ ] `Address1` - Must contain alphanumeric, space, ', ., &, -, /, \\, ), ( and , characters only.
   * [ ] `Postcode` - Must be alphanumeric, - and spaces only.
   * [ ] `Country` - Must contain letters, space, -, (, ), full-stop, & and ' only.

For more information visit the [ZAP POST Documentation](https://documentationhub.zappost.com/v/zap-post-api-documentation/api-endpoints/submissions#useful-information).

Click `Save`.

### Submissions endpoint

ZAP-POST also provides an `/api/v1/submissions` endpoint, which does almost the same thing as the `/api/v1/records` endpoint.

Suppose you want to send a list of reminders for customers whose subscriptions expire soon or a reactivation campaign for customers who last purchased a while ago. You'd use the `/api/v1/submissions` endpoint in that case.

In a nutshell, the `/api/v1/records` endpoint is for individual pieces of information, like abandoned shopping carts, while the `/api/v1/submissions` endpoint is for sending collections of related information, like lists of reminders or lapsed customers.

If you want to use the `/api/v1/submissions` endpoint, use the **ZAP-POST Individual Post** preset and modify it as shown below.

This is an editor part of the "ZAP-POST Individual Post":

<figure><img src="/files/xj6jJhDawibrlHLHrD5A" alt=""><figcaption></figcaption></figure>

This is how it should be changed:

<figure><img src="/files/XFqWRZDimEQ1btmiefTa" alt=""><figcaption></figcaption></figure>

1. Click on the `Editor` tab.
2. Change `Endpoint` into `/api/v1/submissions`.
3. Click on the `Batch webhook` button and then on the `Turn on and reset template`.
4. Copy and paste everything from the original `Payload` to the `Root` part and then change the inside of the "submissions" in the square brackets to:\
   `{{ customers | join(",") }}`
5. Copy and paste the inside of the original "submissions" without the square brackets into the `Customer` part

**Next steps**

Before you launch your scenario, you can test and preview the complete workflow in the `Test` tab. When you click `Start`, you will see a confirmation window indicating how many customers will be affected by the scenario run.Set the frequency of data collection.

* Map to ZAP\~POST Campaign.
* Map any custom fields you have set up in the ZAP\~POST Campaign.
* Bloomreach Contacts are updated to record recipients who have/have not received a ZAP.
* Any returns (undeliverables) are updated on Bloomreach on a daily basis.

{% hint style="info" %}
Integration to Bloomreach Engagement can be self-service but if you need any help, ZAP\~POST support will assist and manage the setup where required, at no additional cost. Start a web chat from within the app, or send an email to <support@zappost.com>
{% endhint %}


# Populating Bloomreach with ZAP-POST Events

Whenever ZAP-POST receives a submission and the Bloomreach integration is enabled, then it will try to create the relevant events on your Bloomreach profiles. \
In order to do this, the data submitted to ZAP-POST must contain an identifier which can be used to track down your Bloomreach profiles.&#x20;

<figure><img src="/files/OnJNC4fV9Hke6Z4HfphY" alt=""><figcaption></figcaption></figure>

Once these events are being populated on your customers you can configure your own scenarios to handle situations such as malformed delivered addresses or QR code scans.&#x20;


# Installation Guide

This guide walks you through connecting Bloomreach Engagement to ZAP-POST.

### Prerequisites

You’ll need these values from Bloomreach:

1. Project token
2. Project ID (if shown separately)
3. API base URL
4. API key ID
5. API secret

If you don’t see a separate Project ID in Bloomreach, you can skip it.

<figure><img src="/files/yRQgrehEDpPnLGsHt5Hy" alt="Bloomreach API access values"><figcaption></figcaption></figure>

{% hint style="warning" %}
Your Bloomreach API key must have permission to create new events.
{% endhint %}

### Get your Bloomreach API credentials

1. Sign in to Bloomreach Engagement: <https://engagement.bloomreach.com/>.
2. Open `Settings` and select `Project settings`.

<figure><img src="/files/XSWFNfdDlfH7RfBHxLFL" alt="Bloomreach project settings"><figcaption></figcaption></figure>

3. Go to `Access Management` → `API`.

<figure><img src="/files/XOqNqXbKZsvMVDX5d4qx" alt="Access Management > API"><figcaption></figcaption></figure>

4. Add a new API key and give it a name.

<figure><img src="/files/QOam5KeO9x1ZUWGhJ3p5" alt="Create a new API key"><figcaption></figcaption></figure>

5. Click `Create`, then copy:
   * API key ID
   * API secret (shown once)

<figure><img src="/files/BJ9eUpUL3TdXsAab35OD" alt="Copy API key ID and secret"><figcaption></figcaption></figure>

6. Confirm the API key has permissions to set/create events.

<figure><img src="/files/bICczALLEOnelK9f1Q6M" alt="API key permissions"><figcaption></figcaption></figure>

7. Copy the project token, project ID (if shown), and API base URL from the same screen.

<figure><img src="/files/C8EIavJ9X0ok2gqbeR3b" alt="Project token and base URL"><figcaption></figcaption></figure>

### Connect Bloomreach in the ZAP-POST app

1. Sign in to ZAP-POST: <https://app.zappost.com/>.
2. From the Dashboard, open `Integrations`.

<figure><img src="/files/vfW00EtwjiUku0RCbO56" alt="Integrations tile on the dashboard"><figcaption></figcaption></figure>

3. Select the Bloomreach tile.

<figure><img src="/files/wXPg0d1uFGm1v4rD7rkX" alt="Bloomreach integration tile"><figcaption></figcaption></figure>

4. Enter the Bloomreach values you gathered earlier. Each field matches the label shown in Bloomreach API access settings.

<figure><img src="/files/kt6XERd1cudD8HBnm3Ih" alt="Enter Bloomreach credentials in ZAP~POST"><figcaption></figcaption></figure>

5. Click `Connect`. ZAP-POST tests the credentials and confirms the connection.

{% hint style="info" %}
To disable the integration later, click `Disconnect` on the same screen.
{% endhint %}

<figure><img src="/files/IZZ89hPXw7ZI0BWVlMwl" alt="Disconnect Bloomreach integration"><figcaption></figcaption></figure>


# How profiles are identified for event population

In order to update a profile in Bloomeach with events, ZAP-POST must be able to find the user profile. \
In order to achieve this we will pair up any CustomerIDs provided to ZAP-POST with the Registered ID in ZAP-POST.&#x20;

{% hint style="danger" %}
If these two values **DO NOT MATCH**, then the profile will not be updated.&#x20;
{% endhint %}

<figure><img src="/files/ME2Lwgd7hU0jryqeZZaM" alt=""><figcaption></figcaption></figure>


# ZAP-POST Events in Bloomreach

Reference for the ZAP-POST events sent to Bloomreach profiles, including event names and payload fields.

When Bloomreach profiles are processed through ZAP-POST, they are updated with events to keep you informed of any changes.\
\
Below you can see the data contained in each event that ZAP-POST will publish as well as an example event as seen in Bloomreach

### Submission Creation - Added when the profile is received into ZAP-POST

```
Event Name: ZAP#POST Submission Created

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP#POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
```

### Direct Mail Rejected - Added if the profiles address fails postage address checks

```
Event Name: ZAP~POST Direct Mail Rejected

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
RejectedDate(UTC): The date the record was rejected
```

### Direct Mail Sent - Add when the ZAP has been sent

```
Event Name: ZAP~POST Direct Mail Sent

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
```

### QR Code Scan - Added if a recipient scans a QR code on the ZAP

```
Event Name: ZAP~POST QR Code Scan

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
ScanDate(UTC): The date the QR code was scanned
ScanTime(UTC): The time the QR code was scanned
DestinationURL: The URL the recipient was directed to
```

### Direct Mail Returned - Added if the ZAP is returned to sender

```
Event Name: ZAP~POST Direct Mail Returned

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
ReturnedDate(UTC): The date the returned Zap was received to sender 
```

Events are created automatically and can be viewed on user profiles.\ <br>

<figure><img src="/files/tAynDgXPPzT1jMiPXqHv" alt=""><figcaption></figcaption></figure>


# Klaviyo

Connect Klaviyo to ZAP-POST to send direct mail for targeted customer segments and track ZAP-POST mailing events on profiles.

<figure><img src="/files/yudVts95neBFZzatKqw3" alt=""><figcaption></figcaption></figure>

Summary functionality:<br>

* Collect recipient data from Klaviyo Lists and Segments.
* Map to ZAP-POST Campaign.
* Map any custom fields you have set up in the ZAP-POST Campaign.
* Events are added to Klaviyo profiles.

Integration to Klaviyo is directly available from your ZAP-POST account, once signed in.

When a campaign is created, connect Recipient data via “Data Sources” from within the app, you will be directed to Klaviyo to authorise the integration.&#x20;

Set up is self-service whilst ZAP-POST’s “Tech-Sherpas” will assist and manage the set up where required, at no additional cost. Alternatively, watch the [video](https://zappost.com/academy/lessons/how-to-use-our-klaviyo-integration/).

{% hint style="info" %}
Integration to Klaviyo can be self-service but if you need any help, ZAP-POST support will assist and manage the setup where required, at no additional cost. Start a web chat from within the app, or send an email to support\@zappost. Alternatively, watch the instructional [video](https://zappost.com/academy/lessons/how-to-use-our-klaviyo-integration/).
{% endhint %}


# Installation Guide

### Set up the Integration in the ZAP-POST app

see the steps below, or watch the [video](https://zappost.com/academy/lessons/how-to-use-our-klaviyo-integration/)

1. Log into the app at [zappost.com](https://app.zappost.com/)
2. From the Dashboard click on the Integrations tile
3. Here you will see a tile to add Klaviyo

<figure><img src="/files/FpMcLJLH6E9kseddypeK" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/W8RqYwggUts2Pfy9zu5k" alt=""><figcaption></figcaption></figure>

4. Click **Connect.** This will direct you to Klaviyo's permissions page, click **Allow** to give ZAP-POST access to the necessary information to integrate with Klaviyo.

<div align="left"><figure><img src="/files/Fd8bCdAxOOYEJqU58ULr" alt=""><figcaption></figcaption></figure></div>

5. You will be redirected back to ZAP-POST, and you will see your Klaviyo Site ID with a status of **Connected**
6. You are all set, your Klaviyo account is integrated with ZAP-POST. In order to ingest list and segment data see our [Use case how-to guide](broken://pages/RF5Qrlndg8xajN5Zlmny)


# Data References

### Klaviyo Terms

<table data-full-width="true"><thead><tr><th>Term</th><th>Definition</th><th>Usage</th></tr></thead><tbody><tr><td>Tracking</td><td>The process of capturing customer actions and events, such as email opens, clicks and purchases</td><td>Implemented through Klaviyo’s Track API to log both built-in and custom events.</td></tr><tr><td>Metrics</td><td>Specific actions or events taken by customer that are tracked within Klaviyo, like "Placed Order"</td><td>Custom Metrics in Klaviyo: This feature enables the tracking and utilisation of custom metrics within Klaviyo by leveraging the Klaviyo Track API. Users can create specific events unique to their business, such as product reviews or other customer actions, which are not covered by Klaviyo's built-in metrics. These custom events can trigger automated workflows and personalised marketing campaigns within Klaviyo.</td></tr><tr><td>Profiles</td><td>Detailed records of individual customers, including contact information, preferences, and behaviour history</td><td>Used for segmentation, personalisation, and targeted marketing campaigns.</td></tr><tr><td>Lists</td><td>Static collections of profiles, usually created manually or through an import process</td><td>Used for sending one-time campaigns or emails to a specific group of contacts.</td></tr><tr><td>Segments</td><td>Dynamic groups of profiles that meet certain criteria, automatically updating as customer data changes</td><td>Used for targeted marketing campaigns based on behaviour, demographics, purchase history, etc.</td></tr><tr><td>Flows</td><td>Automated workflows that send messages or perform actions based on specific triggers, such as metrics.</td><td>Used to create multi-step, automated marketing campaigns like welcome series.</td></tr><tr><td>Campaigns</td><td>One-time email or SMS messages sent to a list or segment of contacts.</td><td>Used for promotions, newsletters, announcements, and other time-sensitive communications.</td></tr></tbody></table>

### ZAP-POST Terms

| Term             | Definition                                                                                                                                    | Usage                                                                                                                                                                                                                                                              |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Campaign         | A Campaign is made up of a name, fields, paper stock, content and submissions. It can be reused multiple times for multiple Direct Mail Sends | Used to create designs and associated records for physical mailing                                                                                                                                                                                                 |
| Submission       | A submission is a collection of records that is submitted against a campaign                                                                  | The submission will contain data specific to the campaign and will be paired with a Scheduled Send.                                                                                                                                                                |
| Record           | Contains the data for an individual customer the client is targeting for a campaign                                                           | Recipient data such as first name, last name and address details for an end user. Records can go through a Cleanse process                                                                                                                                         |
| Data Connections | Shows when a list and/or segment are connected to a campaign                                                                                  | This shows all campaigns that're connected to either a list or a segment. Multiple lists and segments can be connected to a campaign                                                                                                                               |
| Sync History     | Logs when ZAP-POST has ingested data from Klaviyo                                                                                             | Can be use to see when ZAP-POST ingests data from a list or segment as well how many profiles are received                                                                                                                                                         |
| PAF              | As part of address processing, ZAP-POST takes the records you've submitted and uploads them to the Postcode Address File aka PAF              | The UK Postcode Address File (PAF) is a database that contains all known 'delivery points' and postcodes in the United Kingdom. The 'delivery points' held on the PAF are routing instructions used by Royal Mail to sort and deliver mail quickly and accurately. |
| Cleanse          | Deceased and gone away checks are included as part of ZAP-POST's data cleansing process.                                                      | These checks are performed against a list of 3rd party services/agencies such as The Bereavement Register and Mailing Preference Service                                                                                                                           |


# How to Pair Klaviyo Customer Segments with ZAP Campaigns

In order to ingest Profiles from your Klaviyo List or Segment, you need to ensure you have a campaign created and a design published, see our [ZAP-POST User Guide](https://userguide.zappost.com/zap-post-user-guide/zapp/using-the-zapp/campaigns) for a detailed walk through.

1. From the Campaign Management screen, click the data upload option and then select **New Data Connection**&#x20;

<figure><img src="/files/isRmBLo7n4UzSNhni0XG" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/yEiBCSHycfhhuDsNvnuT" alt=""><figcaption></figcaption></figure>

2. Select the Klaviyo tile as your data connection
3. Using the table, find the List or Segment you want to use and click the connect icon

<figure><img src="/files/hzxkvmJ6O1PUy6PfTYtq" alt=""><figcaption></figcaption></figure>

4. Confirm your field mapping, on the left you'll see the ZAP-POST Campaign fields, using the drop down you can map them to your Klaviyo Profile fields.

<figure><img src="/files/ac9DpaKW0Qwbp4mFVAwR" alt=""><figcaption></figcaption></figure>

5. Once confirmed, you'll see a confirmation that the List or Segment has been connected.&#x20;

{% hint style="info" %}
Note

ZAP-POST will immediately ingest all records once for a list and create a submission, Segments are ingested based on your configured polling frequency, which is available in the Klaviyo app settings.&#x20;
{% endhint %}

6. After ZAP-POST has cleansed your data and posted your Zaps, we'll automatically update your Klaviyo profiles with an updated address, if you don't want this this happen you can turn it off in **Settings** which are explained [here](/zap-integrations/zap-post-integrations/klaviyo/managing-your-klaviyo-integration)**.**

<figure><img src="/files/vPi8GjyQdWq1HBog101H" alt=""><figcaption></figcaption></figure>


# Managing your Klaviyo Integration

## Accessing Klaviyo Settings

In order to access the integration settings you can navigate to Integrations via the nav bar, then select the Klaviyo integration

<figure><img src="/files/KSD1fAJNOCEhN2AZ4B22" alt=""><figcaption><p>ZAP-POST Integration UI</p></figcaption></figure>

From there you will see a list of the settings options available\
\
**Integration Status:** Shows the connection status of the Klaviyo account paired with ZAP-POST

**Data Connections**: Allows users to manage the campaign data connection, pairing lists & segment profiles with ZAP Sends.&#x20;

**Sync History:** This will show details of any data ingestion events that have occurred as part of the integration

**Settings**: Change the sync frequency and address correction options

**Logs**: View API logs from Klaviyo and ZAP-POST for troubleshooting and data auditing purposes.

<figure><img src="/files/9uY0Bx7ewvL1QR8QxTi4" alt=""><figcaption><p>Integration Settings Tabs</p></figcaption></figure>

### Integration Status

The integration status will detail how many Klaviyo accounts that are paired with your ZAP-POST account, showing the connection status and allowing users to disconnect the Klaviyo instance. \
\
Disconnecting this integration will also remove any data connections you currently have setup for the integration.

<figure><img src="/files/2KleU515DgLMQrlxwcAi" alt=""><figcaption><p>Integration Status table</p></figcaption></figure>

### Data Connections

This page shows your Zap campaigns that have data connections and offers several key pieces of information and functionality when it comes to the Klaviyo integration.\
\
It will show which Klaviyo segments or lists are currently configured with your ZAP Campaigns showing key information such as: \
\
Connected Data, Connect Name, Connection Type, Last Submission Date and status. All dates are displayed in UTC (Coordinated Universal Time).

#### Sync Connection

The sync connections button allows users to bypass the scheduled ingestion and manually trigger an immediate ingestion event. This will cause the connection to compile any contained profiles into a ZAP Submission using the campaigns published artwork which will be processed and mailed.&#x20;

<figure><img src="/files/T50nKGLVWge5RqV5kRm7" alt=""><figcaption><p>Data Connections Table with sync button highlighted</p></figcaption></figure>

<figure><img src="/files/EXoxfTIuf7NB0Fl5EHYj" alt=""><figcaption><p>Sync request confirmation screen</p></figcaption></figure>

#### Pause Connection

If a user needs to pause a connection for any reason, they can use the pause button which will stop the ingest of any new records until the connection is un-paused.&#x20;

{% hint style="info" %}
It's important to note that when a connection is paused, records are not stored to be ingested at a later date. When the connection is eventually activated again it will only ingest the records currently contained in the segment.
{% endhint %}

<figure><img src="/files/7hUS898llU8ZgzZyVdWf" alt=""><figcaption><p>Data Connections Table with pause button highlighted</p></figcaption></figure>

#### Map Data

If for any reason you should need to change the data mapping on your connection, this can be done via the mapping button on the table. \
This will open the mapping UI and allow any values to be set as needed.&#x20;

<figure><img src="/files/FGPs7T3aIlyCBlj1mOxL" alt=""><figcaption><p>Data Connections Table with map data button highlighted</p></figcaption></figure>

<figure><img src="/files/6tRyxif8sw19oAkjJghB" alt=""><figcaption><p>Data Connection Field Mapping UI</p></figcaption></figure>

#### Remove

This will remove the data connection, unpairing the list or segment from the ZAP Campaign.&#x20;

<figure><img src="/files/uP1EF0a5KDQqUeM7hnxN" alt=""><figcaption><p>Data Connections Table with remove button highlighted</p></figcaption></figure>

### Sync History

Sync history will show the details of any historic data ingestion events from Klaviyo detailing the following: \
Campaign name, segment or list name, segment or list type, ingestion date, profile count, submission link (When applicable) and a slide out containing further information (Sync Id, Submission Id, Sync,  Number of Successfully-Imported Profiles, Number of Failed Profiles,  Sync Errors).

<figure><img src="/files/cq1lKfoMcaTTc4SLVPNN" alt=""><figcaption><p>Klaviyo Sync History table</p></figcaption></figure>

<figure><img src="/files/OLgadmEXE7jljh8XtrHz" alt=""><figcaption><p>Klaviyo sync history details Slide out</p></figcaption></figure>

### Settings

#### Klaviyo profile address data correction

When enabled, we will automatically update any of your connected Klaviyo profiles’ address data when we find a problem with the address as part of our PAF and Cleanse processes.&#x20;

<figure><img src="/files/yBIIvKpbhGenf4XkUVH2" alt=""><figcaption><p>Fix address data toggle control</p></figcaption></figure>

#### Sync Frequency

Users can alter the frequency within which we poll Klaviyo. This can range from once an hour to once a day.&#x20;

<figure><img src="/files/YrwOYPFxtZF9WhTa9eXk" alt=""><figcaption><p>Data sync frequency options 1hour, 6 hours, 12 hours, 24 hours</p></figcaption></figure>

### Logs

In this section users can view the technical logs for the integration. This information is critical for troubleshooting and data auditing information.&#x20;

\
Users can view the following information: \
Data of API request, API Verb, URL, Response Status Code as well as the request and response header and body information.&#x20;

<figure><img src="/files/A1GcHMfp4nRJG24Fn375" alt=""><figcaption><p>Klaviyo Integration Logs table</p></figcaption></figure>

<figure><img src="/files/h1h4Sra4CWkcM8iDf3t9" alt="Klaviyo Integration Logs details view"><figcaption></figcaption></figure>


# Events

When Klaviyo profiles are processed through ZAP-POST, they are updated with events to keep you informed of any changes.\
Events are created automatically and require no additional set up. For detailed information on any of the above fields, see our [User Guide](https://userguide.zappost.com/) and [API Documentation](https://apidocumentation.zappost.com/).

### Submission Creation - Added when the profile is received into ZAP-POST

```
Event Name: ZAP~POST Submission Created

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
```

### Address Updated - Added if the profiles' address is updated due to postage address checks

```
Event Name: ZAP~POST Address Updated

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
OriginalAddress: The original address details received from Klaviyo
UpdatedAddress: The updated address received due postage address checks
```

### Direct Mail Rejected - Added if the profiles address fails postage address checks

```
Event Name: ZAP~POST Direct Mail Rejected

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
RejectedDate(UTC): The date the record was rejected
```

### Direct Mail Sent - Add when the ZAP has been sent

```
Event Name: ZAP~POST Direct Mail Sent

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
```

### QR Code Scan - Added if a recipient scans a QR code on the ZAP

```
Event Name: ZAP~POST QR Code Scan

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
ScanDate(UTC): The date the QR code was scanned
ScanTime(UTC): The time the QR code was scanned
DestinationURL: The URL the recipient was directed to
```

### Direct Mail Returned - Added if the ZAP is returned to sender

```
Event Name: ZAP~POST Direct Mail Returned

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. 01/01/2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
ReturnedDate(UTC): The date the returned Zap was received to sender 
```


# Dotdigital

<figure><img src="/files/q0rOJflohwA4lpt3QLIr" alt=""><figcaption></figcaption></figure>

Summary functionality:

* Collect recipient data from Dotdigital Lists and Segments
* Map them to a ZAP\~POST Campaign
* Map any custom fields you have set up in the ZAP\~POST Campaign
* Update Dotdigital contacts with updated addresses.

When a campaign is created, connect recipient data via 'Data Sources' from within the app.

Set up is self-service whilst ZAP\~POST's "Tech Sherpas" will assist and manage the set up where required, at no additional cost.


# Installation Guide

See the steps below, or watch the video

1. Log into **Dotdigital**
2. Once logged in head to **Settings** and **Access**

<figure><img src="/files/zrwkm6e0JcxVAsKY5ByN" alt=""><figcaption></figcaption></figure>

3. Once in **Access** click on **API Users**
4. Click **Add New API User**

<figure><img src="/files/BOiunBmylBo1dtGzAwYA" alt=""><figcaption></figcaption></figure>

5. The email address will be automatically populated, add a **description**, something like 'ZAPPOST Integration'
6. Add a **password** and click **Save**
7. Once an API user has been created, log into [ZAP-POST](https://app.zappost.com)
8. From the dashboard click on the **integrations** tile
9. Here you will see a tile to add **Dotdigital**

<figure><img src="/files/GBvfOAUjtLkffnjReUIB" alt=""><figcaption></figcaption></figure>

10. Add the **API username** and **password** that was created in Dotdigital

<figure><img src="/files/xXZf1dxfzwJl3Mixioa0" alt=""><figcaption></figcaption></figure>

11. Click **Connect**
12. If the correct credentials have been provided, you see a **confirmation**

<figure><img src="/files/lEZemCcj31qZtR8ewl49" alt=""><figcaption></figcaption></figure>

13. You are all set! Your Dotdigital account is integrated with ZAP-POST. In order to ingest List and Segment data see our Use case how-to guide


# How to Pair Dotdigital Customer Segments with ZAP Campaigns

<sup>In order to ingest Contacts from your Dotdigital List or Segment, you need to ensure you have a campaign created and a design published, see our</sup> [<sup>ZAP-POST User Guide</sup>](https://userguide.zappost.com/) <sup>for a detailed walk through.</sup>

1. <sup>From the Campaign Management screen, click the data upload option and then select</sup> <sup></sup><sup>**New Data Connection**</sup>

<figure><img src="/files/65cOR9IfepxR8BCQdQrl" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4BgzDB5wyr5sjudpWWGT" alt=""><figcaption></figcaption></figure>

2. <sup>Select the</sup> <sup></sup><sup>**Dotdigital**</sup> <sup></sup><sup>tile as your data connection</sup>
3. <sup>Using the table, find the</sup> <sup></sup><sup>**List**</sup> <sup></sup><sup>or</sup> <sup></sup><sup>**Segment**</sup> <sup></sup><sup>you want to use and click the</sup> <sup></sup><sup>**connect**</sup> <sup></sup><sup>icon</sup>

<figure><img src="/files/9wKqWwvSekdqHzCSp39v" alt=""><figcaption></figcaption></figure>

4. <sup>Confirm your field mapping, on the left you'll see the ZAP-POST campaign fields, using the drop down you can map them to your Dotdigital Contact fields.</sup>

<figure><img src="/files/ac9DpaKW0Qwbp4mFVAwR" alt=""><figcaption></figcaption></figure>

5. <sup>Once confirmed, you'll see a confirmation that the List or Segment has been connected</sup>

{% hint style="info" %} <sup>Note</sup>

<sup>ZAP-POST will immediately ingest all records once for a list and create a submission, Segments are ingested at 9pm every day, this can be changed in the integrations settings.</sup>
{% endhint %}

6. <sup>After ZAP-POST has cleansed your data and posted your Zaps, we'll automatically update your Dotdigital Contacts with an updated address, if you don't want this to happen you can turn it off in</sup> <sup></sup><sup>**Settings**</sup><sup>.</sup>

<figure><img src="/files/iiLRVhKecidZHfAwF0QZ" alt=""><figcaption></figcaption></figure>


# HubSpot

Summary functionality:

* Collect recipient data from HubSpot Lists (Dynamic, Static and Snapshots)
* Map to ZAP-POST Campaign
* Map any custom fields you have set up in the ZAP-POST Campaign
* Events are added to HubSpot profiles.

Integration to HubSpot is directly available from your ZAP-POST account, once signed in.

When a campaign is created, connect Recipient data via “Data Sources” from within the app, you will be directed to HubSpot to authorise the integration.

Set up is self-service whilst ZAP-POST’s “Tech-Sherpas” will assist and manage the set up where required, at no additional cost.&#x20;


# Installation Guide

### Set up the Integration in the ZAP-POST app <a href="#set-up-the-integration-in-the-zap-post-app" id="set-up-the-integration-in-the-zap-post-app"></a>

1. Log into the app at [zappost.com](https://app.zappost.com/)
2. From the Dashboard click on the **Integrations tile**
3. Here you will see a tile to add HubSpot

<figure><img src="/files/O66ezAkOZzRK5N9XxKWD" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1Jtn2EN1vPbarFS1wIyk" alt=""><figcaption></figcaption></figure>

4. Click **Connect**. This will direct you to HubSpot's permissions page, click **Connect app** to give ZAP-POST access to the necessary information to integrate with HubSpot.

<figure><img src="/files/YTIvfv9PZOobyfPdW6xc" alt=""><figcaption></figcaption></figure>

5. You will be redirected back to ZAP-POST, and you will see your HubSpot AppID with a status of **Connected**
6. You are all set, your HubSpot account is integrated with ZAP-POST. In order to ingest list data see our Use case how-to guide


# Data References

## HubSpot Terms

| Term          | Definition                                                                                                  | Usage                                                                                          |
| ------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| List (Static) | Static collections of contacts, usually created manually or through an import process                       | Used for sending one-time campaigns or emails to a specific group of contacts.                 |
| List (Active) | Dynamic groups of contacts that meet certain criteria, automatically updating as customer data changes      | Used for targeted marketing campaigns based on behaviour, demographics, purchase history, etc. |
| Contacts      | Detailed records of individual customers, including contact information, preferences, and behaviour history | Used for segmentation, personalisation, and targeted marketing campaigns.                      |
| Company       | Detailed records of individual companies, including contacts and preferences                                | Used for segmentation, personalisation, and targeted marketing campaigns.                      |

## ZAP-POST Terms

| Term            | Definition                                                                                                                                    | Usage                                                                                                                                                                                                                                                              |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Campaign        | A Campaign is made up of a name, fields, paper stock, content and submissions. It can be reused multiple times for multiple Direct Mail Sends | Used to create designs and associated records for physical mailing                                                                                                                                                                                                 |
| Submission      | A submission is a collection of records that is submitted against a campaign                                                                  | The submission will contain data specific to the campaign and will be paired with a Scheduled Send.                                                                                                                                                                |
| Record          | Contains the data for an individual customer the client is targeting for a campaign                                                           | Recipient data such as first name, last name and address details for an end user. Records can go through a Cleanse process                                                                                                                                         |
| Data Connection | Shows when a list is connected to a campaign                                                                                                  | This shows all campaigns that're connected to a list. Multiple lists can be connected to a campaign                                                                                                                                                                |
| Sync History    | Logs when ZAP-POST has ingested data from HubSpot                                                                                             | Can be used to see when ZAP-POST ingests data from a list or segment as well how many profiles are received                                                                                                                                                        |
| PAF             | As part of address processing, ZAP-POST takes the records you've submitted and uploads them to the Postcode Address File aka PAF              | The UK Postcode Address File (PAF) is a database that contains all known 'delivery points' and postcodes in the United Kingdom. The 'delivery points' held on the PAF are routing instructions used by Royal Mail to sort and deliver mail quickly and accurately. |
| Cleanse         | Deceased and gone away checks are included as part of ZAP-POST's data cleansing process.                                                      | These checks are performed against a list of 3rd party services/agencies such as The Bereavement Register and Mailing Preference Service                                                                                                                           |


# Use Case how-to

In order to ingest Profiles from your HubSpot List (Active or Static), you need to ensure you have a campaign created and a design published, see our [ZAP-POST User Guide](https://userguide.zappost.com/zap-post-user-guide/zapp/using-the-zapp/campaigns) for a detailed walk through.

1. From the Campaign Management screen, click the data upload option and then select **New Data Connection**

<figure><img src="/files/65cOR9IfepxR8BCQdQrl" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4BgzDB5wyr5sjudpWWGT" alt=""><figcaption></figcaption></figure>

2. Select the HubSpot tile as your data connection
3. Using the table, find the List (Active or Static) you want to use and click the connect icon

<figure><img src="/files/lN5EtlDBrG5i9KXJ0rzo" alt=""><figcaption></figcaption></figure>

4. Confirm your field mapping, on the left you'll see the ZAP-POST Campaign fields, using the drop down you can map them to your HubSpot Contact fields.

<figure><img src="/files/Q401B64jiOq7NVcXKY2F" alt=""><figcaption></figcaption></figure>

5. Once confirmed, you'll see a confirmation that the List has been connected.

{% hint style="info" %}
Note

ZAP-POST will immediately ingest all records once for a list and create a submission, Segments are ingested at 9pm every day.
{% endhint %}


# HubSpot Settings

## Accessing HubSpot Settings <a href="#accessing-klaviyo-settings" id="accessing-klaviyo-settings"></a>

In order to access the integration settings you can navigate to Integrations via the nav bar, then select the HubSpot integration

<figure><img src="/files/H6roXsCx735nG3bUFsQi" alt=""><figcaption><p>ZAP-POST Integration UI</p></figcaption></figure>

From there you will see a list of the settings options available&#x20;

**Integration Status:** Shows the connection status of the HubSpot account paired with ZAP-POST

**Data Connections**: Allows users to manage the campaign data connection, pairing lists  with ZAP Sends.

**Sync History:** This will show details of any data ingestion events that have occurred as part of the integration

**Settings**: Change the sync frequency and address correction options

**Logs**: View API logs from HubSpot and ZAP-POST for troubleshooting and data auditing purposes.

<figure><img src="/files/fXd7OfxiSWVS18g11hpJ" alt=""><figcaption><p>Integrations Settings Tabs</p></figcaption></figure>

### Integration Status <a href="#integration-status" id="integration-status"></a>

The integration status will detail how many HubSpot accounts that are paired with your ZAP-POST account, showing the connection status and allowing users to disconnect the HubSpot instance. Disconnecting this integration will also remove any data connections you currently have setup for the integration.

<figure><img src="/files/VqIuT6DwYDlk6u2IaEvV" alt=""><figcaption><p>Integration Status Table</p></figcaption></figure>

### Data Connections <a href="#data-connections" id="data-connections"></a>

This page shows your Zap campaigns that have data connections and offers several key pieces of information and functionality when it comes to the HubSpot integration. It will show which HubSpot segments or lists are currently configured with your ZAP Campaigns showing key information such as: Connected Data, Connect Name, Connection Type, Last Submission Date and status. All dates are displayed in UTC (Coordinated Universal Time).

### **Sync Connection**

The sync connections button allows users to bypass the scheduled ingestion and manually trigger an immediate ingestion event. This will cause the connection to compile any contained profiles into a ZAP Submission using the campaigns published artwork which will be processed and mailed.

<figure><img src="/files/rR9IWiPzb08nWKGgOdMx" alt=""><figcaption><p>Data Connections Table with sync button highlighted</p></figcaption></figure>

<figure><img src="/files/UYUeujf2T964PkHDRARq" alt=""><figcaption><p>Sync request confirmation screen</p></figcaption></figure>

### **Pause Connection**

If a user needs to pause a connection for any reason, they can use the pause button which will stop the ingest of any new records until the connection is un-paused.

{% hint style="info" %}
It's important to note that when a connection is paused, records are not stored to be ingested at a later date. When the connection is eventually activated again it will only ingest the records currently contained in the list.
{% endhint %}

<figure><img src="/files/vJXGI7G9HhausytEyKSC" alt=""><figcaption><p>Data Connections Table with pause button highlighted</p></figcaption></figure>

### **Map Data**

If for any reason you should need to change the data mapping on your connection, this can be done via the mapping button on the table. This will open the mapping UI and allow any values to be set as needed.

<figure><img src="/files/NBGFoxZlfknIq8RBVrCf" alt=""><figcaption><p>Data Connections Table with map button highlighted</p></figcaption></figure>

<figure><img src="/files/SkUF0PGgJyHdPBaLbbNC" alt=""><figcaption><p>Data Connection Field Mapping UI</p></figcaption></figure>

### **Remove**

This will remove the data connection, unpairing the list or segment from the ZAP Campaign.

<figure><img src="/files/4GmzoJuMQ3KEc09n2sZq" alt=""><figcaption><p>Data Connections Table with remove button highlighted</p></figcaption></figure>

### Sync History <a href="#sync-history" id="sync-history"></a>

Sync history will show the details of any historic data ingestion events from HubSpot detailing the following: Campaign name, segment or list name, segment or list type, ingestion date, profile count, submission link (When applicable) and a slide out containing further information (Sync Id, Submission Id, Sync, Number of Successfully-Imported Profiles, Number of Failed Profiles, Sync Errors).

<figure><img src="/files/v3hpK4K47AzMrBG0VVzN" alt=""><figcaption><p>Hubspot Sync History table</p></figcaption></figure>

### Settings <a href="#settings" id="settings"></a>

**HubSpot profile address data correction**

When enabled, we will automatically update any of your connected HubSpot profiles’ address data when we find a problem with the address as part of our PAF and Cleanse processes.

<figure><img src="/files/15h8SeIdShABsSYRpZT3" alt=""><figcaption><p>Fix address data toggle control</p></figcaption></figure>

### **Sync Frequency**

Users can alter the frequency within which we poll HubSpot. This can range from once an hour to once a day.

<figure><img src="/files/YBhDQq0zUDo8TYkjAbgM" alt=""><figcaption><p>Data sync frequency options 1 hour, 6 hours, 12 hours, 24 hours</p></figcaption></figure>

### Logs <a href="#logs" id="logs"></a>

In this section users can view the technical logs for the integration. This information is critical for troubleshooting and data auditing information.

Users can view the following information: Data of API request, API Verb, URL, Response Status Code as well as the request and response header and body information.


# Events

When mail is processed through ZAP-POST, your HubSpot contacts will be updated with timeline events to keep you informed of any progress.\
Below is a list of a key events and the data you can expect to see in HubSpot when these events occur.\
Events are created automatically and require no additional set up. For detailed information on any of the above fields, see our [User Guide](https://userguide.zappost.com/) and [API Documentation](https://apidocumentation.zappost.com/).

{% hint style="success" %}
In order to see your ZAP\~POST events in the HubSpot UI you will need to enable them in your activity filters. \
This can be done on the Contact or Company activity tab.<br>

![](/files/JW21pQAVwL3pIfT9kkQV)<br>
{% endhint %}

### Submission Creation - Added when the profile is received into ZAP-POST

```
Event Name: ZAP~POST Submission Created

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. Jul 28, 2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
```

### Address Updated - Added if the profiles' address is updated due to postage address checks

```
Event Name: ZAP~POST Address Updated

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. Jul 28, 2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
OriginalAddress: The original address details received from Klaviyo
UpdatedAddress: The updated address received due postage address checks
```

### Direct Mail Rejected - Added if the profiles address fails postage address checks

```
Event Name: ZAP~POST Direct Mail Rejected

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. Jul 28, 2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
RejectedDate(UTC): The date the record was rejected
```

### Direct Mail Sent - Add when the ZAP has been sent

```
Event Name: ZAP~POST Direct Mail Sent

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. Jul 28, 2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
```

### QR Code Scan - Added if a recipient scans a QR code on the ZAP

```
Event Name: ZAP~POST QR Code Scan

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. Jul 28, 2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
ScanDate(UTC): The date the QR code was scanned
ScanTime(UTC): The time the QR code was scanned
DestinationURL: The URL the recipient was directed to
```

### Direct Mail Returned - Added if the ZAP is returned to sender

```
Event Name: ZAP~POST Direct Mail Returned

ScheduledSendId: The unique identifier for the ZAP~POST Scheduled Send
SubmissionId: The unique identifier given to a batch of records submitted to ZAP~POST
ScheduledSendDateUTC: The date for the scheduled send e.g. Jul 28, 2025
CampaignName: The name of the campaign that record was submitted against
CampaignId: The unique identifier for the ZAP~POST campaign
ReturnedDate(UTC): The date the returned Zap was received to sender 
```


# Ometria

<figure><img src="/files/8XAPpCFbn03eeDC7Mv6m" alt=""><figcaption></figcaption></figure>

Summary functionality:<br>

* Collect recipient data from Ometria segments.
* Set the frequency of data collection.
* Map to ZAP-POST Campaign.
* Map any custom fields you have set up in the ZAP-POST Campaign.
* Ometria Contacts are updated to record recipients who have/have not received a ZAP.
* Any returns (undelivered mail) are updated on Ometria on a daily basis.

Integration to Ometria is directly available from your ZAP-POST account, once signed in.

The following pages detail how to connect your Ometria account to ZAP-POST, and how to connect Ometria segments to Zap Campaigns.

Set up is self-service whilst ZAP-POST will assist and manage the set up where required, at no additional cost.

In addition to this integration, you may also set up webhooks from Automation campaigns, directly into a ZAP-POST campaign.


# Installation Guide

See the steps below

1. Log into **Ometria**
2. Once logged in head to your username, expand the menu and then select **Settings**

<figure><img src="/files/UW7EJ5TTLco6gWxPxYzy" alt=""><figcaption></figcaption></figure>

3. Once in **Settings** click on **API Keys**
4. Click **Add new API key**

<figure><img src="/files/EYt075dN7Iv6GZYmmutd" alt=""><figcaption></figcaption></figure>

5. Give the API Key a name and then copy the API Key that is automatically generated.

<figure><img src="/files/8hUK0Tt4kLXiF9rIIMVI" alt=""><figcaption></figcaption></figure>

5. Once an API Key has been created, log into [ZAP-POST](https://app.zappost.com)
6. From the dashboard click on the **integrations** tile
7. Here you will see a tile to add **Ometria**

<figure><img src="/files/zSvAkPulwehJDDpGZKCZ" alt=""><figcaption></figcaption></figure>

10. Add the **API Key** that was created in Ometria

<figure><img src="/files/EfJueILB4JyD6zRSJSyI" alt=""><figcaption></figcaption></figure>

11. Click **Connect**
12. If the correct credentials have been provided, you see a **confirmation**

<figure><img src="/files/r8csNUOJcXpYtcTnLIcU" alt=""><figcaption></figcaption></figure>

13. You are all set! Your Ometria account is integrated with ZAP-POST. You will now be able to use ZAP POST Events in your Ometria account. In order to ingest Segment data see our Use case how-to guide


# Use Case how-to

In order to ingest Contacts from your Ometria Segments, you need to ensure you have a campaign created and a design published, see our [ZAP\~POST User Guide](https://userguide.zappost.com/) for a detailed walk through.

1. From the Campaign Management screen, click the data upload option and then select **New Data Connection**

<figure><img src="/files/65cOR9IfepxR8BCQdQrl" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4BgzDB5wyr5sjudpWWGT" alt=""><figcaption></figcaption></figure>

2. Select the **Ometria** tile as your data connection
3. Using the table, find the **Static or Dynamic Segment** you want to use and click the **connect** icon

<figure><img src="/files/asvewxMMVuza7HsMhMaN" alt=""><figcaption></figcaption></figure>

4. Confirm your field mapping, on the left you'll see the ZAP-POST campaign fields, using the drop down you can map them to your Ometria Contact fields.

<figure><img src="/files/ac9DpaKW0Qwbp4mFVAwR" alt=""><figcaption></figcaption></figure>

5. Once confirmed, you'll see a confirmation that the Segment has been connected

{% hint style="info" %}
Note

ZAP-POST will immediately ingest all records once for a Static Segment and create a submission, Dynamic Segments are ingested at 9pm every day, this can be changed in the integrations settings.
{% endhint %}

<figure><img src="/files/VnCvn2tR7ZyvM6RH3G4F" alt=""><figcaption></figcaption></figure>


# Events

When Ometria contacts are processed through ZAP-POST, they are updated with events to keep you informed of any changes.\
Events are created automatically and require no additional set up. For detailed information on any of the above fields, see our [User Guide](https://userguide.zappost.com/) and [API Documentation](https://apidocumentation.zappost.com/).\
These events can then be used in your Ometria Campaign flows.

### Submission Creation - Added when the profile is received into ZAP-POST

```
Event Name: zap-post_submission_created

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
```

### Direct Mail Rejected - Added if the profiles address fails postage address checks

```
Event Name: post_direct_mail_rejected

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
rejected_date_utc: The date the record was rejected
```

### Direct Mail Sent - Add when the ZAP has been sent

```
Event Name: post_direct_mail_sent

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
```

### QR Code Scan - Added if a recipient scans a QR code on the ZAP

<pre><code>Event Name: post_qr_code_scan

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
<a data-footnote-ref href="#user-content-fn-1">campaign_id</a>: The unique identifier for the ZAP~POST campaign
scan_date_utc: The date the QR code was scanned
scan_time_utc: The time the QR code was scanned
destination_url: The URL the recipient was directed to
</code></pre>

### Direct Mail Returned - Added if the ZAP is returned to sender

```
Event Name: post_direct_mail_returned

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
returned_date_utc: The date the returned Zap was received to sender 
```

[^1]:


# Using ZAP Events in Ometria

There are three primary uses for ZAP POST events in Ometria. \
\
1\. **Segmentation** - You can use ZAP POST events and their respective properties to filter customers for segmentation. This could be Customers who who scanned a QR code in the last 30 days could be included in an 'Engaged Customers' segment. \
\
2\. **Reporting** - You can use ZAP POST events and their respective properties to filter customers or actions in a report, for example orders from customers who have received a ZAP in the last 3 months. \
\
3\. **Automated Campaigns** - You can use automated campaigns to target customers who have been rejected or returned from a send in the last 3 months so you can target them via an email campaign.

{% hint style="info" %}
In order to have access to the ZAP POST events in your Ometria account you'll need to ask your Ometria account manager to enable the "ZAP-POST Custom Events Models".
{% endhint %}

### Customer Segmentation

Using the normal data filters available for customer segmentation in Ometria, users can configure static or dynamic segments based on the ZAP POST events available in the platform.\
\
Here you can see the standard ZAP-POST events available to filter.&#x20;

<figure><img src="/files/aNipU0VujnUepaLaZplH" alt=""><figcaption></figcaption></figure>

Here you can see we're filtering for customers who have ever had a ZAP Sent event fire.&#x20;

<figure><img src="/files/8l7hSxi0jQ8GyajnG6Kc" alt=""><figcaption></figcaption></figure>

You can then save this as a static or dynamic segment for further use in Ometria campaigns and reports.

<figure><img src="/files/TtrFiqaJAyHwEoJNjFgd" alt=""><figcaption></figcaption></figure>

### Reporting

Using the normal data filters available for customer segmentation in Ometria, users can configure static or dynamic segments based on the ZAP POST events available in the platform.\
\
In this example we'll create a report to see orders from anyone who has scanned a QR Code on a ZAP in the last 6 weeks. \
\
1\. Start by selecting the Orders report option in the report creation screen.

<figure><img src="/files/KZfStooFZVNehMFQi4h2" alt=""><figcaption></figcaption></figure>

2. Scroll down to the custom filters controls

<figure><img src="/files/Lm1jw4bcS9Ax5RG3NCln" alt=""><figcaption></figcaption></figure>

3. If you're using an existing segment then select the segment in the available dropdownlist.

<figure><img src="/files/PLipTtANHC6nnlfyGlEY" alt=""><figcaption></figcaption></figure>

4. If you're building a new segment from scratch select the customer filters and then custom events in the condition options to find the appropriate event for your use case.

<figure><img src="/files/6bgLeTuVEQNWUEYhHjRy" alt=""><figcaption></figcaption></figure>

5. In this example we're now looking for customers who have scanned a QR Code on the ZAP.

<figure><img src="/files/VCQc3DayKbCZqXIWOT2K" alt=""><figcaption></figcaption></figure>

6. Now we'll add the filter for the event date and we should be ready to review

<figure><img src="/files/qViYD2yeOBLILb08Q2uU" alt=""><figcaption></figcaption></figure>

7. Then run the report and view your results.&#x20;

### Automated Campaigns

ZAP-POST events can also be used as an automated campaign trigger\
\
1\. First we'll start by selecting the ZAP Returned event as the trigger.&#x20;

<figure><img src="/files/sdriYifThFlvS1VRRkct" alt=""><figcaption></figcaption></figure>

2. Now we have any customers who had their ZAP Returned after an attempted delivery we can configure the email

<div align="left"><figure><img src="/files/AA8xHtVRaoavy6QyjYHH" alt=""><figcaption></figcaption></figure></div>

3. The campaign is now ready to be published.

<figure><img src="/files/NVxQTmfSy3ly8sMICK9j" alt=""><figcaption></figcaption></figure>


# Adestra

<figure><img src="/files/vpPSed5C8aRNp7B01Uj0" alt=""><figcaption></figcaption></figure>

Summary functionality:<br>

* Collect recipient data from Adestra Lists.
* Set the frequency of data collection.
* Map to ZAP-POST Campaign.
* Map any custom fields you have set up in the ZAP-POST Campaign.
* Adestra Contacts are updated to record recipients who have/have not received a ZAP.
* Any returns (undelivered mail) are updated on Adestra on a daily basis.

Integration to Adestra is directly available from your ZAP-POST account, once signed in.

The following pages detail how to connect your Adestra account to ZAP-POST, and how to connect Adestra Lists to Zap Campaigns.

Set up is self-service whilst ZAP-POST will assist and manage the set up where required, at no additional cost.


# Installation Guide

See the steps below

1. Log into **Adestra**
2. Once logged in head to the account icon, expand the menu and then select **Manage API Tokens**

<figure><img src="/files/fcCUEdrpK9JJq8lYEVxL" alt=""><figcaption></figcaption></figure>

3. Once in **API Tokens** click on **CREATE API TOKEN**
4. Set your **Name** and **Description** and click **CREATE**

<figure><img src="/files/wKZn8uOvGVsMQdpjx8VY" alt=""><figcaption></figcaption></figure>

5. Save the key somewhere secure such as a password manager ready to use in ZAP POST.&#x20;

<figure><img src="/files/9kBQJuSEbEYJKV2vB6JG" alt=""><figcaption></figcaption></figure>

5. Once an API Key has been created, log into [ZAP-POST](https://app.zappost.com)
6. From the dashboard click on the **integrations** tile
7. Here you will see a tile to add **Adestra**

<figure><img src="/files/yGVAVt2rnsBmpEsMRO26" alt=""><figcaption></figcaption></figure>

10. Add the **API Key** that was created in Adestra

<figure><img src="/files/0r77QZVnNyJb4UXSvIxf" alt=""><figcaption></figcaption></figure>

11. Click **Connect**
12. If the correct credentials have been provided, you see a **confirmation**

<figure><img src="/files/EsDXt0R3X29xrxOctgr1" alt=""><figcaption></figcaption></figure>

13. You are all set! Your Adestra account is integrated with ZAP-POST. You will now be able to use ZAP POST Events in your Adestra account. In order to ingest Segment data see our Use case how-to guide


# Use Case how-to

In order to ingest Contacts from your Adestra Lists, you need to ensure you have a campaign created and a design published, see our [ZAP\~POST User Guide](https://userguide.zappost.com/) for a detailed walk through.

1. From the Campaign Management screen, click the data upload option and then select **New Data Connection**

<figure><img src="/files/0ZB8dLSCIFKQi42AEOYx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4BgzDB5wyr5sjudpWWGT" alt=""><figcaption></figcaption></figure>

2. Select the **Adestra** tile as your data connection
3. Using the table, find the **Static or Dynamic Lists** you want to use and click the **connect** icon

<figure><img src="/files/CmdLGopnbKduOrW2Cc2i" alt=""><figcaption></figcaption></figure>

4. Confirm your field mapping, on the left you'll see the ZAP-POST campaign fields, using the drop down you can map them to your Adestra Contact fields configured in your core and data tables.

<figure><img src="/files/yPMtvBRIJUlhE6UIJ8nQ" alt=""><figcaption></figcaption></figure>

5. Once confirmed, you'll see a confirmation that the List has been connected

{% hint style="info" %}
Note

ZAP-POST will immediately ingest all records once for a Static Segment and create a submission, Dynamic Segments are ingested at 9pm every day, this can be changed in the integrations settings.
{% endhint %}

<figure><img src="/files/o6X6G0uN4eEslRtLbhqe" alt=""><figcaption></figcaption></figure>


# Events

When Adestra contacts are processed through ZAP-POST, they are updated with events to keep you informed of any changes.\
Events are created automatically and require no additional set up. For detailed information on any of the above fields, see our [User Guide](https://userguide.zappost.com/) and [API Documentation](https://apidocumentation.zappost.com/).\
\
These events are populated into Adestra as Transactions on a contact. These can then be used the same as any other Adestra transaction.&#x20;

<figure><img src="/files/rq4SWrcNCOseWSq2RVs3" alt="Example of a ZAP POST Event showing as a contact transaction"><figcaption></figcaption></figure>

### Submission Creation - Added when the profile is received into ZAP-POST

```
Event Name: zap-post_submission_created

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
```

### Direct Mail Rejected - Added if the profiles address fails postage address checks

```
Event Name: post_direct_mail_rejected

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
rejected_date_utc: The date the record was rejected
```

### Direct Mail Sent - Add when the ZAP has been sent

```
Event Name: post_direct_mail_sent

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
```

### QR Code Scan - Added if a recipient scans a QR code on the ZAP

<pre><code>Event Name: post_qr_code_scan

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
<a data-footnote-ref href="#user-content-fn-1">campaign_id</a>: The unique identifier for the ZAP~POST campaign
scan_date_utc: The date the QR code was scanned
scan_time_utc: The time the QR code was scanned
destination_url: The URL the recipient was directed to
</code></pre>

### Direct Mail Returned - Added if the ZAP is returned to sender

```
Event Name: post_direct_mail_returned

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
returned_date_utc: The date the returned Zap was received to sender 
```

[^1]:


# Braze

<figure><img src="/files/lagp6cuuGcB2Wvrn7Zvi" alt=""><figcaption></figcaption></figure>

Summary functionality:<br>

* Collect recipient data from Braze Segments.
* Set the frequency of data collection.
* Map to ZAP-POST Campaign.
* Map any custom fields you have set up in the ZAP-POST Campaign.
* Braze users are updated to record recipients who have/have not received a ZAP.
* Any returns (undelivered mail) are updated on Braze on a daily basis.

Integration to Braze is directly available from your ZAP-POST account, once signed in.

The following pages detail how to connect your Braze account to ZAP-POST, and how to connect Braze Lists to Zap Campaigns.

Set up is self-service whilst ZAP-POST will assist and manage the set up where required, at no additional cost.


# Installation Guide

See the steps below

1. Log into **Braze**
2. Once logged in head to 'Settings' on the sidebar menu, then 'API and Identifiers'

<figure><img src="/files/5stT6Q63gSSMS5dTDhHE" alt=""><figcaption></figcaption></figure>

3. Once in **API and Identifiers UI** click on **API Keys** tab and then **'Create API Key'**

<figure><img src="/files/CrFUPtkUq9ATDVc6yVcp" alt=""><figcaption></figcaption></figure>

4. Set your **Name** and select **Custom Attributes, Events, Segments and User Data** and click **Create API Key**

<figure><img src="/files/gxIKR02XoAXLk60OeLxs" alt=""><figcaption></figcaption></figure>

5. Save the key somewhere secure such as a password manager ready to use in ZAP POST.&#x20;

<figure><img src="/files/O0GZr6ghhvlEfbYoZ1MJ" alt=""><figcaption></figcaption></figure>

6. Copy your REST endpoint too, this will also be required for your account setup.&#x20;

<figure><img src="/files/6KMsIPi9tYMa0edkvkbC" alt=""><figcaption></figcaption></figure>

7. Once you have your API key and Base URL, log into [ZAP-POST](https://app.zappost.com)
8. From the dashboard click on the **integrations** tile
9. Here you will see a tile to add Braze

<figure><img src="/files/tDQeVZww0pkdLFlbOIpn" alt=""><figcaption></figcaption></figure>

10. Add the **API Key** that was created in Braze and the **Endpoint URL** that was copied

<figure><img src="/files/7W8rZe8cyp4mP9FTQk4n" alt=""><figcaption></figcaption></figure>

11. Click **Connect**
12. If the correct credentials have been provided, you see a **confirmation**

<figure><img src="/files/H5FKgRKuYUAQ2Xc7FJJ9" alt=""><figcaption></figcaption></figure>

13. You are all set! Your Braze account is integrated with ZAP-POST. You will now be able to use ZAP POST Events in your Braze account. In order to ingest Segment data see our Use case how-to guide


# Use Case how-to

In order to ingest Contacts from your Braze Segments, you need to ensure you have a campaign created and a design published, see our [ZAP\~POST User Guide](https://userguide.zappost.com/) for a detailed walk through.

1. From the Campaign Management screen, click the data upload option and then select **New Data Connection**

<figure><img src="/files/0ZB8dLSCIFKQi42AEOYx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4BgzDB5wyr5sjudpWWGT" alt=""><figcaption></figcaption></figure>

2. Select the **Braze** tile as your data connection
3. Using the table, find the **Segment** you want to use and click the **connect** icon

<figure><img src="/files/n8qaqUxV8FNT4IkvJJus" alt=""><figcaption></figcaption></figure>

4. Select if you only want a single ingestion or if you'd like ZAP-POST to query on a regular basis for any new contacts added to the segment

<figure><img src="/files/EWkvHfPsTZJ9BexHGikY" alt=""><figcaption></figcaption></figure>

5. Confirm your field mapping, on the left you'll see the ZAP-POST campaign fields, using the drop down you can map them to your Braze Contact fields configured in your custom attributes.

<figure><img src="/files/B1EFFiuoUktxifoEHPih" alt=""><figcaption></figcaption></figure>

5. Once confirmed, you'll see a confirmation that the Segment has been connected

{% hint style="info" %}
Note

ZAP-POST will immediately ingest all records once for a one-off Segment and create a submission, Regular Segments are ingested at 9pm every day, this can be changed in the integrations settings.
{% endhint %}

<figure><img src="/files/hrnlozoDfyjT82Pu8a6M" alt=""><figcaption></figcaption></figure>


# Events

When Braze contacts are processed through ZAP-POST, they are updated with events to keep you informed of any changes.\
Events are created automatically and require no additional set up. For detailed information on any of the above fields, see our [User Guide](https://userguide.zappost.com/) and [API Documentation](https://apidocumentation.zappost.com/).\
\
These events are populated into Braze as Custom Events on a contact.&#x20;

<figure><img src="/files/ECYqkjJ6Y44tH3YEHudr" alt=""><figcaption></figcaption></figure>

### Submission Creation - Added when the profile is received into ZAP-POST

```
Event Name: zap-post_submission_created

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
```

### Direct Mail Rejected - Added if the profiles address fails postage address checks

```
Event Name: post_direct_mail_rejected

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
rejected_date_utc: The date the record was rejected
```

### Direct Mail Sent - Add when the ZAP has been sent

```
Event Name: post_direct_mail_sent

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
```

### QR Code Scan - Added if a recipient scans a QR code on the ZAP

<pre><code>Event Name: post_qr_code_scan

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
<a data-footnote-ref href="#user-content-fn-1">campaign_id</a>: The unique identifier for the ZAP~POST campaign
scan_date_utc: The date the QR code was scanned
scan_time_utc: The time the QR code was scanned
destination_url: The URL the recipient was directed to
</code></pre>

### Direct Mail Returned - Added if the ZAP is returned to sender

```
Event Name: post_direct_mail_returned

scheduled_send_id: The unique identifier for the ZAP~POST Scheduled Send
submission_id: The unique identifier given to a batch of records submitted to ZAP~POST
scheduled_send_date_utc: The date for the scheduled send e.g. 01/01/2025
campaign_name: The name of the campaign that record was submitted against
campaign_id: The unique identifier for the ZAP~POST campaign
returned_date_utc: The date the returned Zap was received to sender 
```

[^1]:


# Shopify

<figure><img src="/files/UDVo5WTy3PVjigwoNh07" alt=""><figcaption></figcaption></figure>

Summary functionality:<br>

* Collect recipient data from Shopify.
* Map any custom fields you have set up in the ZAP-POST Campaign.
* Send direct mail using Shopify Flows


# Installation Guide

### Shopify App Pre-Requisites

* Active Shopify store
* Shopify Admin permissions
* Active ZAP-POST account
* ZAP-POST Admin permissions

### Set up the Shopify Integration from the Shopify Store

1. Go to the ZAP-POST Shopify app store listing on <https://apps.shopify.com/zap-post-1>

<figure><img src="/files/W7rzRXAwHLoe9QitDVI0" alt=""><figcaption></figcaption></figure>

2. Click Install. This should redirect you to your shopify store if you're already authenticated, or it will ask you to log in.&#x20;
3. Once authenticated and on your store you'll be asked to confirm the installation

<figure><img src="/files/iOp7SzwFJoicaic78jnc" alt=""><figcaption></figcaption></figure>

4. Once installed, you'll be asked to select a plan and approve the charge.&#x20;

<figure><img src="/files/gaT0Pgf3awMU49Dsv1KY" alt=""><figcaption></figcaption></figure>

5. Once a plan is selected you should be able to configure your API credentials
6. Once saved, you're all set up and configured.

*Users can also access the shopify store via the ZAP-POST Integrations page*

<figure><img src="/files/nWLdvALEGVml9lSWRXfj" alt=""><figcaption><p>ZAP~POST Integrations page including DotDigital, Klaviyo, HubSpot, Shopify and more</p></figcaption></figure>

### Set up the Shopify Flows app

<figure><img src="/files/UTnIDQtcD355ZEoLqpHP" alt=""><figcaption></figcaption></figure>

If you do not already have Shopify Flows installed on your store then you can use the following guide to get it set up.

1. Go to the Flow Shopify app store listing  <https://apps.shopify.com/flow>
2. Click Install
3. Flows should be installed free of charge.&#x20;


# Data References

### ZAP-POST Terms

| Term             | Definition                                                                                                                                    | Usage                                                                                                                                                                                                                                                              |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Campaign         | A Campaign is made up of a name, fields, paper stock, content and submissions. It can be reused multiple times for multiple Direct Mail Sends | Used to create designs and associated records for physical mailing                                                                                                                                                                                                 |
| Submission       | A submission is a collection of records that is submitted against a campaign                                                                  | The submission will contain data specific to the campaign and will be paired with a Scheduled Send.                                                                                                                                                                |
| Record           | Contains the data for an individual customer the client is targeting for a campaign                                                           | Recipient data such as first name, last name and address details for an end user. Records can go through a Cleanse process                                                                                                                                         |
| Data Connections | Shows when a list and/or segment are connected to a campaign                                                                                  | This shows all campaigns that're connected to either a list or a segment. Multiple lists and segments can be connected to a campaign                                                                                                                               |
| Sync History     | Logs when ZAP-POST has ingested data from Klaviyo                                                                                             | Can be use to see when ZAP-POST ingests data from a list or segment as well how many profiles are received                                                                                                                                                         |
| PAF              | As part of address processing, ZAP-POST takes the records you've submitted and uploads them to the Postcode Address File aka PAF              | The UK Postcode Address File (PAF) is a database that contains all known 'delivery points' and postcodes in the United Kingdom. The 'delivery points' held on the PAF are routing instructions used by Royal Mail to sort and deliver mail quickly and accurately. |
| Cleanse          | Deceased and gone away checks are included as part of ZAP-POST's data cleansing process.                                                      | These checks are performed against a list of 3rd party services/agencies such as The Bereavement Register and Mailing Preference Service                                                                                                                           |


# Use Case how-to

The Shopify integration uses Shopify flow to enable users to configure the data flow configuration that best suits them. \
While we have templates out several pre-created common flows, we recommend you explore the options and configure the flow that best suits your business needed.&#x20;

In order to ingest customers from your Shopify flows, you need to ensure you have a campaign created and a design published, see our [ZAP-POST User Guide](https://userguide.zappost.com/zap-post-user-guide/zapp/using-the-zapp/campaigns) for a detailed walk through.

1. From the Store page in Shopify, select apps, then Flow.&#x20;

2. Select Create Flow on the Flows screen<br>

   <figure><img src="/files/pDmhAjsNkoy7DK5AMIGe" alt=""><figcaption><p>Flows Screen in Shopify with Create Flow button highlighted</p></figcaption></figure>

3. Select your prefered trigger and build out your flow to the point you want to send your mail. It may be helpful to refer to the Shopify flows documentation here <https://help.shopify.com/en/manual/shopify-flow>

4. Add the Send a ZAP flow action <br>

   <figure><img src="/files/cck2ke31tUWY3nOXqPfq" alt=""><figcaption></figcaption></figure>

5. Select the ZAP campaign you wish to configure the mail  send for using the campaign selector in the step configuration<br>

   <figure><img src="/files/YVYRp9K4C99pbCiIDKyM" alt=""><figcaption></figcaption></figure>

6. This will also show you the custom fields configured on your campaign<br>

   <figure><img src="/files/qeyovEnSyc8FcNCT90Ec" alt=""><figcaption></figcaption></figure>

7. Once a campaign is selected you can select the appropriate shopify data to use using the mapper<br>

   <figure><img src="/files/0u4eWTHV8BsIr4olUpTF" alt=""><figcaption></figcaption></figure>

   <figure><img src="/files/EUh5shGbujxlZxUKPbsJ" alt=""><figcaption></figcaption></figure>

8. Once you're happy with the configuration you can save the flow. This can then be enabled or disabled whenever you desire<br>

   <figure><img src="/files/Hq0aex3UInMhIoTk51Wx" alt=""><figcaption></figcaption></figure>

Any data received by ZAP-POST will be compiled into a new submission in the evening ready for the next posting date with our mailing partners.&#x20;


# Shopify

<figure><img src="/files/UDVo5WTy3PVjigwoNh07" alt=""><figcaption></figcaption></figure>

Summary functionality:<br>

* Collect recipient data from Shopify Customer Segments.
* Set the frequency of data collection.
* Map to a ZAP-POST Campaign.
* Map any custom fields you have set up in the ZAP-POST Campaign.
* ROAS reporting&#x20;

Integration to Shopify  is directly available from your ZAP-POST account, once signed in.

The following pages detail how to connect your Shopify account to ZAP-POST, and how to connect Shopify Customer Segments to Zap Campaigns.

Set up is self-service whilst ZAP-POST will assist and manage the set up where required, at no additional cost.


# Installation Guide

### Shopify App Pre-Requisites

* Active Shopify store
* Shopify Admin permissions
* Active ZAP-POST account
* ZAP-POST Admin permissions

### Set up the Shopify Integration from the Shopify Store

1. Go to the ZAP-POST Shopify app store listing on <https://apps.shopify.com/zap-post-1>

<figure><img src="/files/W7rzRXAwHLoe9QitDVI0" alt=""><figcaption></figcaption></figure>

2. Click Install. This should redirect you to your shopify store if you're already authenticated, or it will ask you to log in.&#x20;
3. Once authenticated and on your store you'll be asked to confirm the installation

<figure><img src="/files/iOp7SzwFJoicaic78jnc" alt=""><figcaption></figcaption></figure>

4. Once installed, you'll be asked to select a plan and approve the charge.&#x20;

<figure><img src="/files/gaT0Pgf3awMU49Dsv1KY" alt=""><figcaption></figcaption></figure>

5. Once a plan is selected you should be able to configure your API credentials
6. Once saved, you're all set up and configured.

*Users can also access the shopify store via the ZAP-POST Integrations page*

<figure><img src="/files/nWLdvALEGVml9lSWRXfj" alt=""><figcaption><p>ZAP~POST Integrations page including DotDigital, Klaviyo, HubSpot, Shopify and more</p></figcaption></figure>

### Set up the Shopify Flows app

<figure><img src="/files/UTnIDQtcD355ZEoLqpHP" alt=""><figcaption></figcaption></figure>

If you do not already have Shopify Flows installed on your store then you can use the following guide to get it set up.

1. Go to the Flow Shopify app store listing  <https://apps.shopify.com/flow>
2. Click Install
3. Flows should be installed free of charge.&#x20;


# Use Case how-to

In order to ingest Contacts from your Shopify Customer Segments, you need to ensure you have a campaign created and a design published, see our [ZAP\~POST User Guide](https://userguide.zappost.com/) for a detailed walk through.

1. From the Campaign Management screen, click the data upload option and then select **New Data Connection**

<figure><img src="/files/0ZB8dLSCIFKQi42AEOYx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4BgzDB5wyr5sjudpWWGT" alt=""><figcaption></figcaption></figure>

2. Select the **Shopify** tile as your data connection
3. Using the table, find the **Customer Segment** you want to use and click the **connect** icon

<figure><img src="/files/RYHQozmQGuQl0TEqh5P6" alt=""><figcaption></figcaption></figure>

4. Select if you only want a single ingestion or if you'd like ZAP-POST to query on a regular basis for any new contacts added to the segment

<figure><img src="/files/EWkvHfPsTZJ9BexHGikY" alt=""><figcaption></figcaption></figure>

5. Confirm your field mapping, on the left you'll see the ZAP-POST campaign fields, using the drop down you can map them to your Shopify metafields configured in your store.

<figure><img src="/files/X5wvirvbERzE1wMOavRt" alt=""><figcaption></figcaption></figure>

6. Once confirmed, you'll see a confirmation that the Segment has been connected

{% hint style="info" %}
Note

ZAP-POST will immediately ingest all records once for a one-off Segment and create a submission, Regular Segments are ingested at 9pm every day, this can be changed in the integrations settings.
{% endhint %}

<figure><img src="/files/rX4gZBqaBE8199XPPa1a" alt=""><figcaption></figcaption></figure>


# Data References

### ZAP-POST Terms

| Term             | Definition                                                                                                                                    | Usage                                                                                                                                                                                                                                                              |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Campaign         | A Campaign is made up of a name, fields, paper stock, content and submissions. It can be reused multiple times for multiple Direct Mail Sends | Used to create designs and associated records for physical mailing                                                                                                                                                                                                 |
| Submission       | A submission is a collection of records that is submitted against a campaign                                                                  | The submission will contain data specific to the campaign and will be paired with a Scheduled Send.                                                                                                                                                                |
| Record           | Contains the data for an individual customer the client is targeting for a campaign                                                           | Recipient data such as first name, last name and address details for an end user. Records can go through a Cleanse process                                                                                                                                         |
| Data Connections | Shows when a list and/or segment are connected to a campaign                                                                                  | This shows all campaigns that're connected to either a list or a segment. Multiple lists and segments can be connected to a campaign                                                                                                                               |
| Sync History     | Logs when ZAP-POST has ingested data from Klaviyo                                                                                             | Can be use to see when ZAP-POST ingests data from a list or segment as well how many profiles are received                                                                                                                                                         |
| PAF              | As part of address processing, ZAP-POST takes the records you've submitted and uploads them to the Postcode Address File aka PAF              | The UK Postcode Address File (PAF) is a database that contains all known 'delivery points' and postcodes in the United Kingdom. The 'delivery points' held on the PAF are routing instructions used by Royal Mail to sort and deliver mail quickly and accurately. |
| Cleanse          | Deceased and gone away checks are included as part of ZAP-POST's data cleansing process.                                                      | These checks are performed against a list of 3rd party services/agencies such as The Bereavement Register and Mailing Preference Service                                                                                                                           |


# Third-Party Integrations

These are integrations that are developed and maintained by one or more third parties. <br>

<figure><img src="/files/ytxDtox1ybPSHQ333coE" alt=""><figcaption></figcaption></figure>

### Third-Party Integrations

{% content-ref url="/pages/P1vNo4uzOyJcZIZYb6pF" %}
[Force24](/zap-integrations/third-party-integrations/force24)
{% endcontent-ref %}

{% content-ref url="/pages/18VSUTwKjFjvC8yR6akB" %}
[Patchworks](/zap-integrations/third-party-integrations/patchworks)
{% endcontent-ref %}

CYCLR: <https://cyclr.com/integrate/zappost>


# Force24

<figure><img src="/files/4Pyv54zQXPXLPwQmEmeB" alt=""><figcaption></figcaption></figure>

Summary functionality:

* Collect recipient data from Force24.
* Map to ZAP-POST Campaign.
* Map any custom fields you have set up in the ZAP-POST Campaign.

An Integration to Force24 is available directly from the Force24 Marketplace, once signed in.

When a ZAP-POST campaign is created, connect your Force24 account to submit customer data.

Set up is self-service whilst ZAP-POST’s “Tech-Sherpas” will assist and manage the set up where required, at no additional cost.


# Installation Guide

In order to submit customer data from Force24 to ZAPPOST, you need to ensure you have a campaign created and a design published. See our [ZAP\~POST User Guide](https://userguide.zappost.com/zap-post-user-guide/zapp/using-the-zapp) for a detailed walk through.

### Install the ZAP-POST App via the Force24 Marketplace

1. Log in to Force24
2. From the home page, click on **Marketplace**
3. Select **Alerts and Messages**

<figure><img src="/files/qUbZe4tnSRBti1DWRV21" alt=""><figcaption></figcaption></figure>

4. Click **ZAP-POST**
5. Select the same **paperstock** as the campaign you've created on ZAP-POST

<figure><img src="/files/WLcjr81sHCdVTHscTOZj" alt=""><figcaption></figcaption></figure>

6. Give your **integration a name.**  Suggest: 'ZAP-POST'

<figure><img src="/files/sTj2R6yejNISYHnvNrVs" alt=""><figcaption></figcaption></figure>

7. You'll now need to create an **API consumer** within your ZAP-POST account
8. Log into ZAP-POST at [zappost.com](https://app.zappost.com)
9. From the dashboard, click on **settings**
10. Select **API consumers** and **Add New Consumer**

<figure><img src="/files/47BlOV0H7QxHo7WDp1em" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Never share your API credentials with anyone you don't trust
{% endhint %}

11. In Force24, add your **API Key** and **API Password**
12. The environment should default as **Production**
13. Click **Next**
14. Select the **Marketing List** that you would like to send Direct Mail (Zaps) to
15. Select the **campaign** you've created in ZAP-POST

<figure><img src="/files/urLCGAX3UR2K4JWwGfEG" alt=""><figcaption></figcaption></figure>

11. Click **create**
12. You're all set.  Contacts in the marketing list will flow into your ZAP-POST campaign each day, and will be sent on the next available sending date.
13. You only need one ZAP-POST integration, to connect multiple marketing lists to multiple campaigns.


# Patchworks

<figure><img src="/files/4vKChxkAm5rzCg3N8LMa" alt=""><figcaption></figcaption></figure>

Summary functionality:

* Collect recipient data from Patchworks&#x20;
* Map to ZAP-POST Campaigns
* Include any custom fields created in Patchwork or other integrations
* Ingest rejected and returned Zap records into Patchworks

An Integration to Patchworks is available directly from the Patchworks Public Marketplace, once signed in.

When a ZAP-POST campaign is created, connect a Patchworks Process Flow to submit customer data.

Set up is self-service whilst ZAP-POST's "Tech-Sherpas" will assist and manage the set up where required, at no additional cost.


# Installation Guide

### Install the ZAP-POST Connector via the Patchworks Marketplace

1. Log in to Patchworks
2. From the home page, click on **Marketplace**
3. Search for ZAP-POST and click **Install**
4. Log into ZAP-POST at [zappost.com](https://app.zappost.com)
5. From the dashboard, click on **settings**
6. Select **API consumers** and **Add New Consumer**

<figure><img src="/files/AcOCX5K1NYnyViirzdsf" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Never share your API credentials with anyone you don't trust
{% endhint %}

7. In Patchworks, click on **Process Flows** then **Connectors & Instances**
8. Click **Add new instance**

<figure><img src="/files/uPxhkj0U9LEZ9OR07wHD" alt=""><figcaption></figcaption></figure>

9. Give your instance a name, we suggest something like 'ZAP-POST Production'
10. Click **Next Step**
11. Basic Authentication should already be selected, click **Next Step**
12. Here you need to enter your **API Key** and **API Password** from step 6
13. You're all set, your Patchwork and ZAP-POST accounts are integrated. To start ingesting customer data, see our [Use case how-to guide](broken://pages/Rk84s7wJaTSFtsQoXGE8)




---

[Next Page](/llms-full.txt/1)

