Skip to main content

Dotdigital Transaction From iPaaS.com Mapping Documentation

How the iPaaS.com integration sends order transactions and their line items to Dotdigital as contact insight data, including field mappings, setup, and validation.

Summary

This integration sends an iPaaS.com Transaction to Dotdigital as order insight data. Each order is written as a record in Dotdigital's contact insight data and stored against the contact it belongs to, so that order history, transactional campaigns, and reporting in Dotdigital reflect the iPaaS.com order. The order's line items transfer with it through the child collection Add Dotdigital Transaction Line FROM iPaaS.com, so a single transfer carries both the order and everything that was purchased on it.

This is an Add flow. An order carrying a transaction key that does not yet exist in Dotdigital is created, and a repeat transfer of the same key updates the existing order record in place rather than creating a duplicate. The flow is one-way, from iPaaS.com to Dotdigital.

ID Format

Manual Sync ID — the transaction key and the contact email joined by a vertical bar, in the form transaction key, a vertical bar, then the contact email (for example, 13|john.doe@example.com). Both parts are entered on the iPaaS.com Manual Sync page when an order is transferred on demand.

External ID Format

After a successful transfer, iPaaS.com records the order's stored key so that later transfers of the same order upsert the same insight-data record rather than creating a duplicate.

Deleted Record Support

Deleted records are not supported. This is an Add-only flow: it creates and updates order insight data in Dotdigital, and deletions do not propagate. Removing an order in iPaaS.com does not remove the corresponding order from Dotdigital.

Custom Field Support

Dotdigital order insight data can carry additional fields beyond the shipped mappings. Subscribers or their MiSP can extend this collection to map additional iPaaS.com Transaction values into the order's insight data as needed.

Mapping Collection Status

Status — Enabled.

Trigger Events — Transaction Create, enabled under Outbound Data Flows. No automatic transfers occur until the Transaction created event is subscribed to.

Duplicate or Conflicting Mappings

There is no collision handling, because no other collection writes Dotdigital order insight data. Create-versus-update routing is handled within this single collection by the order's transaction key: a repeat transfer carrying an existing transaction key updates the existing order in place instead of duplicating it, and a new key creates a new order.

Supported Child Collections

Add Dotdigital Transaction Line FROM iPaaS.com — the order's line items. The lines are read from the Transaction's lines and written together with the parent order in the same transfer. There is no independent transfer path for a single line item.

System Caveats

Dotdigital Caveats

  • CollectionScope and CollectionType are mandatory. Dotdigital rejects the record if either is missing; they are set to contact and orders respectively.

  • The currency must be a valid ISO 4217 code (for example, USD, GBP, EUR).

  • The referenced transactional-email campaign must already exist in the connected Dotdigital account. If it does not, the lookup returns nothing and no transactional email is sent for the order.

iPaaS.com Caveats

  • The order is stored against a contact resolved by email, so a Transaction whose customer has no email on record cannot be linked to a contact.

  • The insight-data collection the order is written to is named by the Collection Name subscription setting, which defaults to Purchases when left blank.

Setup Requirements

  1. In Dotdigital, create an API user with permission to access the insight-data and campaign APIs.

  2. In Dotdigital, create the order-confirmation triggered campaign the order's transactional email should use, and update the campaign reference on this collection to match it.

  3. In iPaaS.com, enter the Dotdigital API User and API Password, and set the Collection Name if a value other than Purchases is required.

Integration Flow

  1. An iPaaS.com Transaction is transferred, either automatically when the Transaction created outbound trigger fires or on demand from the Manual Sync page.

  2. The integration resolves the Dotdigital contact the order belongs to from the order's customer email address.

  3. The integration ensures the insight-data collection named by the Collection Name setting (default Purchases) exists, creating it if necessary.

  4. The integration writes the order — including its line items — to that insight-data collection against the contact, keyed on the order's transaction key. A key that already exists updates the existing order; a new key creates a new one.

Mappings

Add Dotdigital Transaction FROM iPaaS.com

This parent collection writes the order record. There is no mapping filter applied: every iPaaS.com Transaction reached through an enabled outbound trigger or Manual Sync is processed.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Dotdigital)

Description

Field

EmailAddress

ContactIdentifier

Required. The email address of the contact the order belongs to. Dotdigital attaches the order's insight data to this contact, so the transfer cannot complete without it.

Dynamic Formula

var CustomerEmail =await ContactEmailUsingId(CustomerId);
return CustomerEmail;

Identifiervalue

Required. Resolves the contact's email address from the order's customer. If the customer has no email on record, the order cannot be linked to a contact.

Static

"email"

IdentifierType

Required. Tells Dotdigital the contact is identified by email. Leave it set to email.

Field

TransactionNumber

Id

Required. The order's unique identifier in Dotdigital, taken from the iPaaS.com transaction number. Must be unique for each order.

Field

TransactionNumber

TransactionKey

Required. The key Dotdigital uses to match an order on repeat transfers. A transfer carrying a key that already exists updates the existing order, so the value must be unique per order.

Static

"orders"

CollectionType

Required. Identifies the insight-data collection type as orders. Leave it set to orders.

Static

"contact"

CollectionScope

Required. Identifies the collection scope as contact, so the order data is stored against individual contacts. Leave it set to contact.

Field

Status

OrderStatus

Recommended. The status of the order, taken from the iPaaS.com transaction status. Supports order-status reporting and triggered programs.

Dynamic Formula

ToDotDigitalDateFormat(TransactionCreatedDateTime)

PurchaseDate

Recommended. The date and time the order was placed, taken from the transaction's created date and converted into the format Dotdigital expects. Used for order-date reporting and time-based automations.

Field

Subtotal

OrderSubtotal

Recommended. The order subtotal before tax, shipping, and discounts, taken from the iPaaS.com transaction subtotal. Used for revenue reporting.

Field

Total

OrderTotal

Recommended. The final order total, taken from the iPaaS.com transaction total. Used for revenue reporting.

Field

Total

BaseSubtotalInclTax

Recommended. The order subtotal including tax, taken from the iPaaS.com transaction total. Supports tax-inclusive revenue reporting.

Field

EmailAddress

Email

Recommended. The contact's email address recorded on the order, taken from the iPaaS.com customer email. Carries the order's contact email alongside the identifier used to attach the order.

Static

"iPaaS.com"

SalesChannel

Recommended. Labels the channel the order came through. Subscribers or their MiSP may change it to the name of the sales channel or store the orders originate from for channel-level reporting.

Static

"USD"

Currency

Recommended. The currency the order is recorded in, as an ISO 4217 code. Placeholder value — replace during implementation: set it to the currency your orders are actually placed in, or map it from an order currency field.

Dynamic Formula

await CampaignIdFromNameAsync("OrderConfirmation");

TransactionalEmailCampaignId

Recommended. Resolves the Dotdigital campaign used to send the order's transactional email by looking it up by name. Placeholder value — replace during implementation: a campaign named OrderConfirmation must already exist in Dotdigital, or change the name to match your existing order-confirmation campaign.

Field

DiscountAmount

DiscountAmount

Optional. The total discount applied to the order, taken from the iPaaS.com transaction discount amount. Supports promotion and discount reporting.

Field

ShippingAmount

DeliveryTotal

Optional. The shipping (delivery) charge on the order, taken from the iPaaS.com transaction shipping amount. Supports shipping-cost reporting.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "Address1");

DeliveryAddress1

Optional. The first line of the delivery address, taken from the first address on the order marked as the primary shipping address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "Address2");

DeliveryAddress2

Optional. The second line of the delivery address, taken from the first address marked as the primary shipping address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "City");

DeliveryCity

Optional. The delivery city, taken from the first address marked as the primary shipping address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "PostalCode");

DeliveryPostcode

Optional. The delivery postal code, taken from the first address marked as the primary shipping address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "Country");

DeliveryCountry

Optional. The delivery country, taken from the first address marked as the primary shipping address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryBilling == true", "Address1");

BillingAddress1

Optional. The first line of the billing address, taken from the first address on the order marked as the primary billing address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryBilling == true", "Address2");

BillingAddress2

Optional. The second line of the billing address, taken from the first address marked as the primary billing address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryBilling == true", "City");

BillingCity

Optional. The billing city, taken from the first address marked as the primary billing address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryBilling == true", "PostalCode");

BillingPostcode

Optional. The billing postal code, taken from the first address marked as the primary billing address.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryBilling == true", "Country");

BillingCountry

Optional. The billing country, taken from the first address marked as the primary billing address.

No mapping filter is applied to this collection.

Add Dotdigital Transaction Line FROM iPaaS.com

This is a child collection of Add Dotdigital Transaction FROM iPaaS.com. Its line items are read from the Transaction's lines and written together with the parent order in a single operation; there is no independent transfer path for a single line. There is no mapping filter applied: every line item of a processed Transaction is sent with its order.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Dotdigital)

Description

Field

Description

Name

Required. The name of the line item, taken from the iPaaS.com transaction line description. Each order line must carry a name to be identifiable in the order's insight data.

Field

Sku

SKU

Recommended. The product's stock-keeping unit, taken from the iPaaS.com transaction line SKU. Used to tie order lines back to specific products for reporting and product-based automations.

Field

UnitPrice

Price

Recommended. The price per unit for the line item, taken from the iPaaS.com transaction line unit price. Used for order-value and revenue reporting.

Field

Qty

Qty

Required. The quantity purchased for the line item, taken from the iPaaS.com transaction line quantity. Each order line must carry a quantity for the order totals and reporting to be accurate.

No mapping filter is applied to this collection.

Error Handling

  • Invalid transaction date — the order's purchase date cannot be converted into the format Dotdigital expects, so the transfer fails. Confirm the source transaction carries a valid created date before re-syncing.

  • Order could not link to a contact — the order's customer has no email on record, so Dotdigital cannot resolve the contact the order should be stored against. Ensure the customer has a valid email address, then re-sync the order.

Testing & Validation

Test Scenarios

  • Transfer an order with a new transaction key and confirm a new order insight-data record is created against the correct contact.

  • Re-transfer the same order with an existing transaction key and confirm the existing record is updated in place rather than duplicated.

  • Transfer an order whose customer has no email and confirm the transfer reports a link error rather than creating an unlinked record.

  • Transfer an order with multiple line items and confirm each line's name, SKU, price, and quantity appear in the order detail.

Validation Checklist

  • Confirm the transaction key is populated and unique for each new order.

  • Confirm the customer email resolves to the intended Dotdigital contact.

  • Confirm the Collection Name setting names the intended insight-data collection (default Purchases).

  • Confirm the Currency value matches the currency your orders are placed in.

  • Confirm the order-confirmation campaign referenced by TransactionalEmailCampaignId exists in Dotdigital.

  • Confirm the order's line items appear with the expected name, SKU, price, and quantity.


Related Documents

Did this answer your question?