3. Order Confirmation Delivered to Customer
Step Overview
Step 3 occurs when an order confirmation has been generated and delivered to the customer. This confirms the customer receives acknowledgment that their order was accepted and is being processed.
Message Details
- Message Type:
O2C.Order.Confirmation/1.0
- Domain: Sales
- System: Portal
- Service: SND-Confirm-Outgoing
- Direction: Send (Outgoing to customer)
- Format: Flat File (CSV)
- Log Status:
0
(Success) for confirmed delivery,-1337
if confirmation fails - Timing: Typically 5-10 minutes after Order Entry
Business Data (Happy Path)
Same customer and product data:
- Order ID:
ORD-10001
(same as source order) - Customer ID:
CUST-001
- Product SKU:
SKU-DEMO-001
- Quantity:
1
- Order Total:
USD 99.95
Sample CSV Message
This is the raw message payload that would be base64-encoded in the Log Event Body
field. This simplified CSV format contains essential order confirmation data.
OrderConfirmationHeader
ConfirmationId,ConfirmationDate,CorrelationId,OrderId,OrderDate,CustomerID,CustomerName,CustomerEmail,ConfirmationStatus
CONF-2025-10001,2025-10-14T09:22:15Z,{PREFIX}-{DATEPART}-{SEQUENCE},ORD-10001,2025-10-14T09:15:00Z,CUST-001,Acme Corporation,orders@acme.example.com,CONFIRMED
OrderConfirmationDetails
LineNumber,SKU,Description,QuantityOrdered,UnitPrice,LineTotal
1,SKU-DEMO-001,Demo Widget,1,99.95,99.95
OrderConfirmationFooter
OrderTotal,Currency,EstimatedShipDate,TrackingEnabled
99.95,USD,2025-10-21,true
Nodinite Log Event (JSON formatted)
This is the complete Log Event structure that would be sent to the Nodinite Log API. The CSV message above is base64-encoded into the Body
field.
Encoded Body
The CSV message above, when base64-encoded, becomes:
T3JkZXJDb25maXJtYXRpb25IZWFkZXIKQ29uZmlybWF0aW9uSWQsQ29uZmlybWF0aW9uRGF0ZSxDb3JyZWxhdGlvbklkLE9yZGVySWQsT3JkZXJEYXRlLENvdXN0b21lcklELENvdXN0b21lck5hbWUsQ3VzdG9tZXJFbWFpbCxDb25maXJtYXRpb25TdGF0dXMKQ09ORi0yMDI1LTEwMDAxLDIwMjUtMTAtMTRUMDk6MjI6MTVaLFBJQy0wMDEtMDAwMSxPUkQtMTAwMDEsMjAyNS0xMC0xNFQwOToxNTowMFosQ1VTVC0wMDEsQWNtZSBDb3Jwb3JhdGlvbixvcmRlcnNAYWNtZS5leGFtcGxlLmNvbSxDT05GSVJNRUQKCK9yZGVyQ29uZmlybWF0aW9uRGV0YWlscwpMaW5lTnVtYmVyLFNLVSxEZXNjcmlwdGlvbixRdWFudGl0eU9yZGVyZWQsVW5pdFByaWNlLExpbmVUb3RhbAoxLFNLVS1ERU1PLTAwMSxEZW1vIFdpZGdldCwxLDk5Ljk1LDk5Ljk1CgpPcmRlckNvbmZpcm1hdGlvbkZvb3RlcgpPcmRlclRvdGFsLENvdXJyZW5jeSxFc3RpbWF0ZWRTaGlwRGF0ZSxUcmFja2luZ0VuYWJsZWQKOTkuOTUsVVNELDIwMjUtMTAtMjEsdHJ1ZQ==
Full Nodinite Log Event
{
"LogAgentValueId": -5,
"EndPointName": "Portal-Confirmation-Send",
"EndPointUri": "C:\\Integration\\Portal\\Confirmations\\Out",
"EndPointDirection": 1,
"EndPointTypeId": 60,
"OriginalMessageTypeName": "O2C.Order.Confirmation/1.0",
"LogDateTime": "2025-10-14T09:22:30.789Z",
"EventDirection": 18,
"ProcessingUser": "Portal\\ConfirmationService",
"SequenceNo": 2,
"EventNumber": 2,
"LogText": "Order Confirmation Delivered to Customer",
"ApplicationInterchangeId": "PIC-20251022-0001",
"LocalInterchangeId": null,
"LogStatus": 0,
"ProcessName": "O2C-Confirmation-Delivery",
"ProcessingMachineName": "portal-server-01",
"ProcessingModuleName": "Portal.ConfirmationService.Sender",
"ProcessingModuleType": "WindowsService",
"ServiceInstanceActivityId": null,
"ProcessingTime": 234,
"Body": "T3JkZXJDb25maXJtYXRpb25IZWFkZXIKQ29uZmlybWF0aW9uSWQsQ29uZmlybWF0aW9uRGF0ZSxDb3JyZWxhdGlvbklkLE9yZGVySWQsT3JkZXJEYXRlLENvdXN0b21lcklELENvdXN0b21lck5hbWUsQ3VzdG9tZXJFbWFpbCxDb25maXJtYXRpb25TdGF0dXMKQ09ORi0yMDI1LTEwMDAxLDIwMjUtMTAtMTRUMDk6MjI6MTVaLFBJQy0wMDEtMDAwMSxPUkQtMTAwMDEsMjAyNS0xMC0xNFQwOToxNTowMFosQ1VTVC0wMDEsQWNtZSBDb3Jwb3JhdGlvbixvcmRlcnNAYWNtZS5leGFtcGxlLmNvbSxDT05GSVJNRUQKCK9yZGVyQ29uZmlybWF0aW9uRGV0YWlscwpMaW5lTnVtYmVyLFNLVSxEZXNjcmlwdGlvbixRdWFudGl0eU9yZGVyZWQsVW5pdFByaWNlLExpbmVUb3RhbAoxLFNLVS1ERU1PLTAwMSxEZW1vIFdpZGdldCwxLDk5Ljk1LDk5Ljk1CgpPcmRlckNvbmZpcm1hdGlvbkZvb3RlcgpPcmRlclRvdGFsLENvdXJyZW5jeSxFc3RpbWF0ZWRTaGlwRGF0ZSxUcmFja2luZ0VuYWJsZWQKOTkuOTUsVVNELDIwMjUtMTAtMjEsdHJ1ZQ==",
"Context": {
"FileName": "ORD-10001-confirmation.csv",
"OrderNumber": "ORD-10001",
"CustomerId": "CUST-001",
"CustomerName": "Acme Corporation",
"OrderAmount": "99.95",
"ConfirmationId": "CONF-2025-10001",
"EstimatedShipDate": "2025-10-21",
"ExtendedProperties/1.0#RepositoryBinding": "{\"Name\":\"Order Confirmation\",\"Service\":{\"Name\":\"INT1337-SND-Confirm-Outgoing\",\"Direction\":\"Send\",\"System\":{\"Name\":\"Portal\"},\"Integration\":{\"Name\":\"INT1337 - Order-to-Cash\"},\"ExternalServiceRelations\":[{\"Name\":\"INT1337-ENT-Order-Entry\",\"System\":{\"Name\":\"ERP\"}}],\"BPMs\":[{\"Name\":\"INT1337 - Order-to-Cash Flow\",\"ArtifactRenaming\":\"Order Confirmation Delivered\",\"Domain\":{\"Name\":\"Sales\",\"Index\":0},\"Step\":2,\"ServiceRelations\":[{\"Name\":\"INT1337-ENT-Order-Entry\",\"Direction\":\"Receive\",\"Domain\":{\"Name\":\"Planning\",\"Index\":1},\"Step\":1,\"Label\":\"From ERP Planning\",\"ConnectorStyle\":1,\"SourceAttachmentPoint\":2,\"TargetAttachmentPoint\":0}]}]}}"
}
}
Key Points
- CSV Format: Demonstrates Nodinite's support for non-XML/JSON formats through explicit Message Type declaration
- Flat File Structure: Headers, details, and footer sections separate data logically
- Correlation: Maintains
{PREFIX}-{DATEPART}-{SEQUENCE}
linkage from Steps 1 and 2 - Direction Change:
EndPointDirection: 1
(send) andEventDirection: 18
(ExternalOutgoing) indicate outbound communication - Processing Time: 234ms reflects Portal system overhead
- Message Type Critical: Without
OriginalMessageTypeName
, Nodinite cannot parse CSV format—explicit type is required - BPM Domain Transition: Returns to Sales domain (Index 0, Step 2) after ERP processing to send confirmation to customer
- ServiceRelations: Links back to Step 1 (Planning/ERP) showing the upstream data source for this confirmation message
Repository Binding for Step 3
This log event includes a Repository Binding JSON that defines:
- Service:
INT1337-SND-Confirm-Outgoing
with DirectionSend
- System:
Portal
- Integration:
INT1337 - Order-to-Cash
- ExternalServiceRelations: Links to
INT1337-ENT-Order-Entry
in theERP
system (the source of order data) - BPM: Specifies this is Step 2 in the
Sales
domain (Index 0) with milestone name "Order Confirmation Delivered" for visualization - BPM ServiceRelations: Includes a relation to the
INT1337-ENT-Order-Entry
service showing incoming data from Step 1 (Planning domain) with:Label: "From ERP Planning"
- Shows the upstream source on the connector arrowConnectorStyle: 1
- Orthogonal connector with arrow (right-angle paths)SourceAttachmentPoint: 2
- Arrow originates from the bottom of Step 2 (Sales/Portal box)TargetAttachmentPoint: 0
- Arrow terminates at the top of Step 1 (Planning/ERP box)
The BPM visualization now shows the order returning to the Sales domain after Planning processing. This creates a cross-domain flow pattern where orders flow through multiple systems and domains sequentially.
HTTP Request to Log API
The Log Event above would be sent as a POST request:
POST /api/v2/LogEvents HTTP/1.1
Host: nodinite-api.example.com
Content-Type: application/json
x-ms-client-tracking-id: {PREFIX}-{DATEPART}-{SEQUENCE}
Authorization: Bearer YOUR_API_KEY
{
"LogAgentValueId": -5,
"EndPointName": "Portal-Confirmation-Send",
...
}
Related Steps
- Previous Step: 2. Order Entry in ERP Finished
- Next Step: 4. Order Planned
- Overview