Injection of Transactional Data into Mapp Engage

Prev Next

Overview

Injection of transactional data allows you to store order and purchase information in Mapp Engage. The injected data is saved as System Transactions and can be used for segmentation, automations, and personalization.

Transactional data can be stored independently or stored and sent together with a transactional email, for example, for order confirmations or shipping notifications.


Navigation Path

Administration > E-commerce > System Transactions


Injection Behavior

  • Multiple injection methods: transactional data can be injected via Mapp Connect integrations, automated imports, manual uploads, or REST API calls.

  • Optional email sendout: data can be stored without sending a message or stored and sent together with a transactional email.

  • Contact-based storage: transactions are stored only for existing contacts, unless using Mapp Connect, which can automatically create contacts.

  • Reusable data: stored transactions remain available for segmentation, automations, and message personalization.


Injection Methods

Mapp Connect Integration

Mapp Connect supports automatic injection of transactional data from connected e-commerce platforms, including:

  • Magento (Adobe Commerce)

  • Shopware

  • Shopify

  • WooCommerce (via Zapier)

  • Other platforms are integrated via Zapier using an order event

When transactional data is injected via Mapp Connect, contacts that do not yet exist in the system are created automatically.

For details, see Mapp Connect Basics.


Automated Imports

Transactional data can be imported using scheduled automated jobs. These jobs are configured in the Whiteboard interface and allow recurring imports without manual intervention.

For details, see Import/Export.


Manual Import

Transactional data can also be imported manually.

  1. Navigate to Administration > E-commerce > System Transactions

  2. Use the provided sample file to upload transaction records

For details, see Manual Import & Search of eCommerce Data.


API-Based Data Injection

Transactional data can be injected via the REST API. Two different scenarios are supported.


Storing Transactional Data Without Email Sendout

Transactional data can be stored without sending a message.

Behavior

  • All required fields must be provided

  • The userId must be an email address

  • Importing transactions does not trigger the New Transaction Registered event in Whiteboard

REST API reference

Endpoint: POST /rest/transactional/createrecord

For details, see this endpoint in the API documentation.

Example request

POST /rest/transactional/createrecord
{
  "userId": "user@example.com",
  "transactionId": "1234567890",
  "transactionDate": "2023-01-01T12:00:00Z",
  "orderTotal": 150.00
}

This method is typically used when transactional data is required for segmentation or later automation, but no immediate message should be sent.


Storing Transactional Data With Email Sendout

Transactional data can be stored, and a transactional email can be sent in the same request.

REST API reference

Endpoint: POST /rest/transactional/sendTransactionalWithEventDetails

For details, see this endpoint in the API documentation.

Example request

POST /rest/transactional/sendTransactionalWithEventDetails
{
  "userId": "user@example.com",
  "transactionId": "1234567890",
  "transactionDate": "2023-01-01T12:00:00Z",
  "orderTotal": 150.00,
  "emailContent": "<h1>Order Confirmation</h1>"
}

This approach is commonly used for order confirmations, shipping notifications, or payment confirmations.


Transactional Email Usage

When transactional data is injected alongside an email sendout, it becomes available in the email template.

  • Order-level data is accessed via parameters such as parameter.orderTotal

  • Product-level data is accessed via a loop over the transaction details

  • Conditional content can be rendered when optional values are present


Example Transactional Email Template

<html>
  <body>
    <p>Dear <%user.firstname%> <%user.lastname%>,</p>
    <p>Thank you for shopping with us! Please find your order details below:</p>
    <table width="100%" cellpadding="10" cellspacing="0" border="0">
      <tr>
        <td valign="top">
          <h3>Billing Information</h3>
          <p><%parameter.billingAddress%></p>
        </td>
        <td valign="top">
          <h3>Shipping Information</h3>
          <p><%parameter.shippingAddress%></p>
        </td>
      </tr>
    </table>
    <%ForEach var="product" items="${transaction_details}"%>
      <table width="100%" cellpadding="10" cellspacing="0" border="0">
        <tr>
          <td align="center">
            <a href="<%${product['productURL']}%>">
              <img src="<%${product['imageURL']}%>" width="280" />
            </a>
            <p><strong><%${product['brand']}%></strong></p>
            <p><%${product['productName']}%></p>
            <p>
              Quantity: <%${product['productQuantity']}%>,
              Price: <%${product['productPrice']}%>
            </p>
          </td>
        </tr>
      </table>
    <%/ForEach%>
    <h2>Total: <%parameter.orderTotal%> <%parameter.currency%></h2>
    <p>Best regards,<br>The [Your Company Name] Team</p>
  </body>
</html>

The recipient receives a personalized transactional email displaying billing and shipping information, a list of purchased products, and the total order value.