Feature Overview
Sales Order Types, Sales Order Statuses, and Order Origins are three lightweight classification and routing tables that allow you to attach structured metadata to sales orders and connect that metadata to automated actions in your integration platform. Together they give every sales order — whether manually created in Business Central or imported from an external channel — a clear identity: what kind of order it is, what state it is in from a business process perspective, and where it originated.
Sales Order Types classify an order by its commercial or operational nature. Examples might include Pre-order, Stock Order, Sample Order, or Replenishment. The type is stored as a free text field on the sales order header and, when the Master Data Information app is installed, it is backed by an MDI lookup so that valid types are maintained as master data. Each Sales Order Type can optionally carry a Trigger Action — a webhook that fires automatically when that type is assigned to an order, allowing downstream systems to react immediately to the classification.
Sales Order Statuses work in the same way but represent the operational or fulfilment state of an order within your process — states that go beyond Business Central's own Open/Released/Pending Approval model. A Trigger Action on a status fires when that status is applied, enabling event-driven integration flows. Together, types and statuses give you two independent classification axes, both of which can drive automation.
Order Origins identify the source channel of an imported order (e.g. WEBSHOP, FIELD, CONSIGNMENT). Unlike types and statuses, Order Origins are set at import time and do not change. They control channel-specific behaviour: whether the channel uses special freight, and which payment retrieval webhook to call when an order from that channel is posted.
Trigger Actions is the shared lookup table that both Sales Order Types and Sales Order Statuses reference. A Trigger Action is simply a code with a description — its meaning is defined by the integration platform that executes the webhook when it is invoked. Maintaining triggers as a lookup table keeps order type and status setup consistent and prevents typos or misconfigurations in the webhook codes.
| Key fact | Detail |
|---|---|
| Sales Order Type setup | Sales Order Type page |
| Sales Order Status setup | Sales Order Status page |
| Order Origins setup | New Order Origin Codes |
| Trigger Actions setup | Trigger Actions page |
| Trigger Action integration | Via Data Contract Manager / webhook infrastructure |
| Order Type field on Sales Order | Requires Master Data Information app for full lookup functionality |
Getting Started
- Search for Trigger Actions and create the action codes that your integration platform will respond to (e.g.
NOTIFY-ERP,SEND-CONFIRM,FLAG-REVIEW). Enter a code and a description for each. - Search for Sales Order Type and create the order type codes relevant to your business (e.g.
PREORDER,STOCK,SAMPLE). For each type, optionally assign a Trigger Action. - Search for Sales Order Status and create the custom status codes relevant to your fulfilment workflow (e.g.
PICKING,SHIPPED,ON-HOLD). For each status, optionally assign a Trigger Action. - Search for New Order Origin Codes and create one code per inbound channel (e.g.
WEBSHOP,FIELD). For each code, optionally enable Use Special Freight and set a Retrieve Payment webhook. - On a Sales Order, the Order Type field is visible on the header. Assign the relevant type when creating or importing an order. If Master Data Information is installed, the lookup pulls valid types from MDI.
- Sales Order Statuses are applied via your integration flow or manually on the sales order; each assignment fires the associated Trigger Action if one is configured.
Related Features
Sales Order Types and Trigger Actions connect directly to Sales Order Import: when an imported order is assigned a type or status, the Trigger Action fires immediately, enabling the integration platform to react to the classification in real time. Order Origins are assigned at import time in the Sales Order Import flow and are the primary mechanism for channel identification and channel-specific behaviour. The Credit Limit Check feature adds a separate, automatically managed status dimension (Credit Limit Status) that complements these manual classification fields.
User Stories
US-01: Create and assign an order type to a sales order
As a Sales Order Processor
I want to classify a sales order as a specific type (e.g. Pre-order or Stock Order)
So that downstream systems and fulfilment teams know how to handle the order
Setup:
- Open Sales Order Type and create the relevant type codes with descriptions.
- Open a Sales Order.
- In the Order Type field on the header (added by Commerce Manager, visible after the Sell-to Contact field), select the relevant type from the lookup.
- If a Trigger Action is assigned to this type, it fires automatically when the type is validated on the order.
US-02: Trigger a webhook when a specific order type is assigned
As a IT Manager
I want to configure a webhook trigger that fires whenever a specific sales order type is applied to an order
So that the integration platform is notified in real time and can initiate a downstream process (e.g. notify a warehouse, update an ERP)
Setup:
- Open Trigger Actions and create a new action code (e.g.
NOTIFY-WMS) with a description. - Open Sales Order Type and find or create the relevant type (e.g.
URGENT). - Set the Trigger Action field to
NOTIFY-WMS. - Configure the webhook in Data Contract Manager to respond to the
NOTIFY-WMStrigger action. - When a user sets the Order Type to
URGENTon any sales order, the webhook fires automatically.
US-03: Create custom sales order statuses for a fulfilment workflow
As a Business Manager
I want to define a set of custom statuses (e.g. Picking, Packed, Shipped) that reflect our internal fulfilment stages
So that the order's progress is visible in Business Central and can be communicated to the customer portal via trigger actions
Setup:
- Open Sales Order Status and create status codes for each stage (e.g.
PICKING,PACKED,SHIPPED). - Assign a Trigger Action to each status that should notify an external system (e.g.
STATUS-UPDATE). - Configure the webhook in Data Contract Manager to send a status notification to the customer portal when
STATUS-UPDATEis received. - As the order progresses, update the status on the sales order. Each update fires the associated Trigger Action.
US-04: Configure an order origin for a new sales channel
As a IT Manager
I want to add a new Order Origin Code for a recently launched B2B portal
So that orders from this channel are identified correctly and any channel-specific processing rules are applied automatically
Setup:
- Open New Order Origin Codes and create a new entry with code
B2BPORTAL. - If this channel uses special freight logic, enable Use Special Freight.
- If payment information should be retrieved when orders from this channel are posted, set the Retrieve Payment field to the relevant webhook code.
- Configure the B2B portal's integration to pass
B2BPORTALas the Order Origin Code in every order payload.
US-05: Maintain a consistent set of trigger actions across types and statuses
As a IT Manager
I want to manage all webhook trigger codes in a single central lookup table
So that both sales order types and statuses reference the same set of validated codes, avoiding typos and inconsistencies
Setup:
- Open Trigger Actions and review and maintain all webhook codes used by your integration platform.
- When configuring a new Sales Order Type or Status, always select the Trigger Action from the lookup rather than typing it manually.
- If a webhook endpoint changes, update the Trigger Action code here and it is reflected immediately across all types and statuses that reference it.
US-06: Use Order Type with Master Data Information for validated lookup
As a Sales Order Processor
I want to have the Order Type field on the sales order look up valid values from a centrally maintained MDI list
So that order clerks can only assign approved order types, with descriptions and validation enforced by master data
Setup:
- Ensure the Master Data Information app is installed and enabled.
- In Master Data Information, create an Information Code for
Order Typeand add the valid values as information entries. - The Order Type field on the Sales Order header will use the MDI lookup to validate and look up values.
- When a user clicks the lookup on the Order Type field, they see the MDI-maintained list of valid types and can select from it.
Note: Without Master Data Information, the Order Type field is a free text entry. The MDI integration adds validation and a managed lookup, but the field remains functional as a free text field without it.
Field Reference
| Field | Where to find it | What it does | Default |
|---|---|---|---|
| Order Type | Sales Order Type page | Code identifying the type of order | — |
| Description | Sales Order Type page | Human-readable label for the type | — |
| Trigger Action | Sales Order Type page | Webhook action code that fires when this type is assigned to an order | Blank |
| Status | Sales Order Status page | Code identifying a custom operational status | — |
| Description | Sales Order Status page | Human-readable label for the status | — |
| Trigger Action | Sales Order Status page | Webhook action code that fires when this status is applied | Blank |
| Trigger Action | Trigger Actions page | Code used to identify and invoke a webhook | — |
| Trigger Description | Trigger Actions page | Human-readable description of what this action does | — |
| Order Origin Code | New Order Origin Codes | Unique code for the inbound sales channel | — |
| Use Special Freight | New Order Origin Codes | Flags orders from this channel as requiring special freight handling | Disabled |
| Retrieve Payment | New Order Origin Codes | Webhook code to call when a sales order from this channel is posted | Blank |
| Order Type (header field) | Sales Order | The order type assigned to this specific sales order | Blank |