# Order event history

The order event history provides a chronological, immutable record of all operational events on an order or operative entity. It shows what happened, when it happened, why it happened, and, if GDPR allows, who triggered the change. It covers the full order lifecycle and related entities, including pick jobs, pack jobs, parcels, handover jobs, routing plans, service jobs, and external actions. All events are exposed through the [process history logs REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/processes/-processId-/historylogs).

A log entry always includes:

* **Domain:** The entity type the event belongs to (for example, `ORDER`, `PARCEL`, `PICKJOB`).
* **Event type**: The unique identifier for the event (for example, `ORDER_CREATED`, `PICKING_DONE`)
* **Type:** The category group for the event (for example, `ORDER_LIFECYCLE`, `FULFILLMENT`)
* **Info**: Human-readable event title displayed in the UI.
* **Time stamp**: When the event occurred.
* **Event cause:** Detailed explanation of when and why the event occurred.
* **User**: Information about the user or system that triggered the event. The user object is included in the event history entry only when the acting person is recorded under [GDPR actorAnonymization](https://docs.fulfillmenttools.com/documentation/by-pillar/order-management/gdpr-configuration). If user attribution isn't permitted, the log entry is stored without user information.
* **Payload:** Additional structured information depending on the event type.

## Event types

The following table describes all supported `ProcessHistoryEventType` values and their meaning.

<table><thead><tr><th width="356.24609375">Event type</th><th>Description</th></tr></thead><tbody><tr><td><code>ORDER_CREATED</code></td><td>The order was created and now has an open status.</td></tr><tr><td><code>LOCKED_ORDER_CREATED</code></td><td>The order was created with a locked status.</td></tr><tr><td><code>DELIVERY_PROMISE_CREATED</code></td><td>This indicates that an initial <a href="../availability-and-promising/delivery-promise">order delivery promise</a> was generated.</td></tr><tr><td><code>ORDER_CREATED_FROM_PROMISE</code></td><td>The previously created delivery promise was confirmed and turned into a real order.</td></tr><tr><td><code>ORDER_CANCELLED</code></td><td>A user or system rule canceled the order.</td></tr><tr><td><code>ORDER_FORCE_CANCELLED</code></td><td>The order was forcibly cancelled, bypassing standard validation.</td></tr><tr><td><code>ORDER_UNLOCKED</code></td><td>A previously locked order was unlocked.</td></tr><tr><td><code>ORDER_MANUAL_REROUTE</code></td><td>A user manually triggered a reroute.</td></tr><tr><td><code>UNROUTABLE_ITEMS_REROUTE</code></td><td>A reroute of the unroutable items was triggered.</td></tr><tr><td><code>ORDER_MANUAL_FACILITY_ASSIGNMENT</code></td><td>A user manually assigned a facility to the order.</td></tr><tr><td><code>ORDER_TIME_TRIGGERED_REROUTE</code></td><td>A scheduled rule triggered a reroute.</td></tr><tr><td><code>ORDER_HAS_UNROUTABLE_ITEMS</code></td><td>The system detected items that can't be routed.</td></tr><tr><td><code>ORDER_INACTIVITY_TIME_TRIGGERED_REROUTE</code></td><td>A reroute was triggered due to inactivity.</td></tr><tr><td><code>TASK_MANUAL_REROUTE</code></td><td>A user manually rerouted a picking task, not the complete order.</td></tr><tr><td><code>ORDER_MODIFICATION_REROUTE</code></td><td>The system rerouted the order due to an order modification.</td></tr><tr><td><code>CONSUMER_ADDRESS_CHANGED</code></td><td>The consumer's address was updated.</td></tr><tr><td><code>ORDER_ITEM_AMOUNT_CHANGED</code></td><td>The quantity of the original order line item changed.</td></tr><tr><td><code>ORDER_ITEM_DELETED</code></td><td>A line item was removed from the original order.</td></tr><tr><td><code>ORDER_ITEM_ADDED</code></td><td>A new item was added to the original order.</td></tr><tr><td><code>ORDER_PREFERRED_DATE_MODIFIED</code></td><td>The preferred handling or delivery date was updated.</td></tr><tr><td><code>OPERATIVE_TASK_CREATED</code></td><td>A pick job or handover job was created.</td></tr><tr><td><code>PICKING_IN_PROGRESS</code></td><td>Picking started.</td></tr><tr><td><code>PICKING_DONE</code></td><td>Picking was completed successfully.</td></tr><tr><td><code>PICKING_DONE_INCOMPLETE</code></td><td>Picking finished with missing items.</td></tr><tr><td><code>PICKING_ABORTED_NO_ITEMS_PICKED</code></td><td>Picking was aborted without picking any items.</td></tr><tr><td><code>PICKING_DONE_INCOMPLETE_REROUTE</code></td><td>The system rerouted after the picking task resulted in a short pick.</td></tr><tr><td><code>PICKING_RESET</code></td><td>A picking process was reset.</td></tr><tr><td><code>PICKING_RESTART</code></td><td>A picking process was restarted.</td></tr><tr><td><code>PACKING_CREATED</code></td><td>A packing job was created.</td></tr><tr><td><code>PACKING_IN_PROGRESS</code></td><td>Packing was started.</td></tr><tr><td><code>PACKING_DONE</code></td><td>Packing was completed.</td></tr><tr><td><code>PARCEL_LABEL_REQUESTED</code></td><td>A shipping label for a parcel was requested.</td></tr><tr><td><code>PARCEL_CREATED</code></td><td>A parcel was created.</td></tr><tr><td><code>HANDOVER_CREATED</code></td><td>A handover job was created.</td></tr><tr><td><code>HANDOVER_DONE</code></td><td>Handover was completed successfully.</td></tr><tr><td><code>HANDOVER_DONE_WITH_REFUSED_ITEMS</code></td><td>Handover completed with refused items.</td></tr><tr><td><code>HANDOVER_CANCELED</code></td><td>A handover job was cancelled.</td></tr><tr><td><code>CARRIER_CHANGED</code></td><td>The carrier was changed.</td></tr><tr><td><code>SERVICEJOB_CREATED</code></td><td>A service job was created.</td></tr><tr><td><code>SERVICEJOB_IN_PROGRESS</code></td><td>A service job was started.</td></tr><tr><td><code>SERVICEJOB_DONE</code></td><td>A service job was completed.</td></tr><tr><td><code>SERVICEJOB_CANCELED</code></td><td>A service job was canceled.</td></tr><tr><td><code>ACTION_TRIGGERED</code></td><td>An <a href="../../integrations/external-actions">external action</a> was triggered.</td></tr><tr><td><code>COMMENT_ADDED</code></td><td>A user added a comment to the entity.</td></tr></tbody></table>

### Payload overview

Depending on the event type, the payload provides additional structured information. Examples include:

* **Reroute payloads** (manual, automatic, unroutable items): Contains reroute reasons, localized descriptions, and target facility information.
* **Order cancellation payload:** Includes cancellation reasons and localized texts.
* **Order modification payloads:** Covers address changes, preferred handling time updates, and line item modifications.
* **Operative entity payloads:** Provides facility context for pick, pack, and service jobs.
* **Parcel label creation failure payload:** Includes facility information and an error message.
* **Picking incomplete payload:** Lists short-picked items and reasons.
* **Carrier changed payload:** Includes previous and new carrier.

Payloads are always tailored to the event type and can include localized fields, facility references, article details, or operational metadata.
