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.
Navigate to Administration > E-commerce > System Transactions
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
userIdmust be an email addressImporting 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.orderTotalProduct-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.