<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Developer – Labs</title><link>/docs/bootcamp-exchange/labs/</link><description>Recent content in Labs on Developer</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sat, 16 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="/docs/bootcamp-exchange/labs/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs: Agent Case Manager</title><link>/docs/bootcamp-exchange/labs/mo26-agent-case-manager/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-agent-case-manager/</guid><description>
&lt;h2 id="login">Login&lt;/h2>
&lt;ol>
&lt;li>Go to the Web URL:
&lt;ul>
&lt;li>&lt;a href="https://mesop3.omni.manh.com">https://mesop3.omni.manh.com&lt;/a> (Unified Commerce)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Enter your assigned User and Password.&lt;/li>
&lt;li>If you are unable to login, ask for help from Manhattan Team.&lt;/li>
&lt;/ol>
&lt;h2 id="initialize-agent">Initialize Agent&lt;/h2>
&lt;ol>
&lt;li>Launch &lt;strong>Agent Foundry&lt;/strong> from the Hamburger Menu.&lt;/li>
&lt;li>Click on &lt;strong>&amp;ldquo;Create Agent from Scratch&amp;rdquo;&lt;/strong>.&lt;/li>
&lt;li>Go to &lt;strong>Agent Configuration&lt;/strong> by clicking the &lt;strong>&amp;ldquo;Gear&amp;rdquo;&lt;/strong> icon, next to the Agent Name.&lt;/li>
&lt;li>Change the &lt;strong>Agent Name&lt;/strong> as you see fit.&lt;/li>
&lt;li>Scroll down to set the parameters &lt;strong>&amp;ldquo;Conversational&amp;rdquo;&lt;/strong> and &lt;strong>&amp;ldquo;Allow Attachment from Chat&amp;rdquo;&lt;/strong> flags as provided in the Agent Details section.&lt;/li>
&lt;/ol>
&lt;h2 id="important-note">Important Note&lt;/h2>
&lt;ul>
&lt;li>To add a new Task, click the &lt;strong>&amp;ldquo;default&amp;rdquo;&lt;/strong> task dropdown, then click on &lt;strong>Add New&lt;/strong>.&lt;/li>
&lt;li>To add an Action click on the &lt;strong>+&lt;/strong> sign on the Initial Screen or at the end of current action on the screen.&lt;/li>
&lt;/ul>
&lt;h2 id="agent-details">Agent Details&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Name&lt;/strong>&lt;/td>
&lt;td>MO26_Agent_CaseManager&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Description&lt;/strong>&lt;/td>
&lt;td>Autonomous scheduled agent that classifies and categorizes open Customer Engagement cases by updating CaseCategoryId, CaseSubCategoryId, and Team fields automatically.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Conversational&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>allowAttachmentFromChat&lt;/strong>&lt;/td>
&lt;td>false&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="./images/agent.png" alt="Agent">&lt;/p>
&lt;h2 id="actions">Actions&lt;/h2>
&lt;ul>
&lt;li>Add an action by clicking plus.&lt;/li>
&lt;/ul>
&lt;h3 id="task-name-default">Task Name: &lt;code>default&lt;/code>&lt;/h3>
&lt;h4 id="action-1--getticketdetail-type-getticketdetail">Action 1 — getTicketDetail (type: &lt;code>getTicketDetail&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>inputVariableName:&lt;/strong> &lt;code>{:TicketId}&lt;/code>&lt;/li>
&lt;li>&lt;strong>outputVariableName:&lt;/strong> &lt;code>ticketDetail&lt;/code>&lt;/li>
&lt;li>&lt;strong>sopOutputVariableName:&lt;/strong> &lt;code>ticketSOP&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1.png" alt="Action">&lt;/p>
&lt;h4 id="action-2--caseprocessor-type-callgenaiservice">Action 2 — caseprocessor (type: &lt;code>callGenAIService&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Instruction:&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>You are the Unified Commerce Case Management Agent — a fully autonomous scheduled data agent for Customer Engagement at Manhattan Associates. Run the complete workflow below without any user interaction or pausing.
CRITICAL FINALIZATION RULE: Direct text output is not rendered in the test panel. At the end of every run, build the run summary. If a real TicketId is available in context, call the built-in updateTicket tool first, then call ShowMessageTask with the same summary. If TicketId is null, empty, unresolved, or unavailable, do NOT call updateTicket; call ShowMessageTask only and include &amp;#34;Ticket update skipped: no TicketId in context.&amp;#34; Never end after SearchCasesTask, ValidateOrderTask, or any save task.
## TICKET UPDATE RULES
- Use only the real TicketId from context. Never invent TicketId values such as 12345, TEST, SAMPLE, or placeholders.
- If the context TicketId is unavailable, skip updateTicket and still call ShowMessageTask.
- When calling updateTicket, do not include TicketHistoryId. Send Status=Closed, LastUpdateByType=Agent, and TicketHistory with one item: UpdateByType=Agent and Note=&amp;lt;run summary&amp;gt;.
## STEP 1 — FETCH CASES
Call SearchCasesTask with:
- lastRunTimestamp: the value provided in your context (or &amp;#34;2020-01-01T00:00:00&amp;#34; if empty)
From the JSON response, extract data[]: the array of case objects to process. If data is returned as a single object, treat it as a one-item array.
Track: maxCreatedTimestamp = the largest CreatedTimestamp value seen across all cases in data[].
## STEP 2 — CLASSIFY AND PROCESS EACH CASE
For every case object in data[], extract: CaseId, CaseTitle, Description, PK, OrgId, CreatedTimestamp.
Update maxCreatedTimestamp if this case&amp;#39;s CreatedTimestamp is newer.
Apply these routing rules to CaseTitle in order (stop at first match):
RULE A — CLAIMS: CaseTitle starts with &amp;#34;Claims Request - &amp;#34; and has the pattern &amp;#34;Claims Request - {digits} - {digits}&amp;#34;
Example: &amp;#34;Claims Request - 6723875850 - 4620168&amp;#34;
-&amp;gt; Execute STEP 3 (Claims Request Flow) for this case.
RULE B — DROP SHIP: CaseTitle contains &amp;#34;DSCO&amp;#34; (case-insensitive)
-&amp;gt; Call SaveDropShipTask(caseId=CaseId, orgId=OrgId, pk=PK)
-&amp;gt; dropShipCount++; if response does not contain success, errorCount++
RULE C — SKIP: No rule matched
-&amp;gt; skippedCount++ with reason &amp;#34;Title not matched&amp;#34;
Track running totals: totalFetched, claimsCount, dropShipCount, homeDepotCount, skippedCount, errorCount
Track skipped case detail: skippedCases = list of &amp;#34;CaseId: &amp;lt;reason&amp;gt;&amp;#34; strings (append one entry per skipped case)
## STEP 3 — CLAIMS REQUEST FLOW
For each case matched by RULE A:
3a. Extract OrderId and ItemId from CaseTitle by splitting on &amp;#34; - &amp;#34; (space-hyphen-space):
tokens = CaseTitle.split(&amp;#34; - &amp;#34;)
OrderId = tokens[1].trim()
ItemId = tokens[2].trim()
3b. Check Description for claim keywords (case-insensitive): Broken, Damaged, Defective, Lost, Missed, &amp;#34;Not Delivered&amp;#34;
If NONE of these words appear: skippedCount++; append &amp;#34;&amp;lt;CaseId&amp;gt;: No claim keyword in description (Description=&amp;#39;&amp;lt;Description&amp;gt;&amp;#39;)&amp;#34; to skippedCases. Continue to next case. Treat &amp;#34;Defective&amp;#34; as a damaged claim type.
3c. Call ValidateOrderTask(orderId=&amp;lt;OrderId&amp;gt;, itemId=&amp;lt;ItemId&amp;gt;, description=&amp;lt;Description&amp;gt;)
3d. Read ValidateOrderTask_response as JSON:
If &amp;#34;decision&amp;#34; == &amp;#34;SKIP&amp;#34;: skippedCount++; append &amp;#34;&amp;lt;CaseId&amp;gt;: &amp;lt;skipReason from response&amp;gt; (OrderId=&amp;lt;OrderId&amp;gt;, ItemId=&amp;lt;ItemId&amp;gt;)&amp;#34; to skippedCases. Because this test run processes one case, immediately build the final summary, then finalize according to the CRITICAL FINALIZATION RULE.
If &amp;#34;decision&amp;#34; == &amp;#34;PROCEED&amp;#34;: Call SaveClaimsTask(caseId=CaseId, orgId=OrgId, pk=PK, casecategoryid=&amp;lt;caseCategoryId from response&amp;gt;, casesubcategoryid=&amp;lt;caseSubCategoryId from response&amp;gt;)
If SaveClaimsTask_response contains &amp;#34;success&amp;#34; field true or &amp;#34;statusCode&amp;#34;:&amp;#34;OK&amp;#34;: claimsCount++; then build the final summary and finalize according to the CRITICAL FINALIZATION RULE.
Else: errorCount++ with reason &amp;#34;Save Case API failed for CaseId=&amp;#34; + CaseId; then build the final summary and finalize according to the CRITICAL FINALIZATION RULE.
## STEP 4 — FINALIZE RUN
After all cases are processed, build the final run summary. If a real TicketId is available, call updateTicket, then call ShowMessageTask with the same summary. If no real TicketId is available, do not call updateTicket; call ShowMessageTask with the summary plus &amp;#34;Ticket update skipped: no TicketId in context.&amp;#34;
Build the run summary note using the two-character sequence \n (backslash-n) as the line separator — do NOT use actual newline characters.
Format exactly like this example (include the Skipped Detail section only when skippedCount &amp;gt; 0):
&amp;#34;Run Summary - Unified Commerce Case Management Agent\n---\nCases Fetched: 2\nCases Processed: 1\n Claims Request: 0\n Drop Ship Marketplace: 1\n Home Depot: 0\nCases Skipped: 1\nCases Errored: 0\n---\nSkipped Detail:\n CASE43486: No claim keyword in description (Description=&amp;#39;late&amp;#39;)\n CASE43567: FulfillmentStatus PICKED is below SHIPPED threshold (OrderId=1320695086, ItemId=1028885)&amp;#34;
After ShowMessageTask completes, stop.
## ERROR HANDLING
- If SearchCasesTask response does not contain a valid data[] array: treat as API failure. Set totalFetched=0. Finalize according to the CRITICAL FINALIZATION RULE using summary: &amp;#34;ERROR: Cases Search API failed — no cases processed.&amp;#34;
- If SaveDropShipTask or SaveHomeDepotTask response indicates failure: errorCount++, continue to the next case.
- If ValidateOrderTask response cannot be parsed as JSON: errorCount++ with reason &amp;#34;Order validation failed for CaseId&amp;#34;, then build the final summary and finalize according to the CRITICAL FINALIZATION RULE.
- ALWAYS finish with ShowMessageTask. Call updateTicket first only when a real TicketId is available.
## CRITICAL RULES
- This agent is FULLY AUTONOMOUS — do NOT stop or wait for user input at any point
- ALWAYS finish with ShowMessageTask; call updateTicket first only when a real TicketId is available
- Do not call any tool more times than necessary
## TERMINATION RULE
Once updateTicket has updated the ticket when possible and ShowMessageTask has displayed the final status, the workflow is COMPLETE. STOP IMMEDIATELY. Do NOT call any tool again. The run is finished.
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>User Input:&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>Start the Unified Commerce Case Management run now. lastRunTimestamp from configuration: {:config::lastRunTimestamp}. If that value is empty, use &amp;#39;2020-01-01T00:00:00&amp;#39; as the default. TicketId from context: {:TicketId}. Alternate ticketId from context: {:ticketId}. Process all eligible ATG-originated OPEN cases from start to finish according to your workflow.
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Parameters:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>builtInTools:&lt;/strong> &lt;code>updateTicket&lt;/code>&lt;/li>
&lt;li>&lt;strong>agents:&lt;/strong>
&lt;ul>
&lt;li>&lt;code>ext-MO26-Helper-CaseSearch&lt;/code>&lt;/li>
&lt;li>&lt;code>ext-MO26-Helper-CaseUpdate&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>description:&lt;/strong> Autonomous P&amp;amp;E orchestrator — runs on schedule, processes all eligible ATG cases without user interaction.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>outputVariableName:&lt;/strong> &lt;code>caseProcessorResponse&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action2.png" alt="Action">&lt;/p></description></item><item><title>Docs: Agent Chase Wave</title><link>/docs/bootcamp-exchange/labs/mo26-chase-wave-agent/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-chase-wave-agent/</guid><description>
&lt;h2 id="login">Login&lt;/h2>
&lt;ol>
&lt;li>Go to the Web URL:
&lt;ul>
&lt;li>&lt;a href="https://mesop6.sce.manh.com">https://mesop6.sce.manh.com (Supply Chain)&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Enter your assigned User and Password.&lt;/li>
&lt;li>If you are unable to login, ask for help from the Manhattan Team.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="initialize-agent">Initialize Agent&lt;/h2>
&lt;ol>
&lt;li>Launch &lt;strong>Agent Foundry&lt;/strong> from the Hamburger Menu.&lt;/li>
&lt;li>Click on &lt;strong>&amp;ldquo;Create Agent from Scratch&amp;rdquo;&lt;/strong>.&lt;/li>
&lt;li>Go to &lt;strong>Agent Configuration&lt;/strong> by clicking the &lt;strong>&amp;ldquo;Gear&amp;rdquo;&lt;/strong> icon, next to the Agent Name.&lt;/li>
&lt;li>Change the &lt;strong>AgentId&lt;/strong> and &lt;strong>Agent Name&lt;/strong> as you see fit.&lt;/li>
&lt;li>Scroll down to set the parameter &lt;strong>&amp;ldquo;Conversational&amp;rdquo;&lt;/strong> flag as provided in the Agent Details section.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="important-note">Important Note&lt;/h2>
&lt;ul>
&lt;li>To add a new Task, click the &lt;strong>&amp;ldquo;default&amp;rdquo;&lt;/strong> task dropdown, then click on &lt;strong>Add New&lt;/strong>.&lt;/li>
&lt;li>To add an Action, click on the &lt;strong>+&lt;/strong> sign on the Initial Screen or at the end of the current action on the screen.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="agent-details">Agent Details&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Name&lt;/strong>&lt;/td>
&lt;td>MO26_Agent_ChaseWave&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Description&lt;/strong>&lt;/td>
&lt;td>Master agent for chase wave, invoked from ticket mechanism, evaluates ticket SOP and executes chase wave. Built in Ticket update tool, and tasks as tools&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Conversational&lt;/strong>&lt;/td>
&lt;td>false&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>allowAttachmentFromChat&lt;/strong>&lt;/td>
&lt;td>false&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="./images/agent.png" alt="Screenshot">&lt;/p>
&lt;hr>
&lt;h2 id="actions">Actions&lt;/h2>
&lt;ul>
&lt;li>Add an action by clicking plus.&lt;/li>
&lt;/ul>
&lt;h3 id="task-default">Task: &lt;code>default&lt;/code>&lt;/h3>
&lt;h4 id="action-1--getticketdetail-getticketdetail">Action 1 — getTicketDetail (&lt;code>getTicketDetail&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Input Variable Name:&lt;/strong> &lt;code>{:TicketId}&lt;/code>&lt;/li>
&lt;li>&lt;strong>Output Variable Name:&lt;/strong> &lt;code>ticketDetail&lt;/code>&lt;/li>
&lt;li>&lt;strong>sopOutputVariableName:&lt;/strong> &lt;code>ticketSOP&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1.png" alt="Screenshot">&lt;/p>
&lt;hr>
&lt;h4 id="action-2--plan--execute-callgenaiservice">Action 2 — Plan &amp;amp; Execute (&lt;code>callGenAIService&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Instruction:&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>You are a virtual assistant, trying to help store manager to resolve tickets in an automated manner.
Reasoning Requirements:
- on each function call explain your reasoning
You must read SOP content and ticket content, and use available tools to determine a way to resolve the ticket.
When producing a response according to the SOP, you must record all information in the ticket, including the “facts” collected during SOP triaging, so it can be used as future reference data.
If you are not in interactive mode:
- you are not allowed to ask any follow up questions.
- if you have completed all the instructions in the SOP, then close the ticket with details of what actions taken.
Summarize the actions taken by you at the end.
&amp;lt;TICKET&amp;gt;
Ticket ID: {:ticketId}
Ticket Description: {:ticketdetail.Description}
Ticket History: {:ticketdetail.TicketHistory}
&amp;lt;/TICKET&amp;gt;
&amp;lt;SopContent&amp;gt;
{:ticketsop}
&amp;lt;/SopContent&amp;gt;
&amp;lt;ChatHistory&amp;gt;
{:CurrentChat}
&amp;lt;/ChatHistory&amp;gt;
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>User Input:&lt;/strong> &lt;code>{:UserInput}&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Parameters:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>builtInTools:&lt;/strong> &lt;code>updateTicket&lt;/code>&lt;/li>
&lt;li>&lt;strong>agents:&lt;/strong>
&lt;ul>
&lt;li>&lt;code>ext-MO26-Helper-TriggerChaseWave&lt;/code>&lt;/li>
&lt;li>&lt;code>ext-MO26-Helper-ShortedOrderLine&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>description:&lt;/strong> Execute Ticket SOP&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Output Variable Name:&lt;/strong> &lt;code>response&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/step2.png" alt="Screenshot">&lt;/p></description></item><item><title>Docs: Agent Create Event</title><link>/docs/bootcamp-exchange/labs/mo26-agent-create-event/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-agent-create-event/</guid><description>
&lt;h2 id="sample-files">Sample files&lt;/h2>
&lt;ul>
&lt;li>Sample txt file &lt;a href="../files/event-promo.txt">Event Promotions text file&lt;/a>&lt;/li>
&lt;li>Sample csv file &lt;a href="../files/event-promo.csv">Event Promotions csv file&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Docs: Agent Data Analyzer</title><link>/docs/bootcamp-exchange/labs/mo26-agent-data-analyzer/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-agent-data-analyzer/</guid><description>
&lt;h2 id="login">Login&lt;/h2>
&lt;ol>
&lt;li>Go to the Web URL:
&lt;ul>
&lt;li>&lt;a href="https://mesop3.omni.manh.com">https://mesop3.omni.manh.com (Unified Commerce)&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Enter your assigned User and Password.&lt;/li>
&lt;li>If you are unable to login, ask for help from Manhattan Team.&lt;/li>
&lt;/ol>
&lt;h2 id="initialize-agent">Initialize Agent&lt;/h2>
&lt;ol>
&lt;li>Launch &lt;strong>Agent Foundry&lt;/strong> from the Hamburger Menu.&lt;/li>
&lt;li>Click on &lt;strong>&amp;ldquo;Create Agent from Scratch&amp;rdquo;&lt;/strong>.&lt;/li>
&lt;li>Go to &lt;strong>Agent Configuration&lt;/strong> by clicking the &lt;strong>&amp;ldquo;Gear&amp;rdquo;&lt;/strong> icon, next to the Agent Name.&lt;/li>
&lt;li>Change the &lt;strong>AgentId&lt;/strong> and &lt;strong>Agent Name&lt;/strong> as you see fit.&lt;/li>
&lt;li>Scroll down to set the parameters &lt;strong>&amp;ldquo;Conversational&amp;rdquo;&lt;/strong> and &lt;strong>&amp;ldquo;Allow Attachment from Chat&amp;rdquo;&lt;/strong> flag as provided in the Agent Details section.&lt;/li>
&lt;/ol>
&lt;h2 id="important-note">Important Note&lt;/h2>
&lt;ul>
&lt;li>To add a new Task, click the &lt;strong>default&lt;/strong> task dropdown, then click on &lt;strong>Add New&lt;/strong>.&lt;/li>
&lt;li>To add an Action, click on the &lt;strong>+&lt;/strong> sign on the Initial Screen or at the end of the current action on the screen.&lt;/li>
&lt;/ul>
&lt;h2 id="agent-details">Agent Details&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Name&lt;/strong>&lt;/td>
&lt;td>MO26-Agent-DataAnalyzer&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Description&lt;/strong>&lt;/td>
&lt;td>Takes in a CSV and lets the user ask questions about it.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Conversational&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>allowAttachmentFromChat&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="./images/agent.png" alt="Screenshot">&lt;/p>
&lt;h2 id="actions">Actions&lt;/h2>
&lt;ul>
&lt;li>Add an action by clicking plus.&lt;/li>
&lt;/ul>
&lt;h3 id="task-default">Task: &lt;code>default&lt;/code>&lt;/h3>
&lt;h4 id="action-1--createresource-createresource">Action 1 — createResource (createResource)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>source:&lt;/strong> objectstore&lt;/li>
&lt;li>&lt;strong>mimeType:&lt;/strong> text/plain&lt;/li>
&lt;li>&lt;strong>namespace:&lt;/strong> &lt;code>{:Attachment_From_Chat.0.FileNamespace}&lt;/code>&lt;/li>
&lt;li>&lt;strong>filePath:&lt;/strong> &lt;code>{:Attachment_From_Chat.0.FileLocation}&lt;/code>&lt;/li>
&lt;li>&lt;strong>fileName:&lt;/strong> &lt;code>{:Attachment_From_Chat.0.FileName}&lt;/code>&lt;/li>
&lt;li>&lt;strong>outputVariableName:&lt;/strong> InputFileResource&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1.png" alt="Action1">&lt;/p>
&lt;h4 id="action-2--readfile-readfile">Action 2 — readFile (readFile)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>target:&lt;/strong> table&lt;/li>
&lt;li>&lt;strong>fileName:&lt;/strong> InputFileResource&lt;/li>
&lt;li>&lt;strong>outputVariableName:&lt;/strong> InputFileData&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action2.png" alt="Action2">&lt;/p>
&lt;h4 id="action-3--storeinlocaldb-storeinlocaldb">Action 3 — storeInLocalDB (storeInLocalDB)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>inputVariableName:&lt;/strong> InputFileData&lt;/li>
&lt;li>&lt;strong>outputVariableName:&lt;/strong> InputFileData&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action3.png" alt="Action3">&lt;/p>
&lt;h4 id="action-4--plan--execute-callgenaiservice">Action 4 — Plan &amp;amp; Execute (callGenAIService)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Instruction:&lt;/strong>
&lt;pre tabindex="0">&lt;code>&amp;lt;PURPOSE&amp;gt;
The user has uploaded the CSV file: &amp;#34;{:Attachment_From_Chat.0.FileName}&amp;#34;.
Your goal is to answer any questions they may have around this file and its content.
The content is stored in a local DB table called: &amp;#34;InputFileData&amp;#34;.
&amp;lt;/PURPOSE&amp;gt;
&amp;lt;RULES&amp;gt;
1. Anytime you are referencing the data in the CSV, you should return a segment of the CSV in tabular format.
&amp;lt;/RULES&amp;gt;
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>&lt;strong>User Input:&lt;/strong> &lt;code>{:userInput}&lt;/code>&lt;/li>
&lt;li>&lt;strong>Parameters:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>builtInTools:&lt;/strong> queryLocalDB&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action4.png" alt="Action4">&lt;/p>
&lt;h3 id="task-greetingtask">Task: &lt;code>greetingTask&lt;/code>&lt;/h3>
&lt;h4 id="action-1--addtextresponse-addtextresponse">Action 1 — addTextResponse (addTextResponse)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>textResponse:&lt;/strong> Please upload a CSV file.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/greet.png" alt="Greeting">&lt;/p></description></item><item><title>Docs: Agent Fraud Detection</title><link>/docs/bootcamp-exchange/labs/mo26-agent-fraud-detection/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-agent-fraud-detection/</guid><description>
&lt;h2 id="login">Login&lt;/h2>
&lt;ol>
&lt;li>Go to the Web URL:
&lt;ul>
&lt;li>&lt;a href="https://mesop6.sce.manh.com">https://mesop3.omni.manh.com (Unified Commerce)&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Enter your assigned User and Password.&lt;/li>
&lt;li>If you are unable to login, ask for help from Manhattan Team.&lt;/li>
&lt;/ol>
&lt;h2 id="initialize-agent">Initialize Agent&lt;/h2>
&lt;ol>
&lt;li>Launch &lt;strong>Agent Foundry&lt;/strong> from the Hamburger Menu.&lt;/li>
&lt;li>Click on &lt;strong>&amp;ldquo;Create Agent from Scratch&amp;rdquo;&lt;/strong>.&lt;/li>
&lt;li>Go to &lt;strong>Agent Configuration&lt;/strong> by clicking the &lt;strong>&amp;ldquo;Gear&amp;rdquo;&lt;/strong> icon, next to the Agent Name.&lt;/li>
&lt;li>Change the &lt;strong>Agent Name&lt;/strong> as you see fit.&lt;/li>
&lt;li>Scroll down to set the parameter &lt;strong>&amp;ldquo;Conversational&amp;rdquo;&lt;/strong> flag as provided in the Agent Details section.&lt;/li>
&lt;/ol>
&lt;h2 id="important-note">Important Note&lt;/h2>
&lt;ul>
&lt;li>To add a new Task, click the &lt;strong>&amp;ldquo;default&amp;rdquo;&lt;/strong> task dropdown, then click on &lt;strong>Add New&lt;/strong>.&lt;/li>
&lt;li>To add an Action click on the &lt;strong>+&lt;/strong> sign on the Initial Screen or at the end of current action on the screen.&lt;/li>
&lt;li>Follow the &lt;strong>Actions&lt;/strong> section and &lt;strong>Screenshots&lt;/strong> to add action provided for each action.&lt;/li>
&lt;/ul>
&lt;h2 id="agent-details">Agent Details&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Name&lt;/strong>&lt;/td>
&lt;td>MO26_Agent_FraudDetection&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Description&lt;/strong>&lt;/td>
&lt;td>This agent loads information from a ticket and uses that to evaluate an order for fraud. It then updates a ticket or updates an order to on hold.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Conversational&lt;/strong>&lt;/td>
&lt;td>false&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>allowAttachmentFromChat&lt;/strong>&lt;/td>
&lt;td>false&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="./images/agent.png" alt="Screenshot">&lt;/p>
&lt;h2 id="actions">Actions&lt;/h2>
&lt;ul>
&lt;li>Add an action by clicking plus.&lt;/li>
&lt;/ul>
&lt;h3 id="task-default">Task: &lt;code>default&lt;/code>&lt;/h3>
&lt;h4 id="action-1--getticketdetail">Action 1 — getTicketDetail&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Type:&lt;/strong> &lt;code>getTicketDetail&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Input Variable:&lt;/strong> &lt;code>TicketId&lt;/code>&lt;/li>
&lt;li>&lt;strong>Output Variable:&lt;/strong> &lt;code>ticketDetails&lt;/code>&lt;/li>
&lt;li>&lt;strong>SOP Output Variable:&lt;/strong> &lt;code>ticketSOP&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1.png" alt="Screenshot">&lt;/p>
&lt;h4 id="action-2--call-fraud-detection">Action 2 — Call Fraud Detection&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Type:&lt;/strong> &lt;code>callGenAIService&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Instruction:&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>Call the credit card fraud detection tool by passing the card number as credit card number and card holder name. Capture the tool response and show it.
After getting the fraud response, update the ticket to track what you&amp;#39;ve done.
Credit Card Number and Card holder Name will be in
&amp;lt;TicketDetails&amp;gt;
{:ticketDetails}
&amp;lt;/TicketDetails&amp;gt;
A unique SOP will be provided here
&amp;lt;SOP&amp;gt;
{:SOPDetails}
&amp;lt;/SOP&amp;gt;
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Parameters:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>MCP tools:&lt;/strong>
&lt;ul>
&lt;li>&lt;code>maki-mcp-server-detect-credit-card-fraud&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action2.png" alt="Screenshot">&lt;/p></description></item><item><title>Docs: Agent Hospital Assistant</title><link>/docs/bootcamp-exchange/labs/mo26-agent-hospital-assistant/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-agent-hospital-assistant/</guid><description>
&lt;h2 id="login">Login&lt;/h2>
&lt;ol>
&lt;li>Go to the Web URL:
&lt;ol>
&lt;li>&lt;a href="https://mesop6.sce.manh.com">https://mesop6.sce.manh.com (Supply Chain)&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Enter your assigned User and Password.&lt;/li>
&lt;li>If you are unable to login, ask for help from Manhattan Team.&lt;/li>
&lt;/ol>
&lt;h2 id="initialize-agent">Initialize Agent&lt;/h2>
&lt;ol>
&lt;li>Launch &lt;strong>Agent Foundry&lt;/strong> from the Hamburger Menu.&lt;/li>
&lt;li>Click on &lt;strong>&amp;ldquo;Create Agent from Scratch&amp;rdquo;&lt;/strong>.&lt;/li>
&lt;li>Go to &lt;strong>Agent Configuration&lt;/strong> by clicking the &lt;strong>&amp;ldquo;Gear&amp;rdquo;&lt;/strong> icon, next to the Agent Name.&lt;/li>
&lt;li>Change the &lt;strong>AgentId&lt;/strong> and &lt;strong>Agent Name&lt;/strong> as you see fit.&lt;/li>
&lt;li>Scroll down to set the parameter &lt;strong>&amp;ldquo;Conversational&amp;rdquo;&lt;/strong> flag as provided in the Agent Details section.&lt;/li>
&lt;/ol>
&lt;h2 id="important-note">Important Note&lt;/h2>
&lt;ul>
&lt;li>To add a new Task, click the &lt;strong>&amp;ldquo;default&amp;rdquo;&lt;/strong> task dropdown, then click on &lt;strong>Add New&lt;/strong>.&lt;/li>
&lt;li>To add an Action click on the &lt;strong>+&lt;/strong> sign on the Initial Screen or at the end of current action on the screen.&lt;/li>
&lt;/ul>
&lt;h2 id="agent-details">Agent Details&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Name&lt;/strong>&lt;/td>
&lt;td>MO26_Agent_HospitalAssistant&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Description&lt;/strong>&lt;/td>
&lt;td>Assist user with the Totes in the Hospital lane, current only supports tote cancellation. In future Order, Task, items etc info can passed to LLM to assists user will all sorts of question.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Conversational&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>allowAttachmentFromChat&lt;/strong>&lt;/td>
&lt;td>false&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="./images/agent.png" alt="Agent">&lt;/p>
&lt;h2 id="actions">Actions&lt;/h2>
&lt;ul>
&lt;li>Add an action by clicking plus.&lt;/li>
&lt;/ul>
&lt;h3 id="task-default">Task: &lt;code>default&lt;/code>&lt;/h3>
&lt;h4 id="action-1--requestparamcapture-requestparamcapture">Action 1 — requestParamCapture (&lt;code>requestParamCapture&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Parameters:&lt;/strong>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Name&lt;/th>
&lt;th>Description&lt;/th>
&lt;th>Type&lt;/th>
&lt;th>Mandatory&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Container&lt;/td>
&lt;td>This is the container for me to research&lt;/td>
&lt;td>string&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1.png" alt="Action1">&lt;/p>
&lt;h4 id="action-2--call-llm-callgenaiservice">Action 2 — Call LLM (&lt;code>callGenAIService&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Instruction:&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>You are a virtual assistant, trying to help warehouse manager for assisting user manage totes on a Hospital Lane of a Warehouse Automation System. You are invoked when users multi selectes records on a Hospital Lane assistant UI and clicks call agent button.
&amp;lt;Instructions&amp;gt;
* Use available tools to determine a way to answer users question or perform tasks that user requested.
* User may want to perform actions on all the records selected on UI or a subset.
* Before performing any task or taking any action confirm the act with user with the tools you are planning to use. Also, inform user with parameters you are passing to the tools, or the data on which your taking actions. Only once user has confirmed proceed with actions.
* If you are not clear or users question or actions to perform on the selected TOTE_OLPNs, respond to user with tools and capabilities you posses.
&amp;lt;Instructions&amp;gt;
Reasoning Requirements:
- on each function call explain your reasoning
Summarize the actions taken by you at the end.
This is the olpn or tote the user has asked us to research
&amp;lt;Container&amp;gt;
{:Container}
&amp;lt;/Container&amp;gt;
&amp;lt;ChatHistory&amp;gt;
{:CurrentChat}
&amp;lt;/ChatHistory&amp;gt;
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>User Input:&lt;/strong> &lt;code>{:UserInput}&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Parameters:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>agents:&lt;/strong>
&lt;ul>
&lt;li>&lt;code>ext-Helper-OlpnSearch&lt;/code>&lt;/li>
&lt;li>&lt;code>ext-MO26-Helper-OlpnCancel&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>description:&lt;/strong> Call tools to answer question/perform action on TOTE_OLPN.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>outputVariableName:&lt;/strong> &lt;code>outputData&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action2.png" alt="Action2">&lt;/p>
&lt;h3 id="task-greetingtask">Task: &lt;code>greetingTask&lt;/code>&lt;/h3>
&lt;h4 id="action-1--addtextresponse-addtextresponse">Action 1 — addTextResponse (&lt;code>addTextResponse&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>textResponse:&lt;/strong> &lt;code>Hello, I am assistant that accepts a tote or olpn and can provide information about it.&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/greet.png" alt="Greeting">&lt;/p></description></item><item><title>Docs: Agent Order Metrics</title><link>/docs/bootcamp-exchange/labs/mo26-agent-order-metrics/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-agent-order-metrics/</guid><description>
&lt;h2 id="login">Login&lt;/h2>
&lt;ol>
&lt;li>Go to the Web URL - &lt;a href="https://mesop3.omni.manh.com">https://mesop3.omni.manh.com&lt;/a> (Unified Commerce)&lt;/li>
&lt;li>Enter your assigned User and Password.&lt;/li>
&lt;li>If you are unable to login, ask for help from Manhattan Team.&lt;/li>
&lt;/ol>
&lt;h2 id="initialize-agent">Initialize Agent&lt;/h2>
&lt;ol>
&lt;li>Launch &lt;strong>Agent Foundry&lt;/strong> from the Hamburger Menu.&lt;/li>
&lt;li>Click on &lt;strong>&amp;ldquo;Create Agent from Scratch&amp;rdquo;&lt;/strong>.&lt;/li>
&lt;li>Go to &lt;strong>Agent Configuration&lt;/strong> by clicking the &lt;strong>Gear&lt;/strong> icon, next to the Agent Name.&lt;/li>
&lt;li>Change the &lt;strong>AgentId&lt;/strong> and &lt;strong>Agent Name&lt;/strong> as you see fit.&lt;/li>
&lt;li>Scroll down to set the parameters &lt;strong>&amp;ldquo;Conversational&amp;rdquo;&lt;/strong> and &lt;strong>&amp;ldquo;Allow Attachment from Chat&amp;rdquo;&lt;/strong> flag as provided in the &lt;strong>Agent Details&lt;/strong> section.&lt;/li>
&lt;/ol>
&lt;h2 id="important-note">Important Note&lt;/h2>
&lt;ul>
&lt;li>To add a new Task, click the &lt;strong>&amp;ldquo;default&amp;rdquo;&lt;/strong> task dropdown, then click on &lt;strong>Add New&lt;/strong>.&lt;/li>
&lt;li>To add an Action, click on the &lt;strong>+&lt;/strong> sign on the Initial Screen or at the end of the current action on the screen.&lt;/li>
&lt;/ul>
&lt;h2 id="agent-details">Agent Details&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Name&lt;/strong>&lt;/td>
&lt;td>MO26_Agent_OrderMetrics&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Description&lt;/strong>&lt;/td>
&lt;td>This agent provides a natural language interface to understand metrics.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Conversational&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>allowAttachmentFromChat&lt;/strong>&lt;/td>
&lt;td>false&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="./images/agent.png" alt="Agent">&lt;/p>
&lt;h2 id="actions">Actions&lt;/h2>
&lt;ul>
&lt;li>Add an action by clicking plus.&lt;/li>
&lt;/ul>
&lt;h3 id="task-default">Task: &lt;code>default&lt;/code>&lt;/h3>
&lt;h4 id="action-1-plan--execute-callgenaiservice">Action 1: Plan &amp;amp; Execute (&lt;code>callGenAIService&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Description:&lt;/strong> Plan &amp;amp; Execute - callGenAIService&lt;/p>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Instruction:&lt;/strong>
&lt;pre tabindex="0">&lt;code>You are a Order metrics provider agent. Here are the few things you can do:
1. How many orders created by hour/day
2. How many order Canceled By hour/day
3. How many BO&amp;#39;s By hour/day
4. Cancelation by day by reason code
5. How many open invoices/Day
Perform the below actions if the {:ordersBucketList} has a value. Do not print anything stating that the {:ordersBucketList} is empty.
Use {:ordersBucketList} as the primary and authoritative data source for answering all follow-up order analytics questions. Do not rely on assumptions or external data when the required answer can be derived from {:ordersBucketList}.
When the user asks order-related questions, analyze {:ordersBucketList} and return the answer directly from that data. This includes, but is not limited to:
1. orders created by hour or day
2. orders canceled by hour or day
3. BOs by hour or day
4. cancellations by day grouped by reason code
5. open invoices by day
any other order metrics already available in {:ordersBucketList}
Guidelines:
Always use {:ordersBucketList} first before considering any other source.
Aggregate only from the fields available in {:ordersBucketList}.
If the user asks for hourly data, return hourly aggregation.
If the user asks for daily data, return daily aggregation.
If the user asks for reason-wise cancellation data, group by cancellation reason code.
If the requested metric is not available or cannot be derived from {:ordersBucketList}, clearly say that it cannot be determined from the available data.
Keep the response concise, accurate, and directly aligned to the user&amp;#39;s question.
When possible, return the result in a simple structured format such as a list or table for readability.
Treat {:ordersBucketList} as the source of truth for further order-related questions.
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>&lt;strong>User Input:&lt;/strong> &lt;code>{:currentchat}&lt;/code>&lt;/li>
&lt;li>&lt;strong>Parameters:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>agents:&lt;/strong>
&lt;ul>
&lt;li>&lt;code>ext-MO26-Helper-OrderDataAnalyzer&lt;/code>&lt;/li>
&lt;li>&lt;code>ext-MO26-Helper-OrderSearch&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1.png" alt="Action">&lt;/p>
&lt;h3 id="task-greetingtask">Task: &lt;code>greetingTask&lt;/code>&lt;/h3>
&lt;h4 id="action-1-addtextresponse-addtextresponse">Action 1: addTextResponse (&lt;code>addTextResponse&lt;/code>)&lt;/h4>
&lt;p>&lt;strong>Action Description:&lt;/strong> addTextResponse - addTextResponse&lt;/p>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>textResponse:&lt;/strong> &lt;code>Hello, I am an assistant that can give answers to order related queries.&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/greet.png" alt="Greeting">&lt;/p></description></item><item><title>Docs: Agent Slotting Assistant</title><link>/docs/bootcamp-exchange/labs/mo26-agent-slotting-assist/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-agent-slotting-assist/</guid><description>
&lt;h2 id="login">Login&lt;/h2>
&lt;ol>
&lt;li>Go to the Web URLs:
&lt;ol>
&lt;li>&lt;a href="https://mesop6.sce.manh.com">https://mesop6.sce.manh.com&lt;/a> (Supply Chain)&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Enter your assigned User and Password.&lt;/li>
&lt;li>If you are unable to login, ask for help from Manhattan Team.&lt;/li>
&lt;/ol>
&lt;h2 id="initialize-agent">Initialize Agent&lt;/h2>
&lt;ol>
&lt;li>Launch &lt;strong>Agent Foundry&lt;/strong> from the Hamburger Menu.&lt;/li>
&lt;li>Click on &lt;strong>&amp;ldquo;Create Agent from Scratch&amp;rdquo;&lt;/strong>.&lt;/li>
&lt;li>Go to &lt;strong>Agent Configuration&lt;/strong> by clicking the &lt;strong>Gear&lt;/strong> icon, next to the Agent Name.&lt;/li>
&lt;li>Change the &lt;strong>AgentId&lt;/strong> and &lt;strong>Agent Name&lt;/strong> as you see fit.&lt;/li>
&lt;li>Scroll down to set the parameters &lt;strong>Conversational&lt;/strong> and &lt;strong>Allow Attachment from Chat&lt;/strong> flags as provided in the Agent Details section.&lt;/li>
&lt;/ol>
&lt;h2 id="important-note">Important Note&lt;/h2>
&lt;ul>
&lt;li>To add a new Task, click the &lt;strong>&amp;ldquo;default&amp;rdquo;&lt;/strong> task dropdown, then click on &lt;strong>Add New&lt;/strong>.&lt;/li>
&lt;li>To add an Action click on the &lt;strong>+&lt;/strong> sign on the Initial Screen or at the end of the current action on the screen.&lt;/li>
&lt;/ul>
&lt;h2 id="agent-details">Agent Details&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Name&lt;/strong>&lt;/td>
&lt;td>MO26_Agent_SlottingAssist&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Description&lt;/strong>&lt;/td>
&lt;td>This is an agent that supports uploading a csv of items and returns eligible locations&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Conversational&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>allowAttachmentFromChat&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="./images/agent.png" alt="Agent">&lt;/p>
&lt;h2 id="actions">Actions&lt;/h2>
&lt;ul>
&lt;li>Add an action by clicking plus.&lt;/li>
&lt;/ul>
&lt;h3 id="task-name-default">Task Name: &lt;code>default&lt;/code>&lt;/h3>
&lt;h4 id="action-1--ifthen-ifthen">Action 1 — ifThen (ifThen)&lt;/h4>
&lt;p>&lt;strong>Action Description:&lt;/strong> Conditional branch that checks whether location recommendations have already been provided.&lt;/p>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Condition:&lt;/strong> &lt;code>LocationRec.DataResponse.Provided==1&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1.png" alt="Action1">&lt;/p>
&lt;h5 id="actionswhentrue">actionsWhenTrue&lt;/h5>
&lt;h6 id="action-1t1--addstreamresponse-addstreamresponse">Action 1.T.1 — addStreamResponse (addStreamResponse)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>Text Response:&lt;/strong> &lt;code>Thinking about locations&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1-T-1.png" alt="Action1">&lt;/p>
&lt;h6 id="action-1t2--plan--execute-callgenaiservice">Action 1.T.2 — Plan &amp;amp; Execute (callGenAIService)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>Instruction:&lt;/strong>
&lt;pre tabindex="0">&lt;code>You are an assistant for creating location item assignments. You will be provided a json that consists of locations and itemIds.
The current set of recommendations will be provided in {:LocationRec}.
You can make modifications to this and it should follow this structure. Once the user confirms creation of the locations, use the available tools to create them.
{
&amp;#34;Data&amp;#34;: [
{
&amp;#34;LocationId&amp;#34;: &amp;#34;1A30J01A03&amp;#34;,
&amp;#34;StorageUomId&amp;#34;: &amp;#34;LPN&amp;#34;,
&amp;#34;ItemId&amp;#34;: 226019
},
{
&amp;#34;LocationId&amp;#34;: &amp;#34;1A30J01A03&amp;#34;,
&amp;#34;StorageUomId&amp;#34;: &amp;#34;LPN&amp;#34;,
&amp;#34;ItemId&amp;#34;: 226019
},
{
&amp;#34;LocationId&amp;#34;: &amp;#34;1A30J01A03&amp;#34;,
&amp;#34;StorageUomId&amp;#34;: &amp;#34;LPN&amp;#34;,
&amp;#34;ItemId&amp;#34;: 226019
}
]
}
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>&lt;strong>User Input:&lt;/strong> &lt;code>{:UserInput}&lt;/code>&lt;/li>
&lt;li>&lt;strong>Parameters:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>agents:&lt;/strong> &lt;code>ext-MO26-Helper-LIACreation&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1-T-2.png" alt="Action1-T-2">&lt;/p>
&lt;h5 id="actionswhenfalse">actionsWhenFalse&lt;/h5>
&lt;h6 id="action-1f1--ext-mo26-helper-csvupload-callagent">Action 1.F.1 — ext-MO26-Helper-CSVUpload (callAgent)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>Parameters:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>CSV:&lt;/strong> &lt;code>object::Attachment_From_Chat&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>outputVariableName:&lt;/strong> &lt;code>AgentOutput&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1-F-1.png" alt="Action1-F-1">&lt;/p>
&lt;h6 id="action-1f2--ext-mo26_helper_itemsearch-callagent">Action 1.F.2 — ext-MO26_Helper_ItemSearch (callAgent)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>Parameters:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>ItemList:&lt;/strong> &lt;code>object::AgentOutput.DataResponse.ItemList&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>outputVariableName:&lt;/strong> &lt;code>ItemInformation&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1-F-2.png" alt="Action1-F-2">&lt;/p>
&lt;h6 id="action-1f3--ext-mo26-helper-locationrecommendation-callagent">Action 1.F.3 — ext-MO26-Helper-LocationRecommendation (callAgent)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>Parameters:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>ItemInformation:&lt;/strong> &lt;code>object::ItemInformation&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>outputVariableName:&lt;/strong> &lt;code>LocationRec&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1-F-3.png" alt="Action1-F-3">&lt;/p>
&lt;h6 id="action-1f4--addtextresponse-addtextresponse">Action 1.F.4 — addTextResponse (addTextResponse)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>Text Response:&lt;/strong> &lt;code>{:LocationRec}&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1-F-4.png" alt="Action1-F-4">&lt;/p>
&lt;h3 id="task-name-greetingtask">Task Name: &lt;code>greetingTask&lt;/code>&lt;/h3>
&lt;h4 id="action-1--addtextresponse-addtextresponse">Action 1 — addTextResponse (addTextResponse)&lt;/h4>
&lt;p>&lt;strong>Action Description:&lt;/strong> Initial greeting displayed to the user.&lt;/p>
&lt;p>&lt;strong>Action Details:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Text Response:&lt;/strong> &lt;code>Hello! I am an agent that can provide slotting recommendations. If you upload a csv of items, I can load their details and provide suggested locations. I can then create those assignments.&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/greet.png" alt="Greeting">&lt;/p></description></item><item><title>Docs: Agent ZPL Creator</title><link>/docs/bootcamp-exchange/labs/mo26-agent-zpl-creator/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/docs/bootcamp-exchange/labs/mo26-agent-zpl-creator/</guid><description>
&lt;h2 id="login">Login&lt;/h2>
&lt;ol>
&lt;li>Go to the Web URL:
&lt;ol>
&lt;li>&lt;a href="https://mesop6.sce.manh.com">https://mesop6.sce.manh.com (Supply Chain)&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Enter your assigned User and Password.&lt;/li>
&lt;li>If you are unable to login, ask for help from Manhattan Team.&lt;/li>
&lt;/ol>
&lt;h2 id="initialize-agent">Initialize Agent&lt;/h2>
&lt;ol>
&lt;li>Launch &lt;strong>Agent Foundry&lt;/strong> from the Hamburger Menu.&lt;/li>
&lt;li>Click on &lt;strong>&amp;ldquo;Create Agent from Scratch&amp;rdquo;&lt;/strong>.&lt;/li>
&lt;li>Go to &lt;strong>Agent Configuration&lt;/strong> by clicking the &lt;strong>Gear&lt;/strong> icon, next to the Agent Name.&lt;/li>
&lt;li>Specify the &lt;strong>AgentId&lt;/strong> and &lt;strong>Agent Name&lt;/strong> as you see fit.&lt;/li>
&lt;li>Scroll down to set the parameters &lt;strong>&amp;ldquo;Conversational&amp;rdquo;&lt;/strong> and &lt;strong>&amp;ldquo;Allow Attachment from Chat&amp;rdquo;&lt;/strong> flag as provided in the Agent Details section.&lt;/li>
&lt;/ol>
&lt;h2 id="agent-details">Agent Details&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Name&lt;/strong>&lt;/td>
&lt;td>MO26_Agent_ZPLCreator&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Description&lt;/strong>&lt;/td>
&lt;td>This is an agent that supports uploading an image of a label and returns a zpl template.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Conversational&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>allowAttachmentFromChat&lt;/strong>&lt;/td>
&lt;td>true&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="./images/agent.png" alt="Screenshot">&lt;/p>
&lt;h2 id="actions">Actions&lt;/h2>
&lt;ul>
&lt;li>Add an action by clicking plus.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>To add an Action click on the + sign on the Initial UI or at end of the current action on the screen.&lt;/strong>&lt;/p>
&lt;h3 id="task-default">Task: &lt;code>default&lt;/code>&lt;/h3>
&lt;h4 id="action-1--ifthen-ifthen">Action 1 — ifThen (ifThen)&lt;/h4>
&lt;p>&lt;strong>Condition:&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>AgentOutput.DataResponse.ZPLGenerated==1
&lt;/code>&lt;/pre>&lt;p>&lt;img src="./images/action1.png" alt="Screenshot">&lt;/p>
&lt;h5 id="actionswhentrue">actionsWhenTrue&lt;/h5>
&lt;h6 id="action-1t1--addstreamresponse-addstreamresponse">Action 1.T.1 — addStreamResponse (addStreamResponse)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>User Input:&lt;/strong> &lt;code>Thinking about printers&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1-1.png" alt="Screenshot">&lt;/p>
&lt;h6 id="action-1t2--reply-with-ai-callgenaiservice">Action 1.T.2 — Reply with AI (callGenAIService)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>Instruction:&lt;/strong>
&lt;pre tabindex="0">&lt;code>You are an assistant for modifying ZPL templates. These are for a warehouse management system.
This is the previous ZPL template. The user might be asking for followups and updates to the ZPL template.
{:AgentOutput.DataResponse.Template}
This is where the User questions will come in.
{:UserInput}
If asked for changes to a ZPL template, you should respond with ZPL only, do not provide comments.
&lt;/code>&lt;/pre>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action1-2.png" alt="Screenshot">&lt;/p>
&lt;h5 id="actionswhenfalse">actionsWhenFalse&lt;/h5>
&lt;h6 id="action-1f1--ext-mo26-helper-labelpngtozpl-callagent">Action 1.F.1 — ext-MO26-Helper-LabelPNGToZPL (callAgent)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>Parameters:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>agents:&lt;/strong> &lt;code>ext-MO26-Helper-LabelPNGToZPL&lt;/code>&lt;/li>
&lt;li>&lt;strong>LabelDetails:&lt;/strong> &lt;code>object::Attachment_From_Chat&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>outputVariableName:&lt;/strong> &lt;code>AgentOutput&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action2-1.png" alt="Screenshot">&lt;/p>
&lt;h6 id="action-1f2--addtextresponse-addtextresponse">Action 1.F.2 — addTextResponse (addTextResponse)&lt;/h6>
&lt;ul>
&lt;li>&lt;strong>textResponse:&lt;/strong> &lt;code>{:AgentOutput.DataResponse.Template}&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/action2-2.png" alt="Screenshot">&lt;/p>
&lt;h3 id="task-greetingtask">Task: &lt;code>greetingTask&lt;/code>&lt;/h3>
&lt;h4 id="action-1--addtextresponse-addtextresponse">Action 1 — addTextResponse (addTextResponse)&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>textResponse:&lt;/strong> &lt;code>Hello! I am an agent that can convert pictures of labels into ZPL. Upload an image and I will give you a ZPL template.&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="./images/greet.png" alt="Screenshot">&lt;/p></description></item></channel></rss>