OppiziDeveloper
Guides

Create an ADM Campaign

Build an address-list Direct Mail (ADM) campaign end-to-end — draft, targeting, design, details, and submit for review.

An ADM (address-list Direct Mail) campaign mails postcards to an address list you've uploaded — your own customers or prospects. This guide walks the full flow, from an empty draft to a campaign sitting In Review.

The flow has five steps:

  1. Create a draft campaign.
  2. Link an audience (your uploaded address list) and set targeting.
  3. Select a design from your library.
  4. Set details — mail-piece format and launch date.
  5. Submit for review.

Campaign creation always stops at In Review. Nothing is printed, mailed, or charged until the Oppizi team confirms it.

Prerequisites

  • A client key (see Authentication), or an MCP connection with the campaigns:create scope (see Connect Claude or ChatGPT).
  • At least one audience (uploaded address list) and one design on your account. List them with GET /client/audiences and GET /client/designs.
export OPPIZI_CLIENT_KEY="YOUR_CLIENT_KEY"
export API="https://developer-api.oppizi.com"

Step 1 — Create a draft

curl -X POST "$API/client/campaigns" \
  -H "Authorization: Bearer $OPPIZI_CLIENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Spring re-engagement — ADM",
    "type": "ADM"
  }'

You get back the new campaign with its id and a DRAFT status:

{
  "success": true,
  "data": {
    "id": "cmp_9f21",
    "name": "Spring re-engagement — ADM",
    "type": "ADM",
    "status": "DRAFT"
  }
}

Keep the id — every following step references it.

Pick an audience (your uploaded address list) and attach it to the draft. List your audiences first if you don't have the id handy:

curl "$API/client/audiences" \
  -H "Authorization: Bearer $OPPIZI_CLIENT_KEY"

Then link it and set targeting:

curl -X POST "$API/client/campaigns/cmp_9f21/targeting" \
  -H "Authorization: Bearer $OPPIZI_CLIENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "audienceId": "aud_4410"
  }'

For ADM, the audience is the targeting — the postcards go to the addresses on that list.

Step 3 — Select a design

Choose a design from your library:

curl "$API/client/designs" \
  -H "Authorization: Bearer $OPPIZI_CLIENT_KEY"

curl -X POST "$API/client/campaigns/cmp_9f21/design" \
  -H "Authorization: Bearer $OPPIZI_CLIENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "designId": "dsn_7781" }'

Step 4 — Set details

Set the mail-piece format and the launch date:

curl -X POST "$API/client/campaigns/cmp_9f21/details" \
  -H "Authorization: Bearer $OPPIZI_CLIENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "format": "POSTCARD_6x9",
    "startDate": "2026-08-01"
  }'

Step 5 — Submit for review

curl -X POST "$API/client/campaigns/cmp_9f21/submit" \
  -H "Authorization: Bearer $OPPIZI_CLIENT_KEY"

The campaign moves to In Review:

{
  "success": true,
  "data": { "id": "cmp_9f21", "status": "IN_REVIEW" }
}

Check where it sits any time with GET /client/campaigns/cmp_9f21/status-tracking.

The same flow via MCP

If you've connected an AI assistant, the builder walks the identical steps using its campaign tools:

StepMCP tool
Create draftcreate_campaign
Targeting / audienceset_campaign_targeting, link_campaign_audience
Designselect_campaign_design
Format & dateset_campaign_details
Submitsubmit_campaign

You don't call these by name — you just describe what you want:

"Create an ADM postcard campaign to my 'Lapsed customers' list using my Spring postcard design, 6x9, launching August 1st — then submit it for review."

The assistant fills each step, tells you anything that's still missing, and stops at In Review. See Connect Claude or ChatGPT and the AI Assistant page for setup.

Next steps

On this page