ZAP~POST is an automatic direct mail engine that sends hyper-personalized, branded postcards triggered by real-time customer events. This guide covers how to set up the integration and use it to automate direct mail campaigns from Bloomreach.

Prerequisites

  • A ZAP~POST account with at least one campaign configured. The only required parameter for the Submissions API endpoints is a valid campaign ID.
  • A Bloomreach project with access to scenarios and integrations.
  • Familiarity with your audience and scenario execution requirements.
  • Relevant customer properties—including postal address—stored in Data Manager.

Set up the integration

Create a ZAP~POST API key

An integration API key allows authentication for incoming webhook requests.

  1. In your ZAP~POST application, go to Settings > API Consumers.
  2. Click Add New Consumer.
  3. Fill in the Consumer Name.
  4. Make sure you Enable the consumer.
  5. Click Generate New Keys.
  6. Copy the key and password and store them securely.
  7. Click Create Consumer.

Configure webhook authentication

Configure webhook authentication for ZAP~POST so data can be passed securely in webhook requests. You'll use this authentication when creating a scenario.

To configure webhook authentication:

  1. Go to Data & Assets > Integrations.

  2. Click Add new integration > HTTP Authentication Schemas > Add integration.

  3. Give the integration a name that identifies it as your ZAP~POST connection.

  4. In Endpoint, enter: https://api.zappost.com.

  5. Select Basic Authentication.

  6. Enter your ZAP~POST API key as the Username and your API password as the Password.

  7. Test the integration to confirm authentication is successful.

  8. Click Save integration.

Use cases

Bloomreach includes 2 built-in webhook presets for ZAP~POST:

  • ZAPPOST Individual Post (/api/v1/records) — for sending individual records, such as an abandoned cart notification for a single customer.
  • ZAPPOST Submissions (/api/v1/submissions) — for sending collections of records, such as a list of customers whose subscriptions expire soon or a lapsed-customer reactivation campaign.

In short, use /api/v1/records for individual sends and /api/v1/submissions for batch sends.

📘

Note

ZAPPOST batches physical mail—records submitted during the day are grouped and dispatched at end of day. Check your ZAPPOST account the following day for updates.

Use case 1 — abandoned cart (Individual Post)

Use the ZAP~POST Individual Post preset to send a postcard to customers who abandoned their cart and didn't complete their purchase within a day.

In your scenario, use a combination of operators and actions to send ZAP~POST postcards to relevant customers based on custom conditions.

📘

Note

Your scenario path may vary depending on the actions and dynamic data you choose to include. See Personalization using Jinja for more.

Create a scenario

  1. Go to Campaigns > Scenarios > Create new.

  2. Configure the triggers and operators for your campaign.

  3. Add an action and select Other > ZAP~POST Individual Post.

  4. In the Settings tab:

    1. Enable Authentication and select the webhook authentication you created.
    2. Select the required consent category.
  5. In the Parameters tab, fill in the Campaign ID— for example, 46761c11-ec52-ee11-9937-6045bdd0c438. This is required and can be found in the URL on the Campaign Edit page. Go to Campaigns > Edit Zap design to find it.

  6. Customize the required customer properties. You can modify values in the Parameters tab or directly in the JSON:

PropertyFormat
CustomerIdMust be unique
FirstnameAlphanumeric, space, -, (, ), ., ' only
SurnameAlphanumeric, space, -, (, ), ., ' only
Address1Alphanumeric, space, ', ., &, -, /, , ), (, , only
PostcodeAlphanumeric, -, spaces only
CountryLetters, space, -, (, ), ., &, ' only
  1. Click Save.
🚧

Important

The webhook sends with just the Campaign ID and returns a 200 response, but no customer data is included unless you fill in the customer properties. Read tooltips by hovering over the i icon and refer to the ZAP~POST documentation for more on optional properties like Address 3.

You can also catch error responses from the action node to handle invalid addresses—notify the customer via email or SMS to update their postal address, or flag the record in Bloomreach until corrected. Remove invalid addresses from future submissions via consent revocation or a flag on the customer record.

Use case 2 — batch campaigns (Submissions endpoint)

To use the /api/v1/submissions endpoint, start from the ZAP~POST Individual Post preset and modify it as described below. Use this for campaigns targeting a list of customers. For example, subscription expiry reminders or a reactivation campaign for customers who last purchased a while ago.

  1. Open the ZAP~POST Individual Post action in your scenario and click the Editor tab.
  2. Change Endpoint to /api/v1/submissions.
  3. Click Batch webhook, then Turn on and reset template.
  4. In the Root section, paste everything from the original Payload and change the inside of the submissions square brackets to: {{ customers | join(",") }}.
  5. In the Customer section, paste the contents of the original submissions array without the square brackets.

Next steps

Before launching your scenario, preview and test the complete workflow in the Test tab. When you click Start, a confirmation window shows how many customers the scenario will reach.


Did this page help you?

© Bloomreach, Inc. All rights reserved.