Integration Overview
a. Message Format & Transport
Interface messages are transmitted in XML format.
b. Security
From LogiwaIO to the robotics side, messages can be secured by JWT.
c. Message Delivery Mechanism
Real-Time and Sequential Processing
Messages are sent to the robotics endpoint in real-time and processed sequentially to ensure proper execution order.
Failure Handling and Backup Mechanism
In case of a delivery failure (e.g., due to network issues or an unavailable endpoint), the system includes a backup mechanism to track and recover missed messages.
Logiwa IO Locus Picking Process
1. Robotic Wave Rule Activation: Contact the LogiwaIO Support Team to activate the Robotic Configuration on Wave Rule Setup.
2. Wave Processing and Job Transmission (Logiwa -> Robotics)
Trigger: The process starts when a wave is executed in LogiwaIO, and the associated Wave Rule is configured as "Robotic" with an active Add-On subscription for the warehouse.
Job Creation: Logiwa generates the picking jobs and constituent tasks. Each Job can only have one order.
Message Transmission: Logiwa sends a NEW event message containing pick and pack task details to the robotic's designated endpoint. Messages are transmitted in XML format.
Sample NEW Pick Job Message (Logiwa -> Robotics):
XML
<?xml version="1.0" encoding="ut-16"?>
<OrderJob
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc"
xmlns:xsd="http://www.w3.org/2001/XMLSchem">
<EventType>NEW</EventType>
<JobId>252f74d8-4b14-43a4-b39d-cc8b8621f80</JobId>
<JobDate>2025-05-05T18:23:10.797314Z</JobDate>
<JobPriority>0</JobPriority>
<JobPriorityGroup>0</JobPriorityGroup>
<RequestId>252f74d8-4b14-43a4-b39d-c8b821ff80</RequestId>
<SingleUnit>false</SingleUnit>
<JobTasks>
<OrderJobTask>
<JobTaskId>09a636f3-1809-4faa-adb8-4d6ec78db3e</JobTaskId>
<OrderId>eb4f4cf3-3504-4553-a41-848986ab484e</OrderId>
<OrderLineId>2ded7a0f-b3eb-4b8d-a201-a7a15c627ea</OrderLineId>
<OrderTaskId>09a636f3-1809-4faa-adb8-4d61ec78b3e</OrderTaskId>
<CustOwner>AMZ - Saltyface Natural Inc</CustOwner>
<TaskType>PICK</TaskType>
<TaskLocation>BIN2C01</TaskLocation>
<TaskZone>Bins</TaskZone>
<TaskWorkArea />
<TaskQty>10</TaskQty>
<ItemNo>TF-200-</ItemNo>
<ItemUPC>6279876620</ItemUPC>
<ItemDesc>Tanning Foam - Light Medium</ItemDesc>
<ItemLength>6.0</ItemLength>
<ItemWidth>4.5</ItemWidth>
<ItemHeight>2.5</ItemHeight>
<ItemWeight>1.5</ItemWeight>
<Custom1>022826</Custom1>
<Custom3>Each</Custom3>
<Custom4>Job1937102</Custom4>
<Custom5>Saltyface Natural</Custom5>
<LotNo>0901</LotNo>
</OrderJobTask>
<OrderJobTask>
<JobTaskId>09a636f3-1809-4faa-adb8-4d61e8db3e</JobTaskId>
<OrderId>eb4f4cf3-3504-4553-a416-84898b484e</OrderId>
<OrderLineId>2ded7a0f-b3eb-4b8d-a201-a715c627ea</OrderLineId>
<OrderTaskId>09a636f3-1809-4faa-adb8-4dec78db3e</OrderTaskId>
<CustOwner>Saltyface Natural</CustOwner>
<TaskType>PACK</TaskType>
<TaskLocation>PS4</TaskLocation>
<TaskZone>Bins</TaskZone>
<TaskWorkArea />
<TaskQty>10</TaskQty>
<ItemNo>TF-200</ItemNo>
<ItemUPC>6279876610</ItemUPC>
<ItemDesc>Tanning Foam LightMedium</ItemDesc>
<ItemLength>6.0</ItemLength>
<ItemWidth>4.5</ItemWidth>
<ItemHeight>2.5</ItemHeight>
<ItemWeight>1.5</ItemWeight>
</OrderJobTask>
</JobTasks>
</OrderJob>
3. Tote Validation (Robotics <-> Logiwa)
Robotic Request: Before directing a robot/picker, the robotic system sends a TOTEINDUCT request to a Logiwa endpoint to check if the intended tote exists and is available.
Sample TOTEINDUCT Request (Robotics -> Logiwa):
XML
<?xml version="1.0" encoding="ut-8"?>
<OrderJobResult>
<EventType>TOTEINDUCT</EventType>
<JobId>7989051d-05b0-4933-b77d-31b1c262e2</JobId>
<JobStatus>COMPLETED</JobStatus>
<JobDate>2025-05-05T15:41:17.13</JobDate>
<ToteId>T1044</ToteId>
<JobRobot>P3-1045</JobRobot>
</OrderJobResult>
Logiwa Response: Logiwa asynchronously validates the tote ID against its records.
Available: Logiwa always responds with an HTTP 200 OK status.
Not Available: If the tote is invalid or in use, Logiwa responds with an HTTP 400 Invalid Request DUPTOTE message, after responding with an HTTP 200 OK status.
Due to the DUPTOTE message not being sent synchronously to the robotics endpoint, situations where the tote doesn’t exist or is unavailable on the Logiwa side but the robotics side starts picking to the tote, can lead to errors.
Sample TOTEINDUCT Request (Robotics -> Logiwa):
XML
<?xml version="1.0" encoding="ut-16"?>
<OrderJob
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc"
xmlns:xsd="http://www.w3.org/2001/XMLSchem">
<EventType>DUPTOTE</EventType>
<JobId>e9c9a86e-de12-4760-9d61-64db51b197</JobId>
<JobDate>2025-02-19T14:34:08</JobDate>
<JobPriority>0</JobPriority>
<ToteId>T1006</ToteId>
<SingleUnit>false</SingleUnit>
</OrderJob>
4. Picking Results (Robotics -> Logiwa)
Physical Pick: The assigned robot guides the picker; the task details (location, item, quantity) are displayed. The physical pick is performed.
Result Transmission: The robotics system sends a PICK message detailing the execution results to Logiwa's endpoint. The exact nature of the PICK message depends on the outcome:
A. Pick Full: Task quantity matches executed quantity.
Sample PICK FULL Message (Robotics -> Logiwa):
XML
<?xml version="1.0" encoding="ut-8"?>
<OrderJobResult>
<EventType>PICK</EventType>
<JobId>5d4aa0b2-31c2-4fda-9cdf-195dd6e4a3</JobId>
<JobStatus>COMPLETED</JobStatus>
<JobDate>2025-05-05T15:44:58.375-04</JobDate>
<JobStation>LOCUS</JobStation>
<ToteId>T150</ToteId>
<JobRobot>P3-105</JobRobot>
<JobMethod>STANDARD</JobMethod>
<JobTasks>
<OrderJobResultTask>
<JobTaskId>58b7a2d3-373e-45da-b6d9-300f99f30b</JobTaskId>
<OrderId>c2110bf1-bdfe-400b-9b58-d48490575b</OrderId>
<OrderLineId>05f41b54-1c3b-4795-952f-400dda5e8a</OrderLineId> <OrderTaskId>58b7a2d3-373e-45da-b6d9-30071f930b</OrderTaskId>
<CustOwner>Saltyface Natural</CustOwner>
<TaskStatus>COMPLETED</TaskStatus>
<TaskType>PICK</TaskType>
<TaskLocation>BINC06</TaskLocation>
<TaskQty>10</TaskQty>
<ExecQty>10</ExecQty>
<ExecUser>Zaki</ExecUser>
<ExecDate>2025-05-05T15:44:58.36-04</ExecDate>
<ExecRobot>P3-1045</ExecRobot>
<ItemNo>TW-LM</ItemNo>
<Custom1>022826</Custom1>
<Custom3>Each</Custom3>
<Custom4>Job19390</Custom4>
<Custom5>ASaltyface Natural</Custom5>
<LotNo>059</LotNo>
<SerialNo />
</OrderJobResultTask>
</JobTasks>
</OrderJobResult>
Logiwa Action: Executes the task in Logiwa, setting its status to "Completed".
B. Pick Partial: Executed quantity is less than task quantity.
Sample PICK PARTIAL Message (Robotics -> Logiwa):
XML
<?xml version="1.0" encoding="ut-8"?>
<OrderJobResult>
<EventType>PICK</EventType>
<JobId>5d4aa0b2-31c2-4fda-9cdf-195dd6e4a3</JobId>
<JobStatus>COMPLETED</JobStatus>
<JobDate>2025-05-05T15:44:58.375-04</JobDate>
<JobStation>LOCUS</JobStation>
<ToteId>T150</ToteId>
<JobRobot>P3-105</JobRobot>
<JobMethod>STANDARD</JobMethod>
<JobTasks>
<OrderJobResultTask>
<JobTaskId>58b7a2d3-373e-45da-b6d9-300f99f30b</JobTaskId>
<OrderId>c2110bf1-bdfe-400b-9b58-d48490575b</OrderId>
<OrderLineId>05f41b54-1c3b-4795-952f-400dda5e8a</OrderLineId> <OrderTaskId>58b7a2d3-373e-45da-b6d9-30071f930b</OrderTaskId>
<CustOwner>Saltyface Natural</CustOwner>
<TaskStatus>COMPLETED</TaskStatus>
<TaskType>PICK</TaskType>
<TaskLocation>BINC06</TaskLocation>
<TaskQty>10</TaskQty>
<ExecQty>5</ExecQty>
<ExecUser>Zaki</ExecUser>
<ExecDate>2025-05-05T15:44:58.36-04</ExecDate>
<ExecRobot>P3-1045</ExecRobot>
<ItemNo>TW-LM</ItemNo>
<Custom1>022826</Custom1>
<Custom3>Each</Custom3>
<Custom4>Job19390</Custom4>
<Custom5>ASaltyface Natural</Custom5>
<LotNo>059</LotNo>
<SerialNo />
</OrderJobResultTask>
</JobTasks>
</OrderJobResult>
Logiwa Action: Executes the task for the ExecQty
C. Pick Short (Missing): Executed quantity is less than task quantity, ExceptionCode field is SHORT and ExceptionReason is MISSING
Sample PICK SHORT (Missing) Message (Robotics -> Logiwa):
XML
<?xml version="1.0" encoding="utf-8"?>
<OrderJobResult>
<EventType>PICK</EventType>
<JobId>5d4aa0b2-31c2-4fda-9cdf-195dd6e4d0a3</JobId>
<JobStatus>COMPLETED</JobStatus>
<JobDate>2025-05-05T15:44:58.375-04:00</JobDate>
<JobStation>LOCUS</JobStation>
<ToteId>T10050</ToteId>
<JobRobot>P3-10545</JobRobot>
<JobMethod>STANDARD</JobMethod>
<JobTasks>
<OrderJobResultTask>
<JobTaskId>58b7a2d3-373e-45da-b6d9-30071f99f30b</JobTaskId>
<OrderId>c2110bf1-bdfe-400b-9b58-d4887490575b</OrderId>
<OrderLineId>05f41b54-1c3b-4795-952f-400dddda5e8a</OrderLineId>
<OrderTaskId>58b7a2d3-373e-45da-b6d9-30071f99f30b</OrderTaskId>
<CustOwner>AMZ - Saltyface Natural Inc</CustOwner>
<TaskStatus>COMPLETED</TaskStatus>
<TaskType>PICK</TaskType>
<TaskLocation>BIN25C06</TaskLocation>
<TaskQty>10</TaskQty>
<ExecQty>5</ExecQty>
<ExecUser>Zakki</ExecUser>
<ExecDate>2025-05-05T15:44:58.36-04:00</ExecDate>
<ExecRobot>P3-10545</ExecRobot>
<ItemNo>TW-55-LM</ItemNo
<ExceptionCode>SHORT</ExceptionCode>
<ExceptionReason>MISSING</ExceptionReason>
<Custom1>02282026</Custom1>
<Custom3>Each</Custom3>
<Custom4>Job1937090</Custom4>
<Custom5>AMZ - Saltyface Natural Inc</Custom5>
<LotNo>09059</LotNo>
<SerialNo />
</OrderJobResultTask>
</JobTasks>
</OrderJobResult>
Logiwa Action: Executes the task for ExecQty . Flags the remaining inventory at TaskLocation as "Missing". Searches for alternative locations with available inventory.
D. Pick Short (Damaged): Executed quantity is less than task quantity, ExceptionCode field is SHORTand ExceptionReason is DAMAGED
Sample PICK SHORT (Damaged) Message (Robotics -> Logiwa):
XML
<?xml version="1.0" encoding="utf-8"?>
<OrderJobResult>
<EventType>PICK</EventType>
<JobId>5d4aa0b2-31c2-4fda-9cdf-195dd6e4d0a3</JobId>
<JobStatus>COMPLETED</JobStatus>
<JobDate>2025-05-05T15:44:58.375-04:00</JobDate>
<JobStation>LOCUS</JobStation>
<ToteId>T10050</ToteId>
<JobRobot>P3-10545</JobRobot>
<JobMethod>STANDARD</JobMethod>
<JobTasks>
<OrderJobResultTask>
<JobTaskId>58b7a2d3-373e-45da-b6d9-30071f99f30b</JobTaskId>
<OrderId>c2110bf1-bdfe-400b-9b58-d4887490575b</OrderId>
<OrderLineId>05f41b54-1c3b-4795-952f-400dddda5e8a</OrderLineId>
<OrderTaskId>58b7a2d3-373e-45da-b6d9-30071f99f30b</OrderTaskId>
<CustOwner>AMZ - Saltyface Natural Inc</CustOwner>
<TaskStatus>COMPLETED</TaskStatus>
<TaskType>PICK</TaskType>
<TaskLocation>BIN25C06</TaskLocation>
<TaskQty>10</TaskQty>
<ExecQty>5</ExecQty>
<ExecUser>Zakki</ExecUser>
<ExecDate>2025-05-05T15:44:58.36-04:00</ExecDate>
<ExecRobot>P3-10545</ExecRobot>
<ItemNo>TW-55-LM</ItemNo
<ExceptionCode>SHORT</ExceptionCode>
<ExceptionReason>DAMAGED</ExceptionReason>
<Custom1>02282026</Custom1>
<Custom3>Each</Custom3>
<Custom4>Job1937090</Custom4>
<Custom5>AMZ - Saltyface Natural Inc</Custom5>
<LotNo>09059</LotNo>
<SerialNo />
</OrderJobResultTask>
</JobTasks>
</OrderJobResult>
Logiwa Action: Executes the task for ExecQty . Flags the remaining inventory at TaskLocation as "Damaged". Searches for alternative locations with available inventory.
5. Follow-up Actions (Logiwa -> Robotics)
Inventory Check & Follow-up Task: Following a PICK SHORT scenario, if Logiwa finds available inventory elsewhere:
A new pick task is created for the remaining quantity.
Logiwa sends an UPDATE message to the robotics endpoint, adding this new task to the existing JobId.
Sample UPDATE Job Message (Logiwa -> Robotics):
JSON
<?xml version="1.0" encoding="ut-16"?>
<OrderJob
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc"
xmlns:xsd="http://www.w3.org/2001/XMLSchem">
<EventType>UPDATE</EventType>
<JobId>252f74d8-4b14-43a4-b39d-cc8b8621f80</JobId>
<JobDate>2025-05-05T18:23:10.797314Z</JobDate>
<JobPriority>0</JobPriority>
<JobPriorityGroup>0</JobPriorityGroup>
<RequestId>252f74d8-4b14-43a4-b39d-c8b821ff80</RequestId>
<SingleUnit>false</SingleUnit>
<JobTasks>
<OrderJobTask>
<JobTaskId>09a636f3-1809-4faadb8-4d6ec7db3e</JobTaskId>
<OrderId>eb4f4cf3-3504-4553-a41-848986ab484e</OrderId>
<OrderLineId>2ded7a0f-b3eb-4b8d-a201-a7a15c627ea</OrderLineId>
<OrderTaskId>09a636f3-1809-4faa-adb8-4d61ec78b3e</OrderTaskId>
<CustOwner>AMZ - Saltyface Natural Inc</CustOwner>
<TaskType>PICK</TaskType>
<TaskLocation>BIN2C01</TaskLocation>
<TaskZone>Bins</TaskZone>
<TaskWorkArea />
<TaskQty>5</TaskQty>
<ItemNo>TF-200-</ItemNo>
<ItemUPC>6279876620</ItemUPC>
<ItemDesc>Tanning Foam - Light Medium</ItemDesc>
<ItemLength>6.0</ItemLength>
<ItemWidth>4.5</ItemWidth>
<ItemHeight>2.5</ItemHeight>
<ItemWeight>1.5</ItemWeight>
<Custom1>022826</Custom1>
<Custom3>Each</Custom3>
<Custom4>Job1937102</Custom4>
<Custom5>Saltyface Natural</Custom5>
<LotNo>0901</LotNo>
</OrderJobTask>
<OrderJobTask>
<JobTaskId>09a636f3-1809-4faa-adb8-4d61e8db3e</JobTaskId>
<OrderId>eb4f4cf3-3504-4553-a416-84898b484e</OrderId>
<OrderLineId>2ded7a0f-b3eb-4b8d-a201-a715c627ea</OrderLineId>
<OrderTaskId>09a636f3-1809-4faa-adb8-4dec78db3e</OrderTaskId>
<CustOwner>Saltyface Natural</CustOwner>
<TaskType>PACK</TaskType>
<TaskLocation>PS4</TaskLocation>
<TaskZone>Bins</TaskZone>
<TaskWorkArea />
<TaskQty>5</TaskQty>
<ItemNo>TF-200</ItemNo>
<ItemUPC>6279876610</ItemUPC>
<ItemDesc>Tanning Foam LightMedium</ItemDesc>
<ItemLength>6.0</ItemLength>
<ItemWidth>4.5</ItemWidth>
<ItemHeight>2.5</ItemHeight>
<ItemWeight>1.5</ItemWeight>
</OrderJobTask>
</JobTasks>
</OrderJob>
No Available Inventory: If no alternative inventory is found after a short pick, no follow-up task is created, and no UPDATE message is sent for that short quantity.
6. Job Cancellation (Logiwa -> Robotics)
Trigger: A user cancels the job in the LogiwaIO web application.
Message Transmission: Logiwa sends a CANCEL event message to the robotics endpoint.
Sample CANCEL Job Message (Logiwa -> Robotics):
XML
<?xml version="1.0" encoding="ut-16"?>
<OrderJob
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchem">
<EventType>CANCEL</EventType>
<JobId>c3784b14-4fc7-4f8d-bde2-d15557e14</JobId>
<JobDate>2025-02-18T12:56:30.8867188+00</JobDate>
<RequestId>c3784b14-4fc7-4f8d-bde2-d15ea57e14</RequestId>
<SingleUnit>false</SingleUnit>
</OrderJob>
Robotics Action: The robotics system attempts to cancel the specified job if it hasn't already been completed. Success is not guaranteed.
For Process Flow, Please visit Logiwa IO Locus Robotics Automation Integration Process Flow