Dotdigital Integration – Litecard Setup Instructions

Overview

This integration involves sending two API calls to Dotdigital during the Litecard signup process:

  1. Update Contact Data Fields – Ensures contact information in Dotdigital is current and ready for downstream integrations (e.g., Yotpo).
  2. Trigger Campaign Email – Sends a personalised campaign email (including the Apple Wallet link, name, etc.) to the contact.

Platform overview:

Dotdigital: Dotdigital is a marketing automation platform that helps businesses engage customers through email, SMS, and other channels. It connects with eCommerce and CRM systems, enabling personalised campaigns, automation journeys, and data-driven insights to improve customer engagement and loyalty.

Litecard: Litecard is a wallet-led marketing platform that lets brands digitise their loyalty cards, vouchers, and offers directly into Apple Wallet and Google Wallet. It helps retailers and partners drive customer engagement with personalised updates, push notifications, and seamless in-store or online redemption, without the need for a standalone app.

Value proposition of the partnership:
The Dotdigital + Litecard partnership links CRM/email campaigns with mobile wallet offers or membership cards, driving faster online and in-store purchases.

Example: BONDS (Hanes Brands) saw 45% more orders, 38% more items per order, and 93% more revenue using Dotdigital emails + Litecard wallet passes.

  • Converts CRM intent into sales
  • Boosts engagement with push notifications (no app needed)
  • Personalises at scale
  • Connects online campaigns to in-store redemption

Although Dotdigital allows sending campaigns to new contacts without pre-adding them, we recommend updating contact data first for:

  • Accurate record-keeping
    Cross-platform mapping (Litecard ↔ Dotdigital ↔ Yotpo)
    Easier reporting and audience segmentation


1. Update Contact Data Fields

Endpoint:
PUT https://api.dotdigital.com/v2/contacts/{contactId}
(Use POST to /v2/contacts if the contact does not exist)

Headers:

Authorization: Basic <base64 encoded APIUser:Password>
Content-Type: application/json

Request Body Example:

{
“email”: “jane.doe@example.com”,  
“dataFields”: {
“APPLE_PASS_LINK”: “https://litecard.io/apple/abc123“,
    “GOOGLE_PASS_LINK”: “https://litecard.io/google/abc123“,
“LITECARD_ID”: “1232432452”,
“DOWNLOAD_LINK”: “https://litecard.io/welcome?id=sdferfe343”
  },
“optInType”: “Single”
}

Notes:

  • APPLE_PASS_LINK stores the Litecard generated Apple pass link for CRM and campaign mapping.
  • GOOGLE_PASS_LINK stores the Litecard generated Google pass link for CRM and campaign mapping.
  • LITECARD_ID stores the unique Litecard pass identifier for troubleshooting and sending targeted push notifications from the Litecard dashboard.
  • DOWNLOAD_LINK stores the Litecard pass download page link for re-sharing with contacts if they missed the email invitation.
  • Ensure email or a unique identifier exists.
  • dataFields keys must match your Dotdigital account’s configured custom fields.

Success Response:

{
“id”: 123456,
“email”: “jane.doe@example.com”,
“status”: “Subscribed”
}



2. Trigger Campaign Email

Endpoint:
POST https://api.dotdigital.com/v2/campaigns/{campaignId}/actions/sendtoaddresses

Headers:

Authorization: Basic <base64 encoded APIUser:Password>
Content-Type: application/json

Request Body Example:

{
“emailAddresses”: [“jane.doe@example.com”],
“personalisation”: {
“FIRSTNAME”: “Jane”,
“APPLE_PASS_LINK”: “https://litecard.io/apple/abc123“,
“GOOGLE_PASS_LINK”: “https://litecard.io/google/abc123“,
“LITECARD_ID”: “1232432452”,
“DOWNLOAD_LINK”: “https://litecard.io/welcome?id=sdferfe343”
}
}

Notes:

  • campaignId corresponds to the Dotdigital campaign configured to include wallet download links.
  • Personalisation fields must match placeholders in the Dotdigital campaign template.

Success Response:

{
“message”: “Campaign send initiated”,
“status”: “Accepted”
“recipients”: 1
}



Recommended Flow

  1. Check if contact exists in Dotdigital.
  2. If contact exists: PUT /contacts/{contactId} to update data fields.
    If not: POST /contacts to create it.
  3. Immediately trigger the campaign email with POST /campaigns/{id}/actions/sendtoaddresses.


Example Sequence

[Litecard signup form submission]

       ↓

Create/Update Contact in Dotdigital (API Call #1)

       ↓

Trigger Campaign Email with wallet link (API Call #2)

       ↓

User receives wallet link in inbox → Downloads Litecard pass



Testing:
You can test the end-to-end flow using the demo signup form:
https://demo.litecard.io/form/EZQKJFN-XxGKmTpjAaQhl

A working example is available in the demo video:
https://drive.google.com/file/d/1Sj-Z4ng5362z6HWalJEKrHT8fExOeAWC/view?usp=sharing

Flow Chart

Example Integrated Campaign with Litecard

Digital wallet card can be a membership card, coupon/offer, instore pickup token, ticket, etc.

Connect with Litecard

Find out how brands are using our platform to break CRM records for transactional volume, revenue per customer and loyalty/engagement.