services:
- id: register-customer
name: Register Customer
domain: customer
object: customer
events:
- customer-registered
description: Creates a new customer identity record with authentication credentials
and returns the resolved customer ID.
- id: authenticate-customer
name: Authenticate Customer
domain: customer
object: customer
events:
- customer-identified
description: Validates customer credentials and returns an authenticated session
token for subsequent service calls.
- id: search-customer
name: Search Customer
domain: customer
object: customer
events: []
description: Searches for customers by email, phone, loyalty card, or name, returning
a ranked list of candidate matches.
- id: merge-customer
name: Merge Customer
domain: customer
object: customer
events:
- customer-merged
description: Merges two duplicate customer identity records into a single canonical
record, preserving all history.
- id: retrieve-customer-profile
name: Retrieve Customer Profile
domain: customer
object: customer
events: []
description: Returns the full customer profile including contact data, preferences,
and behavioural attributes for a given customer ID.
- id: update-customer-profile
name: Update Customer Profile
domain: customer
object: customer
events:
- customer-updated
description: Updates one or more fields of the customer profile and publishes a
customer-updated event.
- id: manage-customer-preferences
name: Manage Customer Preferences
domain: customer
object: customer
events:
- customer-preferences-updated
description: Reads or writes a customer's communication channel, language, and notification
preferences.
- id: record-consent
name: Record Consent
domain: customer
object: consent
events:
- customer-consent-updated
description: Records a new consent grant for a customer for a specific purpose (marketing,
profiling, data sharing) with timestamp and channel.
- id: update-consent
name: Update Consent
domain: customer
object: consent
events:
- customer-consent-updated
description: Updates the scope or channel of an existing consent record.
- id: revoke-consent
name: Revoke Consent
domain: customer
object: consent
events:
- customer-consent-revoked
description: Revokes a customer's consent for one or more purposes, triggering downstream
suppression actions.
- id: calculate-segment
name: Calculate Segment
domain: customer
object: customer
events:
- customer-segment-calculated
description: Evaluates segmentation rules against customer profile and behavioural
data, determining segment membership.
- id: assign-segment
name: Assign Segment
domain: customer
object: customer
events:
- customer-segment-assigned
description: Assigns a customer to one or more computed segments and stores the
assignment with effective date.
- id: retrieve-segment
name: Retrieve Segment
domain: customer
object: customer
events: []
description: Returns the current segment assignments for a customer, including segment
metadata and assignment date.
- id: retrieve-customer-history
name: Retrieve Customer History
domain: customer
object: customer
events: []
description: Returns the customer's purchase history, returns, open orders, and
loyalty balance for use by a store associate.
- id: create-clienteling-session
name: Create Clienteling Session
domain: customer
object: clienteling-session
events:
- clienteling-session-created
description: Opens a clienteling session linking a store associate to a customer,
recording the context (store, channel, purpose).
- id: record-clienteling-interaction
name: Record Clienteling Interaction
domain: customer
object: clienteling-session
events:
- clienteling-interaction-recorded
description: Records a note, product recommendation, or outcome from a clienteling
session.
- id: create-basket
name: Create Basket
domain: commerce
object: basket
events:
- basket-created
description: Creates a new empty basket session for a customer on a given channel,
returning the basket ID for subsequent item additions.
- id: add-basket-item
name: Add Basket Item
domain: commerce
object: basket
events:
- basket-updated
description: Adds a product variant and quantity to an existing basket, triggering
real-time price resolution and availability check.
- id: remove-basket-item
name: Remove Basket Item
domain: commerce
object: basket
events:
- basket-updated
description: Removes a specific line from the basket and recalculates basket totals.
- id: calculate-basket
name: Calculate Basket
domain: commerce
object: basket
events:
- basket-calculated
description: Recalculates basket totals applying current prices, active promotions,
and tax rules, returning the updated basket summary.
- id: checkout-basket
name: Checkout Basket
domain: commerce
object: basket
events:
- basket-checked-out
description: Marks the basket as checked out and initiates the checkout flow, locking
the basket from further modification.
- id: calculate-totals
name: Calculate Totals
domain: commerce
object: basket
events:
- basket-calculated
description: Computes the final order totals including subtotal, promotions, taxes,
shipping, and voucher deductions.
- id: apply-promotions
name: Apply Promotions
domain: promotion
object: promotion
events:
- promotion-applied
description: Applies all eligible promotions to a basket and returns the updated
basket with discounts itemised by promotion.
- id: create-order
name: Create Order
domain: order
object: order
events:
- order-created
description: Creates a new order record from a checked-out basket, assigning an
order ID and setting the initial order state.
- id: validate-order
name: Validate Order
domain: order
object: order
events:
- order-validated
description: Validates an order against business rules (stock, pricing, address,
payment) before confirmation.
- id: confirm-order
name: Confirm Order
domain: order
object: order
events:
- order-confirmed
description: Confirms a validated order, transitioning it to confirmed state and
triggering fulfilment initiation.
- id: modify-order
name: Modify Order
domain: order
object: order
events:
- order-modified
description: Applies an allowed modification to an in-flight order (quantity change,
address update) within policy constraints.
- id: cancel-order
name: Cancel Order
domain: order
object: order
events:
- order-cancelled
description: Cancels an order, triggering inventory release, payment void or refund,
and customer notification.
- id: track-order
name: Track Order
domain: order
object: order
events: []
description: Returns the current fulfilment status and tracking events for an order
or shipment.
- id: close-order
name: Close Order
domain: order
object: order
events:
- order-closed
description: Closes a fully fulfilled and settled order, archiving it and releasing
any residual holds.
- id: split-order
name: Split Order
domain: order
object: order
events:
- order-split
description: Splits a multi-line order into two or more fulfilment orders, each
destined for a different node or carrier.
- id: route-order
name: Route Order
domain: order
object: order
events:
- order-routed
description: Determines and assigns the optimal fulfilment node for each order line
based on ATP and proximity rules.
- id: reassign-fulfillment-location
name: Reassign Fulfillment Location
domain: order
object: order
events:
- fulfillment-location-reassigned
description: Reassigns a fulfilment order line to an alternative node when the originally
assigned node cannot fulfil.
- id: check-availability
name: Check Availability
domain: inventory
object: inventory
events: []
description: Returns the available-to-promise (ATP) quantity for one or more SKUs
at a given location or across all nodes.
- id: calculate-atp
name: Calculate ATP
domain: inventory
object: inventory
events:
- atp-calculated
description: Computes the ATP figure by subtracting reservations and safety stock
from on-hand quantity.
- id: retrieve-location-stock
name: Retrieve Location Stock
domain: inventory
object: inventory
events: []
description: Returns the full stock ledger for a specific location (DC or store),
including on-hand, reserved, and allocated quantities.
- id: reserve-inventory
name: Reserve Inventory
domain: inventory
object: reservation
events:
- inventory-reserved
description: Creates a soft reservation for a quantity of a SKU at the best available
node, decrementing the ATP.
- id: confirm-reservation
name: Confirm Reservation
domain: inventory
object: reservation
events:
- reservation-confirmed
description: Converts a soft reservation to a confirmed reservation on order placement.
- id: release-reservation
name: Release Reservation
domain: inventory
object: reservation
events:
- inventory-released
description: Releases a soft or confirmed reservation, restoring the ATP at the
source node.
- id: expire-reservation
name: Expire Reservation
domain: inventory
object: reservation
events:
- reservation-expired
description: Expires a stale reservation that has exceeded its time-to-live, automatically
releasing the stock.
- id: allocate-inventory
name: Allocate Inventory
domain: inventory
object: inventory
events:
- inventory-allocated
description: Hard-allocates a specific quantity at a specific node to a fulfilment
order, creating a committed stock record.
- id: reallocate-inventory
name: Reallocate Inventory
domain: inventory
object: inventory
events:
- inventory-reallocated
description: Moves a hard allocation from one node to another when the original
node cannot fulfil.
- id: release-allocation
name: Release Allocation
domain: inventory
object: inventory
events:
- inventory-allocation-released
description: Releases a hard allocation on order cancellation or exception, restoring
the node's available stock.
- id: adjust-inventory
name: Adjust Inventory
domain: inventory
object: inventory
events:
- inventory-adjusted
description: Posts a stock adjustment (receipt, sale correction, damage, write-off)
to the store inventory ledger.
- id: count-inventory
name: Count Inventory
domain: inventory
object: inventory
events:
- inventory-counted
description: Records the results of a physical stock count, calculating and posting
the variance to the ledger.
- id: transfer-inventory
name: Transfer Inventory
domain: inventory
object: inventory
events:
- inventory-transferred
description: Initiates or records an inter-location stock transfer, adjusting both
source and destination ledgers.
- id: generate-picking
name: Generate Picking
domain: fulfillment
object: picking-task
events:
- picking-started
description: Creates a picking task for a fulfilment order line, assigning it to
a pick zone and generating the pick list.
- id: confirm-picking
name: Confirm Picking
domain: fulfillment
object: picking-task
events:
- picking-completed
description: Marks a picking task as completed, recording actual quantities picked
and any exceptions (short-picks, substitutions).
- id: pack-shipment
name: Pack Shipment
domain: fulfillment
object: shipment
events:
- shipment-packed
description: Records the packing of a shipment, capturing parcel dimensions, weight,
and item-to-parcel mapping.
- id: ship-order
name: Ship Order
domain: fulfillment
object: shipment
events:
- shipment-dispatched
description: Dispatches a packed shipment to a carrier, generating a tracking number
and triggering the shipment-dispatched event.
- id: deliver-order
name: Deliver Order
domain: fulfillment
object: shipment
events:
- shipment-delivered
description: Records the successful delivery of a shipment to the customer's address,
closing the delivery milestone.
- id: collect-order
name: Collect Order
domain: fulfillment
object: shipment
events:
- shipment-delivered
description: Records the customer's collection of a click-and-collect or BOPIS order
from the designated store location.
- id: request-return
name: Request Return
domain: fulfillment
object: return
events:
- return-requested
description: Initiates a return request for one or more items from a completed order,
capturing reason codes.
- id: authorize-return
name: Authorize Return
domain: fulfillment
object: return
events:
- return-authorized
description: Evaluates a return request against return policy and authorises it,
issuing a return authorisation number (RAN).
- id: receive-return
name: Receive Return
domain: fulfillment
object: return
events:
- return-received
description: Records the physical receipt of returned items at the destination (store
or DC).
- id: inspect-return
name: Inspect Return
domain: fulfillment
object: return
events:
- return-inspected
description: Inspects received return items for condition, grading them as resalable,
damaged, or write-off.
- id: process-return
name: Process Return
domain: fulfillment
object: return
events:
- return-accepted
description: 'Finalises the return: triggers inventory restock or disposal, and
initiates refund or credit issuance.'
- id: request-exchange
name: Request Exchange
domain: fulfillment
object: exchange
events:
- exchange-requested
description: Initiates an exchange request, linking a return authorisation with
a replacement item selection.
- id: authorize-exchange
name: Authorize Exchange
domain: fulfillment
object: exchange
events:
- exchange-authorized
description: Authorises an exchange by confirming the return is valid and the replacement
item is available.
- id: process-exchange
name: Process Exchange
domain: fulfillment
object: exchange
events:
- exchange-completed
description: 'Completes the exchange: closes the return, creates the replacement
order, and handles payment delta.'
- id: retrieve-price
name: Retrieve Price
domain: pricing
object: price
events: []
description: Returns the current effective selling price for a SKU on a given channel
and customer segment, without applying promotions.
- id: calculate-price
name: Calculate Price
domain: pricing
object: price
events:
- price-calculated
description: Calculates the final selling price for a basket line, resolving price
list, segment overrides, and volume rules.
- id: apply-price-list
name: Apply Price List
domain: pricing
object: price
events:
- price-list-applied
description: Applies a named price list to a channel or transaction context, making
its prices active for price resolution.
- id: calculate-markdown
name: Calculate Markdown
domain: pricing
object: price
events:
- markdown-calculated
description: Calculates and applies a markdown discount to a product's selling price
based on the active markdown schedule.
- id: evaluate-promotions
name: Evaluate Promotions
domain: promotion
object: promotion
events:
- promotion-evaluated
description: Evaluates which promotions are eligible for a given basket, customer,
and channel without applying them.
- id: validate-coupon
name: Validate Coupon
domain: promotion
object: coupon
events:
- coupon-validated
description: Validates a coupon code against usage limits, expiry, and basket eligibility
rules.
- id: redeem-coupon
name: Redeem Coupon
domain: promotion
object: coupon
events:
- coupon-redeemed
description: Redeems a valid coupon, marking it as used and returning the applicable
discount.
- id: issue-voucher
name: Issue Voucher
domain: promotion
object: voucher
events:
- voucher-issued
description: Issues a new gift voucher or store credit with a specified value, generating
a unique voucher code.
- id: validate-voucher
name: Validate Voucher
domain: promotion
object: voucher
events:
- voucher-validated
description: Validates a voucher code against balance, expiry, and channel eligibility.
- id: redeem-voucher
name: Redeem Voucher
domain: promotion
object: voucher
events:
- voucher-redeemed
description: Redeems a voucher for the specified amount, debiting its balance and
returning the applied credit.
- id: cancel-voucher
name: Cancel Voucher
domain: promotion
object: voucher
events:
- voucher-cancelled
description: Cancels an unused or partially used voucher, zeroing its balance and
voiding the code.
- id: enroll-member
name: Enroll Member
domain: loyalty
object: loyalty-member
events:
- loyalty-member-enrolled
description: Enrolls a customer in the loyalty programme, creating a loyalty account
and issuing a member ID.
- id: calculate-points
name: Calculate Points
domain: loyalty
object: loyalty-account
events:
- loyalty-points-calculated
description: Calculates the points to be earned for a transaction based on accrual
rules, purchase value, and product category.
- id: issue-points
name: Issue Points
domain: loyalty
object: loyalty-account
events:
- loyalty-points-issued
description: Credits the calculated points to a member's loyalty account, updating
the balance and issuing a points-issued event.
- id: redeem-points
name: Redeem Points
domain: loyalty
object: loyalty-account
events:
- loyalty-points-redeemed
description: Debits a specified number of points from a loyalty account as a payment
instrument or reward redemption.
- id: calculate-benefits
name: Calculate Benefits
domain: loyalty
object: loyalty-account
events:
- loyalty-benefits-calculated
description: Evaluates the member's tier and active promotions to determine applicable
benefits (discounts, free shipping, gifts).
- id: manage-loyalty-tiers
name: Manage Loyalty Tiers
domain: loyalty
object: loyalty-member
events: []
description: Creates, updates, or deletes tier definitions (thresholds, names, benefits)
in the loyalty programme configuration.
- id: manage-accrual-rules
name: Manage Accrual Rules
domain: loyalty
object: loyalty-account
events: []
description: Manages the earn rules that determine how points are calculated per
product category, channel, or campaign.
- id: manage-member-lifecycle
name: Manage Member Lifecycle
domain: loyalty
object: loyalty-member
events:
- loyalty-member-enrolled
description: 'Handles member lifecycle policies: account expiry, re-activation,
dormancy, and merging of duplicate accounts.'
- id: manage-loyalty-catalogue
name: Manage Loyalty Catalogue
domain: loyalty
object: loyalty-account
events: []
description: 'Manages the rewards catalogue: adds, updates, or retires redeemable
rewards and their point cost.'
- id: authorize-payment
name: Authorize Payment
domain: payment
object: payment
events:
- payment-authorized
description: Requests payment authorisation from the PSP for the specified amount
and payment instrument, returning an authorisation code.
- id: capture-payment
name: Capture Payment
domain: payment
object: payment
events:
- payment-captured
description: Captures a previously authorised payment amount, triggering the settlement
process with the PSP.
- id: void-payment
name: Void Payment
domain: payment
object: payment
events:
- payment-voided
description: Voids an authorisation before capture, releasing the hold on the customer's
payment instrument.
- id: refund-payment
name: Refund Payment
domain: payment
object: payment
events:
- payment-refunded
description: Issues a full or partial refund against a captured transaction, crediting
the original payment instrument.
- id: settle-payment
name: Settle Payment
domain: payment
object: payment
events:
- payment-settled
description: Records final payment settlement, reconciling the captured amount against
the PSP's settlement file.
- id: open-store-day
name: Open Store Day
domain: store
object: store-day
events:
- store-day-opened
description: Opens the store trading day, recording the opening time, cash float,
and initial operational state.
- id: close-store-day
name: Close Store Day
domain: store
object: store-day
events:
- store-day-closed
description: Closes the store trading day, recording the closing cash count, daily
sales summary, and any discrepancies.
- id: assign-store-task
name: Assign Store Task
domain: store
object: store-task
events:
- store-task-assigned
description: Creates and assigns an operational task (replenishment, cleaning, visual
merchandising) to a store associate.
- id: complete-store-task
name: Complete Store Task
domain: store
object: store-task
events:
- store-task-completed
description: Records the completion of an assigned store task, capturing the completion
time and any notes.
- id: create-product
name: Create Product
domain: commerce
object: product
events:
- product-created
description: Creates a new product record in the catalogue with base attributes,
variants, and media, ready for enrichment and publishing.
- id: update-product
name: Update Product
domain: commerce
object: product
events:
- product-updated
description: Updates one or more fields of an existing product record, triggering
re-validation and delta propagation to active channels.
- id: publish-catalogue
name: Publish Catalogue
domain: commerce
object: catalogue
events:
- catalogue-published
description: Publishes a catalogue version or product set to all assigned channels,
making it visible and purchasable.
- id: unpublish-catalogue
name: Unpublish Catalogue
domain: commerce
object: catalogue
events:
- catalogue-archived
description: Retracts a catalogue or product set from active channels, removing
it from customer-facing surfaces.
- id: assign-catalogue-to-channel
name: Assign Catalogue to Channel
domain: commerce
object: catalogue
events:
- catalogue-updated
description: Associates a catalogue scope with a specific channel, controlling which
products are visible on that touchpoint.
- id: create-channel
name: Create Channel
domain: commerce
object: channel
events:
- channel-activated
description: Creates a new commerce channel definition with its configuration (type,
locale, currency, payment methods).
- id: activate-channel
name: Activate Channel
domain: commerce
object: channel
events:
- channel-activated
description: Activates a channel for trading, making it visible to customers and
live for order capture.
- id: deactivate-channel
name: Deactivate Channel
domain: commerce
object: channel
events:
- channel-deactivated
description: Deactivates a channel, preventing new orders while preserving historical
data and in-flight orders.
- id: assign-price-list-to-channel
name: Assign Price List to Channel
domain: commerce
object: channel
events:
- channel-updated
description: Binds a price list to a channel so that selling prices on that touchpoint
are resolved from the assigned list.
- id: verify-identity
name: Verify Identity
domain: customer
object: customer
events:
- customer-registered
description: Performs additional identity verification (e.g. OTP, document check)
for high-trust operations.
- id: get-available-slots
name: Get Available Slots
domain: fulfillment
object: delivery-slot
events: []
description: Returns available delivery time slots for a given location, date range,
and service type.
- id: reserve-delivery-slot
name: Reserve Delivery Slot
domain: fulfillment
object: delivery-slot
events:
- delivery-slot-reserved
description: Soft-reserves a delivery slot for a customer during the checkout flow.
- id: confirm-delivery-slot
name: Confirm Delivery Slot
domain: fulfillment
object: delivery-slot
events:
- delivery-slot-confirmed
description: Hard-confirms a delivery slot on order placement, removing it from
the available inventory.
- id: release-delivery-slot
name: Release Delivery Slot
domain: fulfillment
object: delivery-slot
events:
- delivery-slot-released
description: Releases a previously reserved delivery slot, making it available again
for other customers.
- id: create-subscription
name: Create Subscription
domain: commerce
object: subscription
events:
- subscription-created
description: Creates a new subscription plan for a customer, defining product, frequency,
quantity, and billing details.
- id: activate-subscription
name: Activate Subscription
domain: commerce
object: subscription
events:
- subscription-activated
description: Activates a subscription, starting the recurring order and payment
schedule.
- id: pause-subscription
name: Pause Subscription
domain: commerce
object: subscription
events:
- subscription-paused
description: Pauses an active subscription, suspending the recurring schedule without
cancelling the customer's commitment.
- id: cancel-subscription
name: Cancel Subscription
domain: commerce
object: subscription
events:
- subscription-cancelled
description: Cancels an active or paused subscription, stopping future renewals
and triggering any cancellation policy actions.
- id: renew-subscription
name: Renew Subscription
domain: commerce
object: subscription
events:
- subscription-renewed
description: 'Triggers a subscription renewal cycle: generates a new order, requests
payment capture, and schedules the next renewal.'
- id: generate-recommendation
name: Generate Recommendation
domain: customer
object: decision-record
events:
- recommendation-generated
description: Generates an explainable product or next-best-action recommendation using approved customer and commerce context.
- id: record-recommendation-response
name: Record Recommendation Response
domain: customer
object: decision-record
events:
- recommendation-responded
description: Records whether a customer or associate accepted, declined, or deferred a recommendation and the stated reason where available.
- id: propose-decision
name: Propose Decision
domain: customer
object: decision-record
events:
- decision-proposed
description: Records a candidate automated decision with purpose, evidence summary, confidence, policy reference, and proposed action.
- id: approve-decision
name: Approve Decision
domain: customer
object: decision-record
events:
- decision-approved
description: Records authorised human or policy approval for a proposed decision before execution when review is required.
- id: override-decision
name: Override Decision
domain: customer
object: decision-record
events:
- decision-overridden
description: Records a human override or rejection of a proposed automated decision with accountable actor and rationale.
- id: execute-decision
name: Execute Decision
domain: customer
object: decision-record
events:
- decision-executed
description: Records execution of an approved decision and a reference to the authoritative system action that applied the outcome.
- id: produce-sentiment-insight
name: Produce Sentiment Insight
domain: customer
object: sentiment-insight
events:
- sentiment-insight-produced
description: Produces a purpose-bound, aggregated sentiment or engagement insight from approved feedback sources.
- id: identify-item
name: Identify Item
domain: inventory
object: inventory
events:
- item-identified
description: Resolves a physical retail item to a SKU using an approved identification method and confidence threshold.
- id: detect-identification-anomaly
name: Detect Identification Anomaly
domain: inventory
object: loss-prevention-case
events:
- item-identification-anomaly-detected
description: Emits evidence that an observed item does not match an expected scan or identification result.
- id: create-service-order
name: Create Service Order
domain: fulfillment
object: service-order
events:
- service-order-created
description: Creates a service, repair, installation, or maintenance commitment linked to a customer order and eligible product.
- id: schedule-service-order
name: Schedule Service Order
domain: fulfillment
object: service-order
events:
- service-order-scheduled
description: Assigns an appointment, service location, or fulfilment resource to an eligible service order.
- id: complete-service-order
name: Complete Service Order
domain: fulfillment
object: service-order
events:
- service-order-completed
description: Records verified completion of a service order and any outcome, parts usage, or customer acceptance data.
- id: activate-sponsored-offer
name: Activate Sponsored Offer
domain: promotion
object: sponsored-offer
events:
- sponsored-offer-activated
description: Activates a consent-aware sponsored offer for approved channels, audience rules, and effective dates.
- id: record-sponsored-offer-exposure
name: Record Sponsored Offer Exposure
domain: promotion
object: sponsored-offer
events:
- sponsored-offer-exposed
description: Records that an eligible customer or anonymous session was served an active sponsored offer at an approved touchpoint.
- id: attribute-sponsored-offer
name: Attribute Sponsored Offer
domain: promotion
object: sponsored-offer
events:
- sponsored-offer-attributed
description: Records a closed-loop attribution outcome using approved exposure, order, and consent evidence.
- id: detect-transaction-anomaly
name: Detect Transaction Anomaly
domain: store
object: loss-prevention-case
events:
- transaction-anomaly-detected
description: Detects a potentially material checkout or refund anomaly and records evidence without determining culpability.
- id: open-loss-prevention-case
name: Open Loss Prevention Case
domain: store
object: loss-prevention-case
events:
- loss-prevention-case-opened
description: Opens a case from one or more anomaly signals for triage under configured intervention policy.
- id: resolve-loss-prevention-case
name: Resolve Loss Prevention Case
domain: store
object: loss-prevention-case
events:
- loss-prevention-case-resolved
description: Records the verified outcome of a loss-prevention case, including false-positive or resolved classification.