---
title: "System Transactions"
slug: "system-transactions"
updated: 2026-01-27T13:26:40Z
published: 2026-01-27T13:26:40Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# System Transactions

## Overview

System Transactions store transactional data, such as order and product details, directly in a contact’s profile. This data can be used for segmentation, automations, and transactional messaging based on purchase history.

Unlike features such as Wishlists or Abandoned Carts, System Transactions do not require a product catalog. This makes them suitable for a wide range of eCommerce and custom transactional use cases.

---

## Navigation Path

*Administration > E-commerce > System Transactions*

---

## Common Use Cases

- Storing completed order and product data directly on contact profiles for long-term use
- Segmenting contacts based on purchase history, such as products bought, order value, or purchase frequency
- Triggering automations or transactional messages based on completed purchase data
- Personalizing transactional or follow-up messages using order and product details
- Supporting e-commerce and custom transactional scenarios where no product catalog is available
- Reusing persistent transactional data across segmentation, automations, and message personalization

---

## Transaction Behavior

- **Transactional data storage**: order-related data is stored in the Transactional Related Data table of a contact profile and can be used in segments, automations, and transactional messages.
- **No product catalog dependency**: System Transactions work independently of a product catalog, unlike Wishlists or Abandoned Carts.
- **Contact-based persistence**: transactions are stored for existing contacts in the Mapp Engage instance, except when data is injected via Mapp Connect, which can automatically create contacts.
- **Multiple ingestion sources**: transactional data can be injected via integrations, imports, or API-based processes.

---

## Data Structure and Behavior

### Key Column and Key-Value Structure

System Transactions use a key-value structure to uniquely identify each transaction record.

The key is a combination of:

- `orderId`
- `contactId` (internal contact identifier)

This combination forms the key-value pair `orderId-userId`.

The resulting value is displayed as the **Key Column** in the transaction table. The `userId` or internal `contactId` is not shown separately in the table and cannot be edited or configured.

The **Key Column** is not part of the System Transactions data structure and does not appear in the structure table. It is used internally to identify transaction records and to enable searching transactions using a key prefix.

---

### System Transactions Table Structure

Each row in the System Transactions table represents a product within an order.

#### Required Fields

| **Field** | Description | Type |
| --- | --- | --- |
| **Key Column** | Combination of `orderId` and internal `contactId` | String |
| **orderId** | Unique identifier of the order | String |
| **timestamp** | Timestamp of the order | DateTime |
| **productSKU** | Product identifier (SKU) | String |
| **productName** | Name of the product | String |
| **productPrice** | Product price, raw number without currency | Number |
| **productQuantity** | Quantity of the product in the order | Number |

---

#### Optional Fields

| **Field** | Description | Type |
| --- | --- | --- |
| storeId | Used for multi-shop scenarios | String |
| currency | Defaults to the currency set in the Transactional RD if not provided | String |
| returnedQuantity | Defaults to 0, used for return transactions | Number |
| imageURL | Link to the product image | String |
| productURL | Link to the product page | String |
| category | Product category | String |
| brand | Product brand | String |
| variant | Product variant, such as color or material | String |
| discountValue | Discount value per order | Number |
| discountPercentage | Discount percentage per order, value between 0 and 1 | Number |
| purchaseSource | Source of the purchase, such as campaign name or channel | String |
| customDetail1–customDetail5 | Custom fields added by extending the table structure | – |

---

## Differences from Other E-commerce Features

- **Compared to Wishlists and Abandoned Carts**: System Transactions do not rely on a product catalog and focus on completed transactions rather than browsing or intent data.
- **Compared to event-based data**: transactional records are stored persistently and can be reused across segmentation, automations, and message personalization.
