This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Labs

Hands-on exercises and technical guides

For an overview of the Exchange 2026 Boot Camp experience, themes, and getting started information, visit the Boot Camp section before exploring the hands-on guides and exercises in Labs.

AgentProduct
Agent Appointment CreatorActiveWarehouse & ActiveTransportation
Agent Case ManagerActiveOrder
Agent Chase WaveActiveWarehouse
Agent Data AnalyzerActivePlanning
Agent Fraud DetectionActiveOrder
Agent Hospital AssistantActiveWarehouse
Agent Order MetricsActiveOrder
Agent Slotting AssistantActiveWarehouse
Agent Store Capacity AlertActiveOrder
Agent ZPL CreatorActiveWarehouse
Agent Create EventActivePlanning

1 - Agent Case Manager

Step-by-step technical guide for Agent Case Manager

Login

  1. Go to the Web URL:
  2. Enter your assigned User and Password.
  3. If you are unable to login, ask for help from Manhattan Team.

Initialize Agent

  1. Launch Agent Foundry from the Hamburger Menu.
  2. Click on “Create Agent from Scratch”.
  3. Go to Agent Configuration by clicking the “Gear” icon, next to the Agent Name.
  4. Change the Agent Name as you see fit.
  5. Scroll down to set the parameters “Conversational” and “Allow Attachment from Chat” flags as provided in the Agent Details section.

Important Note

  • To add a new Task, click the “default” task dropdown, then click on Add New.
  • To add an Action click on the + sign on the Initial Screen or at the end of current action on the screen.

Agent Details

FieldValue
NameMO26_Agent_CaseManager
DescriptionAutonomous scheduled agent that classifies and categorizes open Customer Engagement cases by updating CaseCategoryId, CaseSubCategoryId, and Team fields automatically.
Conversationaltrue
allowAttachmentFromChatfalse

Agent

Actions

  • Add an action by clicking plus.

Task Name: default

Action 1 — getTicketDetail (type: getTicketDetail)

Action Details:

  • inputVariableName: {:TicketId}
  • outputVariableName: ticketDetail
  • sopOutputVariableName: ticketSOP

Action

Action 2 — caseprocessor (type: callGenAIService)

Action Details:

  • Instruction:

    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 "Ticket update skipped: no TicketId in context." 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=<run summary>.
    
    ## STEP 1 — FETCH CASES
    Call SearchCasesTask with:
    - lastRunTimestamp: the value provided in your context (or "2020-01-01T00:00:00" 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's CreatedTimestamp is newer.
    
    Apply these routing rules to CaseTitle in order (stop at first match):
    
    RULE A — CLAIMS: CaseTitle starts with "Claims Request - " and has the pattern "Claims Request - {digits} - {digits}"
      Example: "Claims Request - 6723875850 - 4620168"
      -> Execute STEP 3 (Claims Request Flow) for this case.
    
    RULE B — DROP SHIP: CaseTitle contains "DSCO" (case-insensitive)
      -> Call SaveDropShipTask(caseId=CaseId, orgId=OrgId, pk=PK)
      -> dropShipCount++; if response does not contain success, errorCount++
    
    RULE C — SKIP: No rule matched
      -> skippedCount++ with reason "Title not matched"
    
    Track running totals: totalFetched, claimsCount, dropShipCount, homeDepotCount, skippedCount, errorCount
    Track skipped case detail: skippedCases = list of "CaseId: <reason>" 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 " - " (space-hyphen-space):
        tokens = CaseTitle.split(" - ")
        OrderId = tokens[1].trim()
        ItemId = tokens[2].trim()
    
    3b. Check Description for claim keywords (case-insensitive): Broken, Damaged, Defective, Lost, Missed, "Not Delivered"
        If NONE of these words appear: skippedCount++; append "<CaseId>: No claim keyword in description (Description='<Description>')" to skippedCases. Continue to next case. Treat "Defective" as a damaged claim type.
    
    3c. Call ValidateOrderTask(orderId=<OrderId>, itemId=<ItemId>, description=<Description>)
    
    3d. Read ValidateOrderTask_response as JSON:
        If "decision" == "SKIP": skippedCount++; append "<CaseId>: <skipReason from response> (OrderId=<OrderId>, ItemId=<ItemId>)" to skippedCases. Because this test run processes one case, immediately build the final summary, then finalize according to the CRITICAL FINALIZATION RULE.
        If "decision" == "PROCEED": Call SaveClaimsTask(caseId=CaseId, orgId=OrgId, pk=PK, casecategoryid=<caseCategoryId from response>, casesubcategoryid=<caseSubCategoryId from response>)
          If SaveClaimsTask_response contains "success" field true or "statusCode":"OK": claimsCount++; then build the final summary and finalize according to the CRITICAL FINALIZATION RULE.
          Else: errorCount++ with reason "Save Case API failed for CaseId=" + 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 "Ticket update skipped: no TicketId in context."
    
    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 > 0):
    "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='late')\n  CASE43567: FulfillmentStatus PICKED is below SHIPPED threshold (OrderId=1320695086, ItemId=1028885)"
    
    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: "ERROR: Cases Search API failed — no cases processed."
    - If SaveDropShipTask or SaveHomeDepotTask response indicates failure: errorCount++, continue to the next case.
    - If ValidateOrderTask response cannot be parsed as JSON: errorCount++ with reason "Order validation failed for CaseId", 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.
    
  • User Input:

    Start the Unified Commerce Case Management run now. lastRunTimestamp from configuration: {:config::lastRunTimestamp}. If that value is empty, use '2020-01-01T00:00:00' 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.
    
  • Parameters:

    • builtInTools: updateTicket
    • agents:
      • ext-MO26-Helper-CaseSearch
      • ext-MO26-Helper-CaseUpdate
    • description: Autonomous P&E orchestrator — runs on schedule, processes all eligible ATG cases without user interaction.
  • outputVariableName: caseProcessorResponse

Action

2 - Agent Chase Wave

Step-by-step technical guide for Agent Chase Wave

Login

  1. Go to the Web URL:
  2. Enter your assigned User and Password.
  3. If you are unable to login, ask for help from the Manhattan Team.

Initialize Agent

  1. Launch Agent Foundry from the Hamburger Menu.
  2. Click on “Create Agent from Scratch”.
  3. Go to Agent Configuration by clicking the “Gear” icon, next to the Agent Name.
  4. Change the AgentId and Agent Name as you see fit.
  5. Scroll down to set the parameter “Conversational” flag as provided in the Agent Details section.

Important Note

  • To add a new Task, click the “default” task dropdown, then click on Add New.
  • To add an Action, click on the + sign on the Initial Screen or at the end of the current action on the screen.

Agent Details

FieldValue
NameMO26_Agent_ChaseWave
DescriptionMaster agent for chase wave, invoked from ticket mechanism, evaluates ticket SOP and executes chase wave. Built in Ticket update tool, and tasks as tools
Conversationalfalse
allowAttachmentFromChatfalse

Screenshot


Actions

  • Add an action by clicking plus.

Task: default

Action 1 — getTicketDetail (getTicketDetail)

Action Details:

  • Input Variable Name: {:TicketId}
  • Output Variable Name: ticketDetail
  • sopOutputVariableName: ticketSOP

Screenshot


Action 2 — Plan & Execute (callGenAIService)

Action Details:

  • Instruction:

    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.
    
    
    <TICKET>
    Ticket ID: {:ticketId}
    Ticket Description: {:ticketdetail.Description}
    Ticket History: {:ticketdetail.TicketHistory}
    </TICKET>
    
    <SopContent>
    {:ticketsop}
    </SopContent>
    
    <ChatHistory>
    {:CurrentChat}
    </ChatHistory>
    
  • User Input: {:UserInput}

  • Parameters:

    • builtInTools: updateTicket
    • agents:
      • ext-MO26-Helper-TriggerChaseWave
      • ext-MO26-Helper-ShortedOrderLine
    • description: Execute Ticket SOP
  • Output Variable Name: response

Screenshot

3 - Agent Create Event

Step-by-step technical guide for Agent Create Event

Sample files

4 - Agent Data Analyzer

Step-by-step technical guide for Agent Data Analyzer

Login

  1. Go to the Web URL:
  2. Enter your assigned User and Password.
  3. If you are unable to login, ask for help from Manhattan Team.

Initialize Agent

  1. Launch Agent Foundry from the Hamburger Menu.
  2. Click on “Create Agent from Scratch”.
  3. Go to Agent Configuration by clicking the “Gear” icon, next to the Agent Name.
  4. Change the AgentId and Agent Name as you see fit.
  5. Scroll down to set the parameters “Conversational” and “Allow Attachment from Chat” flag as provided in the Agent Details section.

Important Note

  • To add a new Task, click the default task dropdown, then click on Add New.
  • To add an Action, click on the + sign on the Initial Screen or at the end of the current action on the screen.

Agent Details

FieldValue
NameMO26-Agent-DataAnalyzer
DescriptionTakes in a CSV and lets the user ask questions about it.
Conversationaltrue
allowAttachmentFromChattrue

Screenshot

Actions

  • Add an action by clicking plus.

Task: default

Action 1 — createResource (createResource)

Action Details:

  • source: objectstore
  • mimeType: text/plain
  • namespace: {:Attachment_From_Chat.0.FileNamespace}
  • filePath: {:Attachment_From_Chat.0.FileLocation}
  • fileName: {:Attachment_From_Chat.0.FileName}
  • outputVariableName: InputFileResource

Action1

Action 2 — readFile (readFile)

Action Details:

  • target: table
  • fileName: InputFileResource
  • outputVariableName: InputFileData

Action2

Action 3 — storeInLocalDB (storeInLocalDB)

Action Details:

  • inputVariableName: InputFileData
  • outputVariableName: InputFileData

Action3

Action 4 — Plan & Execute (callGenAIService)

Action Details:

  • Instruction:
    <PURPOSE>
    The user has uploaded the CSV file: "{:Attachment_From_Chat.0.FileName}".
    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: "InputFileData".
    </PURPOSE>
    
    <RULES>
    1. Anytime you are referencing the data in the CSV, you should return a segment of the CSV in tabular format.
    </RULES>
    
  • User Input: {:userInput}
  • Parameters:
    • builtInTools: queryLocalDB

Action4

Task: greetingTask

Action 1 — addTextResponse (addTextResponse)

Action Details:

  • textResponse: Please upload a CSV file.

Greeting

5 - Agent Fraud Detection

Step-by-step technical guide for Agent Fraud Detection

Login

  1. Go to the Web URL:
  2. Enter your assigned User and Password.
  3. If you are unable to login, ask for help from Manhattan Team.

Initialize Agent

  1. Launch Agent Foundry from the Hamburger Menu.
  2. Click on “Create Agent from Scratch”.
  3. Go to Agent Configuration by clicking the “Gear” icon, next to the Agent Name.
  4. Change the Agent Name as you see fit.
  5. Scroll down to set the parameter “Conversational” flag as provided in the Agent Details section.

Important Note

  • To add a new Task, click the “default” task dropdown, then click on Add New.
  • To add an Action click on the + sign on the Initial Screen or at the end of current action on the screen.
  • Follow the Actions section and Screenshots to add action provided for each action.

Agent Details

FieldValue
NameMO26_Agent_FraudDetection
DescriptionThis 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.
Conversationalfalse
allowAttachmentFromChatfalse

Screenshot

Actions

  • Add an action by clicking plus.

Task: default

Action 1 — getTicketDetail

  • Type: getTicketDetail

Action Details:

  • Input Variable: TicketId
  • Output Variable: ticketDetails
  • SOP Output Variable: ticketSOP

Screenshot

Action 2 — Call Fraud Detection

  • Type: callGenAIService

Action Details:

  • Instruction:

    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've done.
    
    Credit Card Number and Card holder Name will be in 
    <TicketDetails>
    {:ticketDetails}
    </TicketDetails>
    
    A unique SOP will be provided here
    <SOP>
    {:SOPDetails}
    </SOP>
    
  • Parameters:

    • MCP tools:
      • maki-mcp-server-detect-credit-card-fraud

Screenshot

6 - Agent Hospital Assistant

Step-by-step technical guide for Agent Hospital Assistant

Login

  1. Go to the Web URL:
    1. https://mesop6.sce.manh.com (Supply Chain)
  2. Enter your assigned User and Password.
  3. If you are unable to login, ask for help from Manhattan Team.

Initialize Agent

  1. Launch Agent Foundry from the Hamburger Menu.
  2. Click on “Create Agent from Scratch”.
  3. Go to Agent Configuration by clicking the “Gear” icon, next to the Agent Name.
  4. Change the AgentId and Agent Name as you see fit.
  5. Scroll down to set the parameter “Conversational” flag as provided in the Agent Details section.

Important Note

  • To add a new Task, click the “default” task dropdown, then click on Add New.
  • To add an Action click on the + sign on the Initial Screen or at the end of current action on the screen.

Agent Details

FieldValue
NameMO26_Agent_HospitalAssistant
DescriptionAssist 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.
Conversationaltrue
allowAttachmentFromChatfalse

Agent

Actions

  • Add an action by clicking plus.

Task: default

Action 1 — requestParamCapture (requestParamCapture)

Action Details:

  • Parameters:
    NameDescriptionTypeMandatory
    ContainerThis is the container for me to researchstringtrue

Action1

Action 2 — Call LLM (callGenAIService)

Action Details:

  • Instruction:

    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.
    
    <Instructions>
    * 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.
    <Instructions>
    
    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
    <Container>
    {:Container}
    </Container>
    
    
    <ChatHistory>
    {:CurrentChat}
    </ChatHistory>
    
  • User Input: {:UserInput}

  • Parameters:

    • agents:
      • ext-Helper-OlpnSearch
      • ext-MO26-Helper-OlpnCancel
    • description: Call tools to answer question/perform action on TOTE_OLPN.
  • outputVariableName: outputData

Action2

Task: greetingTask

Action 1 — addTextResponse (addTextResponse)

Action Details:

  • textResponse: Hello, I am assistant that accepts a tote or olpn and can provide information about it.

Greeting

7 - Agent Order Metrics

Step-by-step technical guide for Agent Order Metrics

Login

  1. Go to the Web URL - https://mesop3.omni.manh.com (Unified Commerce)
  2. Enter your assigned User and Password.
  3. If you are unable to login, ask for help from Manhattan Team.

Initialize Agent

  1. Launch Agent Foundry from the Hamburger Menu.
  2. Click on “Create Agent from Scratch”.
  3. Go to Agent Configuration by clicking the Gear icon, next to the Agent Name.
  4. Change the AgentId and Agent Name as you see fit.
  5. Scroll down to set the parameters “Conversational” and “Allow Attachment from Chat” flag as provided in the Agent Details section.

Important Note

  • To add a new Task, click the “default” task dropdown, then click on Add New.
  • To add an Action, click on the + sign on the Initial Screen or at the end of the current action on the screen.

Agent Details

FieldValue
NameMO26_Agent_OrderMetrics
DescriptionThis agent provides a natural language interface to understand metrics.
Conversationaltrue
allowAttachmentFromChatfalse

Agent

Actions

  • Add an action by clicking plus.

Task: default

Action 1: Plan & Execute (callGenAIService)

Action Description: Plan & Execute - callGenAIService

Action Details:

  • Instruction:
    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'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'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.
    
  • User Input: {:currentchat}
  • Parameters:
    • agents:
      • ext-MO26-Helper-OrderDataAnalyzer
      • ext-MO26-Helper-OrderSearch

Action

Task: greetingTask

Action 1: addTextResponse (addTextResponse)

Action Description: addTextResponse - addTextResponse

Action Details:

  • textResponse: Hello, I am an assistant that can give answers to order related queries.

Greeting

8 - Agent Slotting Assistant

Step-by-step technical guide for Agent Slotting Assistant

Login

  1. Go to the Web URLs:
    1. https://mesop6.sce.manh.com (Supply Chain)
  2. Enter your assigned User and Password.
  3. If you are unable to login, ask for help from Manhattan Team.

Initialize Agent

  1. Launch Agent Foundry from the Hamburger Menu.
  2. Click on “Create Agent from Scratch”.
  3. Go to Agent Configuration by clicking the Gear icon, next to the Agent Name.
  4. Change the AgentId and Agent Name as you see fit.
  5. Scroll down to set the parameters Conversational and Allow Attachment from Chat flags as provided in the Agent Details section.

Important Note

  • To add a new Task, click the “default” task dropdown, then click on Add New.
  • To add an Action click on the + sign on the Initial Screen or at the end of the current action on the screen.

Agent Details

FieldValue
NameMO26_Agent_SlottingAssist
DescriptionThis is an agent that supports uploading a csv of items and returns eligible locations
Conversationaltrue
allowAttachmentFromChattrue

Agent

Actions

  • Add an action by clicking plus.

Task Name: default

Action 1 — ifThen (ifThen)

Action Description: Conditional branch that checks whether location recommendations have already been provided.

Action Details:

  • Condition: LocationRec.DataResponse.Provided==1

Action1

actionsWhenTrue
Action 1.T.1 — addStreamResponse (addStreamResponse)
  • Text Response: Thinking about locations

Action1

Action 1.T.2 — Plan & Execute (callGenAIService)
  • Instruction:
    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.
    
    {
      "Data": [
        {
          "LocationId": "1A30J01A03",
          "StorageUomId": "LPN",
          "ItemId": 226019
        },
        {
          "LocationId": "1A30J01A03",
          "StorageUomId": "LPN",
          "ItemId": 226019
        },
        {
          "LocationId": "1A30J01A03",
          "StorageUomId": "LPN",
          "ItemId": 226019
        }
      ]
    }
    
  • User Input: {:UserInput}
  • Parameters:
    • agents: ext-MO26-Helper-LIACreation

Action1-T-2

actionsWhenFalse
Action 1.F.1 — ext-MO26-Helper-CSVUpload (callAgent)
  • Parameters:
    • CSV: object::Attachment_From_Chat
  • outputVariableName: AgentOutput

Action1-F-1

Action 1.F.2 — ext-MO26_Helper_ItemSearch (callAgent)
  • Parameters:
    • ItemList: object::AgentOutput.DataResponse.ItemList
  • outputVariableName: ItemInformation

Action1-F-2

Action 1.F.3 — ext-MO26-Helper-LocationRecommendation (callAgent)
  • Parameters:
    • ItemInformation: object::ItemInformation
  • outputVariableName: LocationRec

Action1-F-3

Action 1.F.4 — addTextResponse (addTextResponse)
  • Text Response: {:LocationRec}

Action1-F-4

Task Name: greetingTask

Action 1 — addTextResponse (addTextResponse)

Action Description: Initial greeting displayed to the user.

Action Details:

  • Text Response: 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.

Greeting

9 - Agent ZPL Creator

Step-by-step technical guide for Agent ZPL Creator

Login

  1. Go to the Web URL:
    1. https://mesop6.sce.manh.com (Supply Chain)
  2. Enter your assigned User and Password.
  3. If you are unable to login, ask for help from Manhattan Team.

Initialize Agent

  1. Launch Agent Foundry from the Hamburger Menu.
  2. Click on “Create Agent from Scratch”.
  3. Go to Agent Configuration by clicking the Gear icon, next to the Agent Name.
  4. Specify the AgentId and Agent Name as you see fit.
  5. Scroll down to set the parameters “Conversational” and “Allow Attachment from Chat” flag as provided in the Agent Details section.

Agent Details

FieldValue
NameMO26_Agent_ZPLCreator
DescriptionThis is an agent that supports uploading an image of a label and returns a zpl template.
Conversationaltrue
allowAttachmentFromChattrue

Screenshot

Actions

  • Add an action by clicking plus.

To add an Action click on the + sign on the Initial UI or at end of the current action on the screen.

Task: default

Action 1 — ifThen (ifThen)

Condition:

AgentOutput.DataResponse.ZPLGenerated==1

Screenshot

actionsWhenTrue
Action 1.T.1 — addStreamResponse (addStreamResponse)
  • User Input: Thinking about printers

Screenshot

Action 1.T.2 — Reply with AI (callGenAIService)
  • Instruction:
    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.
    

Screenshot

actionsWhenFalse
Action 1.F.1 — ext-MO26-Helper-LabelPNGToZPL (callAgent)
  • Parameters:
    • agents: ext-MO26-Helper-LabelPNGToZPL
    • LabelDetails: object::Attachment_From_Chat
  • outputVariableName: AgentOutput

Screenshot

Action 1.F.2 — addTextResponse (addTextResponse)
  • textResponse: {:AgentOutput.DataResponse.Template}

Screenshot

Task: greetingTask

Action 1 — addTextResponse (addTextResponse)

  • textResponse: Hello! I am an agent that can convert pictures of labels into ZPL. Upload an image and I will give you a ZPL template.

Screenshot