<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0d0hyb0" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.45.0" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.9.0">
  <bpmn:process id="GatherOrderProcessDataAgentProcess" name="Gather Order Process Data" isExecutable="true">
    <bpmn:startEvent id="StartEvent_1" name="Bestellung eingegangen">
      <bpmn:outgoing>Flow_07hbhwn</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_07hbhwn" sourceRef="StartEvent_1" targetRef="Activity_0iiaaxo" />
    <bpmn:endEvent id="Event_0v277qx" name="Bestellungs-Details ermittelt und strukturiert">
      <bpmn:incoming>Flow_1u7h7vl</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_1u7h7vl" sourceRef="AIASP_GatherStructuredOrderData" targetRef="Event_0v277qx" />
    <bpmn:adHocSubProcess id="AIASP_GatherStructuredOrderData" name="Strukturierte Bestellungsdetails ermitteln" zeebe:modelerTemplate="io.camunda.connectors.agenticai.aiagent.jobworker.v1" zeebe:modelerTemplateVersion="5" zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiNBNTZFRkYiLz4KPG1hc2sgaWQ9InBhdGgtMi1vdXRzaWRlLTFfMTg1XzYiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQiIHk9IjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iYmxhY2siPgo8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iNCIgeT0iNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC4wMTA1IDEyLjA5ODdDMTguNDkgMTAuNTg5NCAxNy4xNTk0IDguMTA4MTQgMTYuMTc5OSA2LjAxMTAzQzE2LjE1MiA2LjAwNDUxIDE2LjExNzYgNiAxNi4wNzk0IDZDMTYuMDQxMSA2IDE2LjAwNjYgNi4wMDQ1MSAxNS45Nzg4IDYuMDExMDRDMTQuOTk5NCA4LjEwODE0IDEzLjY2OTcgMTAuNTg4OSAxMi4xNDgxIDEyLjA5ODFDMTAuNjI2OSAxMy42MDcxIDguMTI1NjggMTQuOTI2NCA2LjAxMTU3IDE1Ljg5ODFDNi4wMDQ3NCAxNS45MjYxIDYgMTUuOTYxMSA2IDE2QzYgMTYuMDM4NyA2LjAwNDY4IDE2LjA3MzYgNi4wMTE0NCAxNi4xMDE0QzguMTI1MTkgMTcuMDcyOSAxMC42MjYyIDE4LjM5MTkgMTIuMTQ3NyAxOS45MDE2QzEzLjY2OTcgMjEuNDEwNyAxNC45OTk2IDIzLjg5MiAxNS45NzkxIDI1Ljk4OUMxNi4wMDY4IDI1Ljk5NTYgMTYuMDQxMSAyNiAxNi4wNzkzIDI2QzE2LjExNzUgMjYgMTYuMTUxOSAyNS45OTU0IDE2LjE3OTYgMjUuOTg5QzE3LjE1OTEgMjMuODkyIDE4LjQ4ODggMjEuNDExIDIwLjAwOTkgMTkuOTAyMU0yMC4wMDk5IDE5LjkwMjFDMjEuNTI1MyAxOC4zOTg3IDIzLjk0NjUgMTcuMDY2OSAyNS45OTE1IDE2LjA4MjRDMjUuOTk2NSAxNi4wNTkzIDI2IDE2LjAzMSAyNiAxNS45OTk3QzI2IDE1Ljk2ODQgMjUuOTk2NSAxNS45NDAzIDI1Ljk5MTUgMTUuOTE3MUMyMy45NDc0IDE0LjkzMjcgMjEuNTI1OSAxMy42MDEgMjAuMDEwNSAxMi4wOTg3IiBzdHJva2U9IiM0OTFEOEIiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgbWFzaz0idXJsKCNwYXRoLTItb3V0c2lkZS0xXzE4NV82KSIvPgo8L3N2Zz4K">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="io.camunda.agenticai:aiagent-job-worker:1" retries="3" />
        <zeebe:ioMapping>
          <zeebe:input source="openai" target="provider.type" />
          <zeebe:input source="{{secrets.OpenAIApiKey}}" target="provider.openai.authentication.apiKey" />
          <zeebe:input source="gpt-4o" target="provider.openai.model.model" />
          <zeebe:input source="=2500" target="provider.openai.model.parameters.maxCompletionTokens" />
          <zeebe:input source="=0.4" target="provider.openai.model.parameters.temperature" />
          <zeebe:input source="=&#34;You are a Bakery Shop Support Agent named &#39;Nucamda Beeze&#39; for the CIMTBack Bakery.&#10;&#10;The bakery has shops at the following locations: &#34; + string join(locations, &#34;, &#34;)  + &#34;&#10;&#10;ROLE:&#10;Prepare the data for a bakery order, using tools to complete it where necessary.&#10;You need to determine:&#10;- location of the shop&#10;- phone-number of the customer&#10;- name of the customer&#10;- ordered bakery product&#10;- topping for the bakery product&#10;- filling for the bakery product&#10;- extras for the order&#10;- number of ordered bakery products&#10;Every order consists of exactly one combination of these data-fields.&#10;&#10;CORE RULE:&#10;You MUST respond with exactly ONE tool call per turn.&#10;Do NOT output any text outside the tool call.&#10;Do NOT stop until the data is complete AND plausible. Use tools to complete it if necessary.&#10;&#10;CONSTRAINTS:&#10;- Keep &#60;thinking&#62; under 1 short sentence (no paragraphs)&#10;- No explanations beyond minimal reasoning&#10;- Max total response size: 1200 characters&#10;- No markdown, no extra text&#10;&#10;TOOL RULES:&#10;- Use the tools for retreiving lists of product options (bakery product/toppings/extras/fillings) to make sure, the ordered objects exists. Adjust the spelling to the spelling from those lists if necessary.&#10;- If data regarding product details or metadata (e.g. customer name, phone-number) is incomplete or includes unavailable locations/products, use the appropriate tool to ask the customer for clarification and information, offering available product options in friendly and polite fashion. Offer only product options that exist and ask for ALL information that the customer needs to provide.&#10;- As soon as ALL information has been gathered (none of the fields are optional), us the tool for summing up the order.&#10;- Never invent tools&#10;&#10;DATA &#38; COMPLIANCE:&#10;- Do not generate or guess PII (account numbers, emails, etc.)&#10;- Customer-facing text must exist ONLY inside the tool payload&#34;" target="data.systemPrompt.prompt" />
          <zeebe:input source="=&#34;Customer with mail address &#34; + customerMail + &#34; placed this order: &#34; + customerMailContent" target="data.userPrompt.prompt" />
          <zeebe:input target="agentContext" />
          <zeebe:input source="in-process" target="data.memory.storage.type" />
          <zeebe:input source="=20" target="data.memory.contextWindowSize" />
          <zeebe:input source="=10" target="data.limits.maxModelCalls" />
          <zeebe:input source="WAIT_FOR_TOOL_CALL_RESULTS" target="data.events.behavior" />
          <zeebe:input source="text" target="data.response.format.type" />
          <zeebe:input source="=false" target="data.response.format.parseJson" />
          <zeebe:input source="=false" target="data.response.includeAssistantMessage" />
          <zeebe:input source="=false" target="data.response.includeAgentContext" />
          <zeebe:input target="agent" />
          <zeebe:output source="=agent" target="agent" />
        </zeebe:ioMapping>
        <zeebe:taskHeaders>
          <zeebe:header key="elementTemplateVersion" value="5" />
          <zeebe:header key="elementTemplateId" value="io.camunda.connectors.agenticai.aiagent.jobworker.v1" />
          <zeebe:header key="retryBackoff" value="PT0S" />
        </zeebe:taskHeaders>
        <zeebe:adHoc outputCollection="toolCallResults" outputElement="={&#10;  id: toolCall._meta.id,&#10;  name: toolCall._meta.name,&#10;  content: toolCallResult&#10;}" />
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_0uvlzr4</bpmn:incoming>
      <bpmn:outgoing>Flow_1u7h7vl</bpmn:outgoing>
      <bpmn:businessRuleTask id="BRT_DetermineAvailableBakeryProducts" name="Verfügbare Produkte ermitteln">
        <bpmn:extensionElements>
          <zeebe:calledDecision decisionId="bakeryProducts" resultVariable="availableBakeryProducts" />
          <zeebe:ioMapping>
            <zeebe:input source="=location" target="location" />
            <zeebe:output source="=availableBakeryProducts" target="availableBakeryProducts" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>Flow_1wwjscb</bpmn:incoming>
        <bpmn:outgoing>Flow_0gtrb9b</bpmn:outgoing>
      </bpmn:businessRuleTask>
      <bpmn:businessRuleTask id="BRT_DetermineAvailableToppings" name="Verfügbare Toppings ermitteln">
        <bpmn:documentation>This tool MUST be used whenever a list of all available toppings is required, be it for informing a customer about it or for determining if an ordered topping is available at a given location. It may only be used if the location of the shop is known and MUST be used if the location of the shop changes.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:calledDecision decisionId="toppings" resultVariable="availableToppings" />
          <zeebe:ioMapping>
            <zeebe:input source="=location" target="location" />
            <zeebe:output source="=availableToppings" target="availableToppings" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>Flow_0gtrb9b</bpmn:incoming>
        <bpmn:outgoing>Flow_0k6lvy5</bpmn:outgoing>
      </bpmn:businessRuleTask>
      <bpmn:businessRuleTask id="BRT_DetermineAvailableFillings" name="Verfügbare Füllungen ermitteln">
        <bpmn:documentation>This tool MUST be used whenever a list of all available fillings is required, be it for informing a customer about it or for determining if an ordered filling is available at a given location. It may only be used if the location of the shop is known and MUST be used if the location of the shop changes.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:calledDecision decisionId="fillings" resultVariable="availableFillings" />
          <zeebe:ioMapping>
            <zeebe:input source="=location" target="location" />
            <zeebe:output source="=availableFillings" target="availableFillings" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>Flow_09yasut</bpmn:incoming>
        <bpmn:outgoing>Flow_1rzzeof</bpmn:outgoing>
      </bpmn:businessRuleTask>
      <bpmn:businessRuleTask id="BRT_DetermineAvailableExtras" name="Verfügbare Extras ermitteln">
        <bpmn:documentation>This tool MUST be used whenever a list of all available extras is required, be it for informing a customer about it or for determining if an ordered extras is available at a given location. It may only be used if the location of the shop is known and MUST be used if the location of the shop changes.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:calledDecision decisionId="extras" resultVariable="availableExtras" />
          <zeebe:ioMapping>
            <zeebe:input source="=location" target="location" />
            <zeebe:output source="=availableExtras" target="availableExtras" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>Flow_0k6lvy5</bpmn:incoming>
        <bpmn:outgoing>Flow_09yasut</bpmn:outgoing>
      </bpmn:businessRuleTask>
      <bpmn:serviceTask id="ST_RequestMoreInformation" name="Kunden kontaktieren" zeebe:modelerTemplate="SendMailTemplate" zeebe:modelerTemplateVersion="8" zeebe:modelerTemplateIcon="data:image/svg+xml;utf8,%3Csvg xmlns=&#39;http://www.w3.org/2000/svg&#39; height=&#39;16&#39; width=&#39;16&#39; viewBox=&#39;-274.66275 -425.834 2380.4105 2555.004&#39;%3E%3Cpath d=&#39;M1831.083 894.25a40.879 40.879 0 00-19.503-35.131h-.213l-.767-.426-634.492-375.585a86.175 86.175 0 00-8.517-5.067 85.17 85.17 0 00-78.098 0 86.37 86.37 0 00-8.517 5.067l-634.49 375.585-.766.426c-19.392 12.059-25.337 37.556-13.278 56.948a41.346 41.346 0 0014.257 13.868l634.492 375.585a95.617 95.617 0 008.517 5.068 85.17 85.17 0 0078.098 0 95.52 95.52 0 008.517-5.068l634.492-375.585a40.84 40.84 0 0020.268-35.685z&#39; fill=&#39;%230A2767&#39;/%3E%3Cpath d=&#39;M520.453 643.477h416.38v381.674h-416.38zM1745.917 255.5V80.908c1-43.652-33.552-79.862-77.203-80.908H588.204C544.552 1.046 510 37.256 511 80.908V255.5l638.75 170.333z&#39; fill=&#39;%230364B8&#39;/%3E%3Cpath d=&#39;M511 255.5h425.833v383.25H511z&#39; fill=&#39;%230078D4&#39;/%3E%3Cpath d=&#39;M1362.667 255.5H936.833v383.25L1362.667 1022h383.25V638.75z&#39; fill=&#39;%2328A8EA&#39;/%3E%3Cpath d=&#39;M936.833 638.75h425.833V1022H936.833z&#39; fill=&#39;%230078D4&#39;/%3E%3Cpath d=&#39;M936.833 1022h425.833v383.25H936.833z&#39; fill=&#39;%230364B8&#39;/%3E%3Cpath d=&#39;M520.453 1025.151h416.38v346.969h-416.38z&#39; fill=&#39;%2314447D&#39;/%3E%3Cpath d=&#39;M1362.667 1022h383.25v383.25h-383.25z&#39; fill=&#39;%230078D4&#39;/%3E%3ClinearGradient gradientTransform=&#39;matrix(1 0 0 -1 0 1705.333)&#39; y2=&#39;1.998&#39; x2=&#39;1128.458&#39; y1=&#39;811.083&#39; x1=&#39;1128.458&#39; gradientUnits=&#39;userSpaceOnUse&#39; id=&#39;a&#39;%3E%3Cstop offset=&#39;0&#39; stop-color=&#39;%2335b8f1&#39;/%3E%3Cstop offset=&#39;1&#39; stop-color=&#39;%2328a8ea&#39;/%3E%3C/linearGradient%3E%3Cpath d=&#39;M1811.58 927.593l-.809.426-634.492 356.848c-2.768 1.703-5.578 3.321-8.517 4.769a88.437 88.437 0 01-34.407 8.517l-34.663-20.27a86.706 86.706 0 01-8.517-4.897L447.167 906.003h-.298l-21.036-11.753v722.384c.328 48.196 39.653 87.006 87.849 86.7h1230.914c.724 0 1.363-.341 2.129-.341a107.79 107.79 0 0029.808-6.217 86.066 86.066 0 0011.966-6.217c2.853-1.618 7.75-5.152 7.75-5.152a85.974 85.974 0 0034.833-68.772V894.25a38.323 38.323 0 01-19.502 33.343z&#39; fill=&#39;url(%23a)&#39;/%3E%3Cpath d=&#39;M1797.017 891.397v44.287l-663.448 456.791-686.87-486.174a.426.426 0 00-.426-.426l-63.023-37.899v-31.938l25.976-.426 54.932 31.512 1.277.426 4.684 2.981s645.563 368.346 647.267 369.197l24.698 14.478c2.129-.852 4.258-1.703 6.813-2.555 1.278-.852 640.879-360.681 640.879-360.681z&#39; fill=&#39;%230A2767&#39; opacity=&#39;.5&#39;/%3E%3Cpath d=&#39;M1811.58 927.593l-.809.468-634.492 356.848c-2.768 1.703-5.578 3.321-8.517 4.769a88.96 88.96 0 01-78.098 0 96.578 96.578 0 01-8.517-4.769l-634.49-356.848-.766-.468a38.326 38.326 0 01-20.057-33.343v722.384c.305 48.188 39.616 87.004 87.803 86.7h1229.64c48.188.307 87.5-38.509 87.807-86.696 0-.001 0 0 0 0V894.25a38.33 38.33 0 01-19.504 33.343z&#39; fill=&#39;%231490DF&#39;/%3E%3Cpath d=&#39;M1185.52 1279.629l-9.496 5.323a92.806 92.806 0 01-8.517 4.812 88.173 88.173 0 01-33.47 8.857l241.405 285.479 421.107 101.476a86.785 86.785 0 0026.7-33.343z&#39; opacity=&#39;.1&#39;/%3E%3Cpath d=&#39;M1228.529 1255.442l-52.505 29.51a92.806 92.806 0 01-8.517 4.812 88.173 88.173 0 01-33.47 8.857l113.101 311.838 549.538 74.989a86.104 86.104 0 0034.407-68.815v-9.326z&#39; opacity=&#39;.05&#39;/%3E%3Cpath d=&#39;M514.833 1703.333h1228.316a88.316 88.316 0 0052.59-17.033l-697.089-408.331a86.706 86.706 0 01-8.517-4.897L447.125 906.088h-.298l-20.993-11.838v719.914c-.048 49.2 39.798 89.122 88.999 89.169-.001 0-.001 0 0 0z&#39; fill=&#39;%2328A8EA&#39;/%3E%3Cpath d=&#39;M1022 418.722v908.303c-.076 31.846-19.44 60.471-48.971 72.392a73.382 73.382 0 01-28.957 5.962H425.833V383.25H511v-42.583h433.073c43.019.163 77.834 35.035 77.927 78.055z&#39; opacity=&#39;.1&#39;/%3E%3Cpath d=&#39;M979.417 461.305v908.302a69.36 69.36 0 01-6.388 29.808c-11.826 29.149-40.083 48.273-71.54 48.417H425.833V383.25h475.656a71.493 71.493 0 0135.344 8.943c26.104 13.151 42.574 39.883 42.584 69.112z&#39; opacity=&#39;.2&#39;/%3E%3Cpath d=&#39;M979.417 461.305v823.136c-.208 43-34.928 77.853-77.927 78.225H425.833V383.25h475.656a71.493 71.493 0 0135.344 8.943c26.104 13.151 42.574 39.883 42.584 69.112z&#39; opacity=&#39;.2&#39;/%3E%3Cpath d=&#39;M936.833 461.305v823.136c-.046 43.067-34.861 78.015-77.927 78.225H425.833V383.25h433.072c43.062.023 77.951 34.951 77.927 78.013a.589.589 0 01.001.042z&#39; opacity=&#39;.2&#39;/%3E%3ClinearGradient gradientTransform=&#39;matrix(1 0 0 -1 0 1705.333)&#39; y2=&#39;324.259&#39; x2=&#39;774.086&#39; y1=&#39;1383.074&#39; x1=&#39;162.747&#39; gradientUnits=&#39;userSpaceOnUse&#39; id=&#39;b&#39;%3E%3Cstop offset=&#39;0&#39; stop-color=&#39;%231784d9&#39;/%3E%3Cstop offset=&#39;.5&#39; stop-color=&#39;%23107ad5&#39;/%3E%3Cstop offset=&#39;1&#39; stop-color=&#39;%230a63c9&#39;/%3E%3C/linearGradient%3E%3Cpath d=&#39;M78.055 383.25h780.723c43.109 0 78.055 34.947 78.055 78.055v780.723c0 43.109-34.946 78.055-78.055 78.055H78.055c-43.109 0-78.055-34.947-78.055-78.055V461.305c0-43.108 34.947-78.055 78.055-78.055z&#39; fill=&#39;url(%23b)&#39;/%3E%3Cpath d=&#39;M243.96 710.631a227.05 227.05 0 0189.17-98.495 269.56 269.56 0 01141.675-35.515 250.91 250.91 0 01131.114 33.683 225.014 225.014 0 0186.742 94.109 303.751 303.751 0 0130.405 138.396 320.567 320.567 0 01-31.299 144.783 230.37 230.37 0 01-89.425 97.388 260.864 260.864 0 01-136.011 34.578 256.355 256.355 0 01-134.01-34.067 228.497 228.497 0 01-87.892-94.28 296.507 296.507 0 01-30.745-136.735 329.29 329.29 0 0130.276-143.845zm95.046 231.227a147.386 147.386 0 0050.163 64.812 131.028 131.028 0 0078.353 23.591 137.244 137.244 0 0083.634-24.358 141.156 141.156 0 0048.715-64.812 251.594 251.594 0 0015.543-90.404 275.198 275.198 0 00-14.649-91.554 144.775 144.775 0 00-47.182-67.537 129.58 129.58 0 00-82.91-25.55 135.202 135.202 0 00-80.184 23.804 148.626 148.626 0 00-51.1 65.365 259.759 259.759 0 00-.341 186.728z&#39; fill=&#39;%23FFF&#39;/%3E%3Cpath d=&#39;M1362.667 255.5h383.25v383.25h-383.25z&#39; fill=&#39;%2350D9FF&#39;/%3E%3C/svg%3E">
        <bpmn:documentation>This tool MUST be used whenever the order data is incomplete or inconsistent and additional information needs to be requested from the customer. If the location is unknown or a non-available location was given, this tool MUST be used first. If the location is known, the available products MUST be determined with other tools before using this one.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="io.camunda:http-json:1" retries="3" />
          <zeebe:ioMapping>
            <zeebe:input source="https://graph.microsoft.com/v1.0" target="baseUrl" />
            <zeebe:input source="users.user.sendMail" target="operationId" />
            <zeebe:input source="oauth-client-credentials-flow" target="authentication.type" />
            <zeebe:input source="=camunda.vars.env.MailClientOauthUrl" target="authentication.oauthTokenEndpoint" />
            <zeebe:input source="=camunda.vars.env.MailClientId" target="authentication.clientId" />
            <zeebe:input source="{{secrets.MailClientSecret}}" target="authentication.clientSecret" />
            <zeebe:input source="credentialsBody" target="authentication.clientAuthentication" />
            <zeebe:input source="https://graph.microsoft.com/.default" target="authentication.scopes" />
            <zeebe:input source="=camunda.vars.env.MailClientMailbox" target="user_id" />
            <zeebe:input source="=&#34;RE: &#34; + customerSubject" target="sendMail_subject" />
            <zeebe:input source="text" target="sendMail_body_content_type" />
            <zeebe:input source="=fromAi(toolCall.responseToCustomer, &#34;The well formatted email text with which you, Nucamda Beeze, politely ask the customer to supply missing information, giving them product options if necessary, but ONLY if the location of the shop is known. Includes a greeting line, bullet-points for product options and a signature, formatted with newlines as is common in a formal email. Does not contain markdown.&#34;)" target="sendMail_body_content" />
            <zeebe:input source="=mailMessageId" target="message_id" />
            <zeebe:input source="=[]" target="sendMail_attachments" />
            <zeebe:input source="=[customerMail]" target="sendMail_to_recipients" />
            <zeebe:input source="=[]" target="sendMail_cc_recipients" />
            <zeebe:input source="=if message_id != null then &#34;/users/&#34;+user_id+&#34;/messages/&#34;+message_id+&#34;/reply&#34; else &#34;/users/&#34;+user_id+&#34;/sendMail&#34;" target="operationPath" />
            <zeebe:input source="POST" target="method" />
            <zeebe:input source="={&#34;message&#34;:{&#34;subject&#34;:sendMail_subject,&#34;body&#34;:{&#34;contentType&#34;:sendMail_body_content_type,&#34;content&#34;:sendMail_body_content},&#34;toRecipients&#34;: for currentEmail in sendMail_to_recipients return {&#34;emailAddress&#34;:{&#34;address&#34;:currentEmail}},&#34;ccRecipients&#34;: if sendMail_cc_recipients != null then for currentEmailCC in sendMail_cc_recipients return {&#34;emailAddress&#34;:{&#34;address&#34;:currentEmailCC}} else null,&#34;attachments&#34;: if sendMail_attachments != null then for document in sendMail_attachments return {&#34;@odata.type&#34;:&#34;#microsoft.graph.fileAttachment&#34;,&#34;name&#34;:document.metadata.fileName,&#34;contentType&#34;:document.metadata.contentType,&#34;contentBytes&#34;:{&#34;camunda.function.type&#34;:&#34;base64&#34;,&#34;params&#34;:[document]}} else null},&#34;saveToSentItems&#34;:&#34;false&#34;}" target="body" />
            <zeebe:input source="= baseUrl + operationPath" target="url" />
          </zeebe:ioMapping>
          <zeebe:taskHeaders>
            <zeebe:header key="retryBackoff" value="PT0S" />
            <zeebe:header key="elementTemplateVersion" value="3" />
            <zeebe:header key="elementTemplateId" value="io.camunda.connectors.MSFT.O365.Mail.v1" />
          </zeebe:taskHeaders>
        </bpmn:extensionElements>
        <bpmn:outgoing>Flow_0pu94k2</bpmn:outgoing>
      </bpmn:serviceTask>
      <bpmn:sequenceFlow id="Flow_0pu94k2" sourceRef="ST_RequestMoreInformation" targetRef="RE_MoreInformationReceived" />
      <bpmn:intermediateCatchEvent id="RE_MoreInformationReceived" name="Kundenantwort erhalten" zeebe:modelerTemplate="ReceiveMailCatchEventConnector" zeebe:modelerTemplateVersion="2" zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgdmlld0JveD0nLTI3NC42NjI3NSAtNDI1LjgzNCAyMzgwLjQxMDUgMjU1NS4wMDQnPgogICAgPHBhdGggZD0nTTE4MzEuMDgzIDg5NC4yNWE0MC44NzkgNDAuODc5IDAgMDAtMTkuNTAzLTM1LjEzMWgtLjIxM2wtLjc2Ny0uNDI2LTYzNC40OTItMzc1LjU4NWE4Ni4xNzUgODYuMTc1IDAgMDAtOC41MTctNS4wNjcgODUuMTcgODUuMTcgMCAwMC03OC4wOTggMCA4Ni4zNyA4Ni4zNyAwIDAwLTguNTE3IDUuMDY3bC02MzQuNDkgMzc1LjU4NS0uNzY2LjQyNmMtMTkuMzkyIDEyLjA1OS0yNS4zMzcgMzcuNTU2LTEzLjI3OCA1Ni45NDhhNDEuMzQ2IDQxLjM0NiAwIDAwMTQuMjU3IDEzLjg2OGw2MzQuNDkyIDM3NS41ODVhOTUuNjE3IDk1LjYxNyAwIDAwOC41MTcgNS4wNjggODUuMTcgODUuMTcgMCAwMDc4LjA5OCAwIDk1LjUyIDk1LjUyIDAgMDA4LjUxNy01LjA2OGw2MzQuNDkyLTM3NS41ODVhNDAuODQgNDAuODQgMCAwMDIwLjI2OC0zNS42ODV6JyBmaWxsPScjMEEyNzY3Jy8+CiAgICA8cGF0aCBkPSdNNTIwLjQ1MyA2NDMuNDc3aDQxNi4zOHYzODEuNjc0aC00MTYuMzh6TTE3NDUuOTE3IDI1NS41VjgwLjkwOGMxLTQzLjY1Mi0zMy41NTItNzkuODYyLTc3LjIwMy04MC45MDhINTg4LjIwNEM1NDQuNTUyIDEuMDQ2IDUxMCAzNy4yNTYgNTExIDgwLjkwOFYyNTUuNWw2MzguNzUgMTcwLjMzM3onIGZpbGw9JyMwMzY0QjgnLz4KICAgIDxwYXRoIGQ9J001MTEgMjU1LjVoNDI1LjgzM3YzODMuMjVINTExeicgZmlsbD0nIzAwNzhENCcvPgogICAgPHBhdGggZD0nTTEzNjIuNjY3IDI1NS41SDkzNi44MzN2MzgzLjI1TDEzNjIuNjY3IDEwMjJoMzgzLjI1VjYzOC43NXonIGZpbGw9JyMyOEE4RUEnLz4KICAgIDxwYXRoIGQ9J005MzYuODMzIDYzOC43NWg0MjUuODMzVjEwMjJIOTM2LjgzM3onIGZpbGw9JyMwMDc4RDQnLz4KICAgIDxwYXRoIGQ9J005MzYuODMzIDEwMjJoNDI1LjgzM3YzODMuMjVIOTM2LjgzM3onIGZpbGw9JyMwMzY0QjgnLz4KICAgIDxwYXRoIGQ9J001MjAuNDUzIDEwMjUuMTUxaDQxNi4zOHYzNDYuOTY5aC00MTYuMzh6JyBmaWxsPScjMTQ0NDdEJy8+CiAgICA8cGF0aCBkPSdNMTM2Mi42NjcgMTAyMmgzODMuMjV2MzgzLjI1aC0zODMuMjV6JyBmaWxsPScjMDA3OEQ0Jy8+CiAgICA8bGluZWFyR3JhZGllbnQgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCgxIDAgMCAtMSAwIDE3MDUuMzMzKScgeTI9JzEuOTk4JyB4Mj0nMTEyOC40NTgnIHkxPSc4MTEuMDgzJyB4MT0nMTEyOC40NTgnIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyBpZD0nYSc+CiAgICAgICAgPHN0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPScjMzViOGYxJy8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPScjMjhhOGVhJy8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHBhdGggZD0nTTE4MTEuNTggOTI3LjU5M2wtLjgwOS40MjYtNjM0LjQ5MiAzNTYuODQ4Yy0yLjc2OCAxLjcwMy01LjU3OCAzLjMyMS04LjUxNyA0Ljc2OWE4OC40MzcgODguNDM3IDAgMDEtMzQuNDA3IDguNTE3bC0zNC42NjMtMjAuMjdhODYuNzA2IDg2LjcwNiAwIDAxLTguNTE3LTQuODk3TDQ0Ny4xNjcgOTA2LjAwM2gtLjI5OGwtMjEuMDM2LTExLjc1M3Y3MjIuMzg0Yy4zMjggNDguMTk2IDM5LjY1MyA4Ny4wMDYgODcuODQ5IDg2LjdoMTIzMC45MTRjLjcyNCAwIDEuMzYzLS4zNDEgMi4xMjktLjM0MWExMDcuNzkgMTA3Ljc5IDAgMDAyOS44MDgtNi4yMTcgODYuMDY2IDg2LjA2NiAwIDAwMTEuOTY2LTYuMjE3YzIuODUzLTEuNjE4IDcuNzUtNS4xNTIgNy43NS01LjE1MmE4NS45NzQgODUuOTc0IDAgMDAzNC44MzMtNjguNzcyVjg5NC4yNWEzOC4zMjMgMzguMzIzIDAgMDEtMTkuNTAyIDMzLjM0M3onIGZpbGw9J3VybCgjYSknLz4KICAgIDxwYXRoIGQ9J00xNzk3LjAxNyA4OTEuMzk3djQ0LjI4N2wtNjYzLjQ0OCA0NTYuNzkxLTY4Ni44Ny00ODYuMTc0YS40MjYuNDI2IDAgMDAtLjQyNi0uNDI2bC02My4wMjMtMzcuODk5di0zMS45MzhsMjUuOTc2LS40MjYgNTQuOTMyIDMxLjUxMiAxLjI3Ny40MjYgNC42ODQgMi45ODFzNjQ1LjU2MyAzNjguMzQ2IDY0Ny4yNjcgMzY5LjE5N2wyNC42OTggMTQuNDc4YzIuMTI5LS44NTIgNC4yNTgtMS43MDMgNi44MTMtMi41NTUgMS4yNzgtLjg1MiA2NDAuODc5LTM2MC42ODEgNjQwLjg3OS0zNjAuNjgxeicgZmlsbD0nIzBBMjc2Nycgb3BhY2l0eT0nLjUnLz4KICAgIDxwYXRoIGQ9J00xODExLjU4IDkyNy41OTNsLS44MDkuNDY4LTYzNC40OTIgMzU2Ljg0OGMtMi43NjggMS43MDMtNS41NzggMy4zMjEtOC41MTcgNC43NjlhODguOTYgODguOTYgMCAwMS03OC4wOTggMCA5Ni41NzggOTYuNTc4IDAgMDEtOC41MTctNC43NjlsLTYzNC40OS0zNTYuODQ4LS43NjYtLjQ2OGEzOC4zMjYgMzguMzI2IDAgMDEtMjAuMDU3LTMzLjM0M3Y3MjIuMzg0Yy4zMDUgNDguMTg4IDM5LjYxNiA4Ny4wMDQgODcuODAzIDg2LjdoMTIyOS42NGM0OC4xODguMzA3IDg3LjUtMzguNTA5IDg3LjgwNy04Ni42OTYgMC0uMDAxIDAgMCAwIDBWODk0LjI1YTM4LjMzIDM4LjMzIDAgMDEtMTkuNTA0IDMzLjM0M3onIGZpbGw9JyMxNDkwREYnLz4KICAgIDxwYXRoIGQ9J00xMTg1LjUyIDEyNzkuNjI5bC05LjQ5NiA1LjMyM2E5Mi44MDYgOTIuODA2IDAgMDEtOC41MTcgNC44MTIgODguMTczIDg4LjE3MyAwIDAxLTMzLjQ3IDguODU3bDI0MS40MDUgMjg1LjQ3OSA0MjEuMTA3IDEwMS40NzZhODYuNzg1IDg2Ljc4NSAwIDAwMjYuNy0zMy4zNDN6JyBvcGFjaXR5PScuMScvPgogICAgPHBhdGggZD0nTTEyMjguNTI5IDEyNTUuNDQybC01Mi41MDUgMjkuNTFhOTIuODA2IDkyLjgwNiAwIDAxLTguNTE3IDQuODEyIDg4LjE3MyA4OC4xNzMgMCAwMS0zMy40NyA4Ljg1N2wxMTMuMTAxIDMxMS44MzggNTQ5LjUzOCA3NC45ODlhODYuMTA0IDg2LjEwNCAwIDAwMzQuNDA3LTY4LjgxNXYtOS4zMjZ6JyBvcGFjaXR5PScuMDUnLz4KICAgIDxwYXRoIGQ9J001MTQuODMzIDE3MDMuMzMzaDEyMjguMzE2YTg4LjMxNiA4OC4zMTYgMCAwMDUyLjU5LTE3LjAzM2wtNjk3LjA4OS00MDguMzMxYTg2LjcwNiA4Ni43MDYgMCAwMS04LjUxNy00Ljg5N0w0NDcuMTI1IDkwNi4wODhoLS4yOThsLTIwLjk5My0xMS44Mzh2NzE5LjkxNGMtLjA0OCA0OS4yIDM5Ljc5OCA4OS4xMjIgODguOTk5IDg5LjE2OS0uMDAxIDAtLjAwMSAwIDAgMHonIGZpbGw9JyMyOEE4RUEnLz4KICAgIDxwYXRoIGQ9J00xMDIyIDQxOC43MjJ2OTA4LjMwM2MtLjA3NiAzMS44NDYtMTkuNDQgNjAuNDcxLTQ4Ljk3MSA3Mi4zOTJhNzMuMzgyIDczLjM4MiAwIDAxLTI4Ljk1NyA1Ljk2Mkg0MjUuODMzVjM4My4yNUg1MTF2LTQyLjU4M2g0MzMuMDczYzQzLjAxOS4xNjMgNzcuODM0IDM1LjAzNSA3Ny45MjcgNzguMDU1eicgb3BhY2l0eT0nLjEnLz4KICAgIDxwYXRoIGQ9J005NzkuNDE3IDQ2MS4zMDV2OTA4LjMwMmE2OS4zNiA2OS4zNiAwIDAxLTYuMzg4IDI5LjgwOGMtMTEuODI2IDI5LjE0OS00MC4wODMgNDguMjczLTcxLjU0IDQ4LjQxN0g0MjUuODMzVjM4My4yNWg0NzUuNjU2YTcxLjQ5MyA3MS40OTMgMCAwMTM1LjM0NCA4Ljk0M2MyNi4xMDQgMTMuMTUxIDQyLjU3NCAzOS44ODMgNDIuNTg0IDY5LjExMnonIG9wYWNpdHk9Jy4yJy8+CiAgICA8cGF0aCBkPSdNOTc5LjQxNyA0NjEuMzA1djgyMy4xMzZjLS4yMDggNDMtMzQuOTI4IDc3Ljg1My03Ny45MjcgNzguMjI1SDQyNS44MzNWMzgzLjI1aDQ3NS42NTZhNzEuNDkzIDcxLjQ5MyAwIDAxMzUuMzQ0IDguOTQzYzI2LjEwNCAxMy4xNTEgNDIuNTc0IDM5Ljg4MyA0Mi41ODQgNjkuMTEyeicgb3BhY2l0eT0nLjInLz4KICAgIDxwYXRoIGQ9J005MzYuODMzIDQ2MS4zMDV2ODIzLjEzNmMtLjA0NiA0My4wNjctMzQuODYxIDc4LjAxNS03Ny45MjcgNzguMjI1SDQyNS44MzNWMzgzLjI1aDQzMy4wNzJjNDMuMDYyLjAyMyA3Ny45NTEgMzQuOTUxIDc3LjkyNyA3OC4wMTNhLjU4OS41ODkgMCAwMS4wMDEuMDQyeicgb3BhY2l0eT0nLjInLz4KICAgIDxsaW5lYXJHcmFkaWVudCBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDEgMCAwIC0xIDAgMTcwNS4zMzMpJyB5Mj0nMzI0LjI1OScgeDI9Jzc3NC4wODYnIHkxPScxMzgzLjA3NCcgeDE9JzE2Mi43NDcnIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyBpZD0nYic+CiAgICAgICAgPHN0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPScjMTc4NGQ5Jy8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PScuNScgc3RvcC1jb2xvcj0nIzEwN2FkNScvPgogICAgICAgIDxzdG9wIG9mZnNldD0nMScgc3RvcC1jb2xvcj0nIzBhNjNjOScvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxwYXRoIGQ9J003OC4wNTUgMzgzLjI1aDc4MC43MjNjNDMuMTA5IDAgNzguMDU1IDM0Ljk0NyA3OC4wNTUgNzguMDU1djc4MC43MjNjMCA0My4xMDktMzQuOTQ2IDc4LjA1NS03OC4wNTUgNzguMDU1SDc4LjA1NWMtNDMuMTA5IDAtNzguMDU1LTM0Ljk0Ny03OC4wNTUtNzguMDU1VjQ2MS4zMDVjMC00My4xMDggMzQuOTQ3LTc4LjA1NSA3OC4wNTUtNzguMDU1eicgZmlsbD0ndXJsKCNiKScvPgogICAgPHBhdGggZD0nTTI0My45NiA3MTAuNjMxYTIyNy4wNSAyMjcuMDUgMCAwMTg5LjE3LTk4LjQ5NSAyNjkuNTYgMjY5LjU2IDAgMDExNDEuNjc1LTM1LjUxNSAyNTAuOTEgMjUwLjkxIDAgMDExMzEuMTE0IDMzLjY4MyAyMjUuMDE0IDIyNS4wMTQgMCAwMTg2Ljc0MiA5NC4xMDkgMzAzLjc1MSAzMDMuNzUxIDAgMDEzMC40MDUgMTM4LjM5NiAzMjAuNTY3IDMyMC41NjcgMCAwMS0zMS4yOTkgMTQ0Ljc4MyAyMzAuMzcgMjMwLjM3IDAgMDEtODkuNDI1IDk3LjM4OCAyNjAuODY0IDI2MC44NjQgMCAwMS0xMzYuMDExIDM0LjU3OCAyNTYuMzU1IDI1Ni4zNTUgMCAwMS0xMzQuMDEtMzQuMDY3IDIyOC40OTcgMjI4LjQ5NyAwIDAxLTg3Ljg5Mi05NC4yOCAyOTYuNTA3IDI5Ni41MDcgMCAwMS0zMC43NDUtMTM2LjczNSAzMjkuMjkgMzI5LjI5IDAgMDEzMC4yNzYtMTQzLjg0NXptOTUuMDQ2IDIzMS4yMjdhMTQ3LjM4NiAxNDcuMzg2IDAgMDA1MC4xNjMgNjQuODEyIDEzMS4wMjggMTMxLjAyOCAwIDAwNzguMzUzIDIzLjU5MSAxMzcuMjQ0IDEzNy4yNDQgMCAwMDgzLjYzNC0yNC4zNTggMTQxLjE1NiAxNDEuMTU2IDAgMDA0OC43MTUtNjQuODEyIDI1MS41OTQgMjUxLjU5NCAwIDAwMTUuNTQzLTkwLjQwNCAyNzUuMTk4IDI3NS4xOTggMCAwMC0xNC42NDktOTEuNTU0IDE0NC43NzUgMTQ0Ljc3NSAwIDAwLTQ3LjE4Mi02Ny41MzcgMTI5LjU4IDEyOS41OCAwIDAwLTgyLjkxLTI1LjU1IDEzNS4yMDIgMTM1LjIwMiAwIDAwLTgwLjE4NCAyMy44MDQgMTQ4LjYyNiAxNDguNjI2IDAgMDAtNTEuMSA2NS4zNjUgMjU5Ljc1OSAyNTkuNzU5IDAgMDAtLjM0MSAxODYuNzI4eicgZmlsbD0nI0ZGRicvPgogICAgPHBhdGggZD0nTTEzNjIuNjY3IDI1NS41aDM4My4yNXYzODMuMjVoLTM4My4yNXonIGZpbGw9JyM1MEQ5RkYnLz4KPC9zdmc+Cg==">
        <bpmn:extensionElements>
          <zeebe:properties>
            <zeebe:property name="inbound.type" value="io.camunda:connector-o365-email-inbound:1" />
            <zeebe:property name="authentication.type" value="clientCredentials" />
            <zeebe:property name="authentication.clientId" value="=camunda.vars.env.MailClientId" />
            <zeebe:property name="authentication.tenantId" value="=camunda.vars.env.MailClientTenant" />
            <zeebe:property name="authentication.clientSecret" value="{{secrets.MailClientSecret}}" />
            <zeebe:property name="pollingConfig.userId" value="=camunda.vars.env.MailClientMailbox" />
            <zeebe:property name="pollingConfig.folder.folderSpecification" value="byId" />
            <zeebe:property name="pollingConfig.folder.folderId" value="inbox" />
            <zeebe:property name="pollingConfig.pollingInterval" value="PT10S" />
            <zeebe:property name="pollingConfig.filterCriteria.filterSpecification" value="advanced" />
            <zeebe:property name="pollingConfig.filterCriteria.filterString" value="isRead eq false" />
            <zeebe:property name="operation.processingOperationDiscriminator" value="mark-read" />
            <zeebe:property name="correlationRequired" value="required" />
            <zeebe:property name="correlationKeyExpression" value="=conversationId" />
            <zeebe:property name="messageTtl" value="PT1S" />
            <zeebe:property name="resultVariable" value="toolCallResult" />
            <zeebe:property name="resultExpression" value="={&#10;  &#34;mailMessageId&#34;: response.id,&#10;  &#34;responseRaw&#34;: response.body&#10;}" />
          </zeebe:properties>
        </bpmn:extensionElements>
        <bpmn:incoming>Flow_0pu94k2</bpmn:incoming>
        <bpmn:outgoing>Flow_11uuaoc</bpmn:outgoing>
        <bpmn:messageEventDefinition id="MessageEventDefinition_17nm1lo" messageRef="Message_13lqv1o" />
      </bpmn:intermediateCatchEvent>
      <bpmn:sequenceFlow id="Flow_0gtrb9b" sourceRef="BRT_DetermineAvailableBakeryProducts" targetRef="BRT_DetermineAvailableToppings" />
      <bpmn:sequenceFlow id="Flow_0k6lvy5" sourceRef="BRT_DetermineAvailableToppings" targetRef="BRT_DetermineAvailableExtras" />
      <bpmn:sequenceFlow id="Flow_09yasut" sourceRef="BRT_DetermineAvailableExtras" targetRef="BRT_DetermineAvailableFillings" />
      <bpmn:sequenceFlow id="Flow_1wwjscb" sourceRef="Activity_1efuv81" targetRef="BRT_DetermineAvailableBakeryProducts" />
      <bpmn:intermediateThrowEvent id="Event_1t9dc43" name="Verfügbare Produkte ermittelt">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="={&#10;  &#34;availableFillings&#34; : availableFillings,&#10;  &#34;availableExtras&#34;: availableExtras,&#10;  &#34;availableBakeryProducts&#34;: availableBakeryProducts,&#10;  &#34;availableToppings&#34;: availableToppings&#10;}" target="toolCallResult" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>Flow_1rzzeof</bpmn:incoming>
      </bpmn:intermediateThrowEvent>
      <bpmn:sequenceFlow id="Flow_1rzzeof" sourceRef="BRT_DetermineAvailableFillings" targetRef="Event_1t9dc43" />
      <bpmn:scriptTask id="Activity_1efuv81" name="Filiale extrahieren">
        <bpmn:documentation>This tool MUST be used whenever a list of all available bakery products (including extras, toppings and fillings) for a given location is required, be it for informing a customer about it or for determining if an ordered product is available at a given location. It may only be used if the location of the shop is known and MUST be used if the location of the shop changes.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:script expression="=location" resultVariable="location" />
          <zeebe:ioMapping>
            <zeebe:input source="=fromAi(toolCall.location, &#34;The location (city) of the shop for which the order is intended&#34;)" target="location" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:outgoing>Flow_1wwjscb</bpmn:outgoing>
      </bpmn:scriptTask>
      <bpmn:serviceTask id="ST_CleanUpCustomerResponse" name="Kundenantwort bereiningen" zeebe:modelerTemplate="de.cimt.camunda.connectors.OpenAI.v1" zeebe:modelerTemplateVersion="9" zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjYwcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjYwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5PcGVuQUk8L3RpdGxlPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTIzOS4xODM5MTQsMTA2LjIwMjc4MyBDMjQ1LjA1NDMwNCw4OC41MjQyMDk2IDI0My4wMjIyOCw2OS4xNzMzODA1IDIzMy42MDc1OTksNTMuMDk5ODg2NCBDMjE5LjQ1MTY3OCwyOC40NTg4MDIxIDE5MC45OTk3MDMsMTUuNzgzNjEyOSAxNjMuMjEzMDA3LDIxLjczOTUwNSBDMTQ3LjU1NDA3Nyw0LjMyMTQ1ODgzIDEyMy43OTQ5MDksLTMuNDIzOTg1NTQgMTAwLjg3OTAxLDEuNDE4NzM4OTggQzc3Ljk2MzExMDUsNi4yNjE0NjM0OSA1OS4zNjkwMDkzLDIyLjk1NzI1MzYgNTIuMDk1OTYyMSw0NS4yMjE0MjE5IEMzMy44NDM2NDk0LDQ4Ljk2NDQ4NjcgMTguMDkwMTcyMSw2MC4zOTI3NDkgOC44NjY3MjUxMyw3Ni41ODE4MDMzIEMtNS40NDM0OTEsMTAxLjE4Mjk2MiAtMi4xOTU0NDQzMSwxMzIuMjE1MjU1IDE2Ljg5ODY2NjIsMTUzLjMyMDA5NCBDMTEuMDA2MDg2NSwxNzAuOTkwNjU2IDEzLjAxOTcyODMsMTkwLjM0Mzk5MSAyMi40MjM4MjMxLDIwNi40MjI5OTEgQzM2LjU5NzU1NTMsMjMxLjA3MjM0NCA2NS4wNjgwMzQyLDI0My43NDY1NjYgOTIuODY5NTczOCwyMzcuNzgzMzcyIEMxMDUuMjM1NjM5LDI1MS43MDgyNDkgMTIzLjAwMTExMywyNTkuNjMwOTQyIDE0MS42MjM5NjgsMjU5LjUyNjkyIEMxNzAuMTA1MzU5LDI1OS41NTIxNjkgMTk1LjMzNzYxMSwyNDEuMTY1NzE4IDIwNC4wMzc3NzcsMjE0LjA0NTY2MSBDMjIyLjI4NzM0LDIxMC4yOTYzNTYgMjM4LjAzODQ4OSwxOTguODY5NzgzIDI0Ny4yNjcwMTQsMTgyLjY4NTI4IEMyNjEuNDA0NDUzLDE1OC4xMjc1MTUgMjU4LjE0MjQ5NCwxMjcuMjYyNzc1IDIzOS4xODM5MTQsMTA2LjIwMjc4MyBMMjM5LjE4MzkxNCwxMDYuMjAyNzgzIFogTTE0MS42MjM5NjgsMjQyLjU0MTIwNyBDMTMwLjI1NTY4MiwyNDIuNTU5MTc3IDExOS4yNDM4NzYsMjM4LjU3NDY0MiAxMTAuNTE5MzgxLDIzMS4yODYxOTcgTDExMi4wNTQxNDYsMjMwLjQxNjQ5NiBMMTYzLjcyNDU5NSwyMDAuNTkwODgxIEMxNjYuMzQwNjQ4LDE5OS4wNTY0NDQgMTY3Ljk1NDMyMSwxOTYuMjU2ODE4IDE2Ny45NzA3ODEsMTkzLjIyNDAwNSBMMTY3Ljk3MDc4MSwxMjAuMzczNzg4IEwxODkuODE1NjE0LDEzMy4wMTAwMjYgQzE5MC4wMzQxMzIsMTMzLjEyMTQyMyAxOTAuMTg2MjM1LDEzMy4zMzA1NjQgMTkwLjIyNDg4NSwxMzMuNTcyNzc0IEwxOTAuMjI0ODg1LDE5My45NDAyMjkgQzE5MC4xNjg2MDMsMjIwLjc1ODQyNyAxNjguNDQyMTY2LDI0Mi40ODQ4NjQgMTQxLjYyMzk2OCwyNDIuNTQxMjA3IFogTTM3LjE1NzU3NDksMTk3LjkzMDYyIEMzMS40NTY0OTgsMTg4LjA4NjM1OSAyOS40MDk0ODE4LDE3Ni41NDY5ODQgMzEuMzc2NjIzNywxNjUuMzQyNDI2IEwzMi45MTEzODk1LDE2Ni4yNjMyODUgTDg0LjYzMjk5NzMsMTk2LjA4ODkwMSBDODcuMjM4OTM0OSwxOTcuNjE4MjA3IDkwLjQ2ODI3MTcsMTk3LjYxODIwNyA5My4wNzQyMDkzLDE5Ni4wODg5MDEgTDE1Ni4yNTU0MDIsMTU5LjY2Mzc5MyBMMTU2LjI1NTQwMiwxODQuODg1MTExIEMxNTYuMjQzNTU3LDE4NS4xNDk3NzEgMTU2LjExMTcyNSwxODUuMzk0NjAyIDE1NS44OTcyOSwxODUuNTUwMTc2IEwxMDMuNTYxNzc2LDIxNS43MzM5MDMgQzgwLjMwNTQ5NTMsMjI5LjEzMTYzMiA1MC41OTI0OTU0LDIyMS4xNjU0MzUgMzcuMTU3NTc0OSwxOTcuOTMwNjIgWiBNMjMuNTQ5MzE4MSw4NS4zODExMjczIEMyOS4yODk5ODYxLDc1LjQ3MzMwOTcgMzguMzUxMTkxMSw2Ny45MTYyNjQ4IDQ5LjEyODc0ODIsNjQuMDQ3ODgyNSBMNDkuMTI4NzQ4MiwxMjUuNDM4NTE1IEM0OS4wODkxNDkyLDEyOC40NTk0MjUgNTAuNjk2NTM4NiwxMzEuMjYyNTU2IDUzLjMyMzc3NDgsMTMyLjc1NDIzMiBMMTE2LjE5ODAxNCwxNjkuMDI1ODY0IEw5NC4zNTMxODA4LDE4MS42NjIxMDIgQzk0LjExMzIzMjUsMTgxLjc4OTQzNCA5My44MjU3NDYxLDE4MS43ODk0MzQgOTMuNTg1Nzk3OSwxODEuNjYyMTAyIEw0MS4zNTI2MDE1LDE1MS41Mjk1MzQgQzE4LjE0MTk0MjYsMTM4LjA3NjA5OCAxMC4xODE3NjgxLDEwOC4zODU1NjIgMjMuNTQ5MzE4MSw4NS4xMjUzMzMgTDIzLjU0OTMxODEsODUuMzgxMTI3MyBaIE0yMDMuMDE0NiwxMjcuMDc1NTk4IEwxMzkuOTM1NzI1LDkwLjQ0NTg1NDUgTDE2MS43Mjk0LDc3Ljg2MDc3NDggQzE2MS45NjkzNDgsNzcuNzMzNDQzNCAxNjIuMjU2ODM0LDc3LjczMzQ0MzQgMTYyLjQ5Njc4Myw3Ny44NjA3NzQ4IEwyMTQuNzI5OTc5LDEwOC4wNDQ1MDIgQzIzMS4wMzIzMjksMTE3LjQ1MTc0NyAyNDAuNDM3Mjk0LDEzNS40MjYxMDkgMjM4Ljg3MTUwNCwxNTQuMTgyNzM5IEMyMzcuMzA1NzE0LDE3Mi45MzkzNjggMjI1LjA1MDcxOSwxODkuMTA1NTcyIDIwNy40MTQyNjIsMTk1LjY3OTYzIEwyMDcuNDE0MjYyLDEzNC4yODg5OTggQzIwNy4zMjI1MjEsMTMxLjI3Njg2NyAyMDUuNjUwNjk3LDEyOC41MzU4NTMgMjAzLjAxNDYsMTI3LjA3NTU5OCBaIE0yMjQuNzU3MTE2LDk0LjM4NTA4NjcgTDIyMy4yMjIzNSw5My40NjQyMjcyIEwxNzEuNjAzMDYsNjMuMzgyODE3MyBDMTY4Ljk4MTI5Myw2MS44NDQzNzUxIDE2NS43MzI0NTYsNjEuODQ0Mzc1MSAxNjMuMTEwNjg5LDYzLjM4MjgxNzMgTDk5Ljk4MDY1NTQsOTkuODA3OTI1OSBMOTkuOTgwNjU1NCw3NC41ODY2MDc3IEM5OS45NTMzMDA0LDc0LjMyNTQwODggMTAwLjA3MTA5NSw3NC4wNzAxODY5IDEwMC4yODc2MDksNzMuOTIxNTQyNiBMMTUyLjUyMDgwNSw0My43ODg5NzM4IEMxNjguODYzMDk4LDM0LjM3NDM1MTggMTg5LjE3NDI1NiwzNS4yNTI5MDQzIDIwNC42NDI1NzksNDYuMDQzNDg0MSBDMjIwLjExMDkwMyw1Ni44MzQwNjM4IDIyNy45NDkyNjksNzUuNTkyMzk1OSAyMjQuNzU3MTE2LDk0LjE4MDQ1MTMgTDIyNC43NTcxMTYsOTQuMzg1MDg2NyBaIE04OC4wNjA2NDA5LDEzOS4wOTc5MzEgTDY2LjIxNTgwNzYsMTI2LjUxMjg1MSBDNjUuOTk1MDM5OSwxMjYuMzc5MDkxIDY1Ljg0NTA5NjUsMTI2LjE1NDE3NiA2NS44MDY1MzY3LDEyNS44OTg5NDUgTDY1LjgwNjUzNjcsNjUuNjg0OTY2IEM2NS44MzE0NDk1LDQ2LjgyODUzNjcgNzYuNzUwMDYwNSwyOS42ODQ2MDMyIDkzLjgyNzA4NTIsMjEuNjg4MzA1NSBDMTEwLjkwNDExLDEzLjY5MjAwNzkgMTMxLjA2MzgzMywxNi4yODM1NDYyIDE0NS41NjMyLDI4LjMzODk5OCBMMTQ0LjAyODQzNCwyOS4yMDg2OTg2IEw5Mi4zNTc5ODUyLDU5LjAzNDMxNDIgQzg5Ljc0MTkzMjcsNjAuNTY4NzUxMyA4OC4xMjgyNTk3LDYzLjM2ODM3NjcgODguMTExNzk5OCw2Ni40MDExOTAxIEw4OC4wNjA2NDA5LDEzOS4wOTc5MzEgWiBNOTkuOTI5NDk2NSwxMTMuNTE4NSBMMTI4LjA2Njg3LDk3LjMwMTE0MTcgTDE1Ni4yNTU0MDIsMTEzLjUxODUgTDE1Ni4yNTU0MDIsMTQ1Ljk1MzIxOCBMMTI4LjE2OTE4NywxNjIuMTcwNTc3IEw5OS45ODA2NTU0LDE0NS45NTMyMTggTDk5LjkyOTQ5NjUsMTEzLjUxODUgWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K">
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="io.camunda:http-json:1" />
          <zeebe:ioMapping>
            <zeebe:input source="bearer" target="authentication.type" />
            <zeebe:input source="{{secrets.OpenAIApiKey}}" target="authentication.token" />
            <zeebe:input source="=camunda.vars.env.OpenAiOrganisationId" target="internal_organization" />
            <zeebe:input source="=if is defined(internal_organization) and internal_organization != null then {&#34;Content-Type&#34;:&#34;application/json&#34;, &#34;OpenAI-Organization&#34;:internal_organization} else {&#34;Content-Type&#34;:&#34;application/json&#34;}" target="headers" />
            <zeebe:input source="chat" target="operation" />
            <zeebe:input source="post" target="method" />
            <zeebe:input source="https://api.openai.com/v1/chat/completions" target="url" />
            <zeebe:input source="gpt-4o" target="internal_model" />
            <zeebe:input source="0.1" target="internal_temperature" />
            <zeebe:input source="=&#34;You are an email preprocessor.&#10;&#10;Your task is to extract ONLY the relevant user-written message from an email body.&#10;&#10;Strictly remove:&#10;- Signatures (names, companies, phone numbers, emails)&#10;- Legal disclaimers&#10;- Addresses and contact details&#10;- Links and URLs&#10;- Image references (e.g. [cid:...], &#60;...&#62;, base64, logos)&#10;- Social media references&#10;- Repeated whitespace or formatting artifacts&#10;&#10;Keep ONLY:&#10;- The actual message written by the sender&#10;- The original wording and language&#10;- Line breaks if they structure the message&#10;&#10;Important rules:&#10;- DO NOT summarize or rephrase&#10;- DO NOT add any information&#10;- DO NOT translate&#10;- DO NOT explain anything&#10;- If unsure, prefer removing content rather than keeping noise&#10;- Output ONLY the cleaned message text&#10;&#10;---&#10;&#10;EMAIL BODY:&#10;&#10;&#34; + responseRaw" target="internal_prompt" />
            <zeebe:input source="1" target="internal_choices" />
            <zeebe:input source="=append(concatenate(if is defined(internal_systemMessage) then [{&#34;role&#34;: &#34;system&#34;, &#34;content&#34;: internal_systemMessage}] else [], if is defined(internal_chatHistory) then internal_chatHistory else []), {&#34;role&#34;: &#34;user&#34;, &#34;content&#34;: internal_prompt})" target="internal_messages" />
            <zeebe:input source="={&#34;model&#34;: if is defined(internal_custom_model) then internal_custom_model else internal_model, &#34;messages&#34;: internal_messages, &#34;n&#34;: number(internal_choices), &#34;temperature&#34;: number(internal_temperature)}" target="body" />
            <zeebe:input source="30" target="connectionTimeoutInSeconds" />
          </zeebe:ioMapping>
          <zeebe:taskHeaders>
            <zeebe:header key="resultExpression" value="={&#10;  toolCallResult: response.body.choices[1].message.content&#10;}" />
            <zeebe:header key="elementTemplateVersion" value="6" />
            <zeebe:header key="elementTemplateId" value="io.camunda.connectors.OpenAI.v1" />
          </zeebe:taskHeaders>
        </bpmn:extensionElements>
        <bpmn:incoming>Flow_11uuaoc</bpmn:incoming>
      </bpmn:serviceTask>
      <bpmn:sequenceFlow id="Flow_11uuaoc" sourceRef="RE_MoreInformationReceived" targetRef="ST_CleanUpCustomerResponse" />
      <bpmn:scriptTask id="ScrT_BestellungZusammenfassen" name="Bestellung zusammen fassen">
        <bpmn:documentation>This Tool MUST be called when all the information has been gathered, so the order can be summed up.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:script expression="={&#10;  amount: amount,&#10;  product: product,&#10;  topping: topping,&#10;  filling: filling,&#10;  extras: extras,&#10;  customerName: customerName,&#10;  customerPhoneNumber: customerPhoneNumber,&#10;  location: location  &#10;}" resultVariable="orderSummary" />
          <zeebe:ioMapping>
            <zeebe:input source="=fromAi(toolCall.numberOfOrdererdItems, &#34;The number of items the customer is ordering&#34;, &#34;number&#34;)" target="amount" />
            <zeebe:input source="=fromAi(toolCall.bakeryProduct, &#34;The bakery (base) product the customer is ordering&#34;, &#34;string&#34;)" target="product" />
            <zeebe:input source="=fromAi(toolCall.topping, &#34;The topping the customer wants on his bakery products&#34;, &#34;string&#34;)" target="topping" />
            <zeebe:input source="=fromAi(toolCall.filling, &#34;The filling the customer wants for his bakery products&#34;, &#34;string&#34;)" target="filling" />
            <zeebe:input source="=fromAi(toolCall.extras, &#34;The extras the customer wants in addition to his bakery products&#34;, &#34;string&#34;)" target="extras" />
            <zeebe:input source="=fromAi(toolCall.customerName, &#34;The name of the ordering customer&#34;, &#34;string&#34;)" target="customerName" />
            <zeebe:input source="=fromAi(toolCall.customerPhoneNumber, &#34;The phone number of the ordering customer&#34;, &#34;string&#34;)" target="customerPhoneNumber" />
            <zeebe:input source="=fromAi(toolCall.location, &#34;The location (city) of the shop for which the order is intended&#34;, &#34;string&#34;)" target="location" />
            <zeebe:output source="=orderSummary" target="orderSummary" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
      </bpmn:scriptTask>
    </bpmn:adHocSubProcess>
    <bpmn:sequenceFlow id="Flow_0uvlzr4" sourceRef="Activity_0iiaaxo" targetRef="AIASP_GatherStructuredOrderData" />
    <bpmn:businessRuleTask id="Activity_0iiaaxo" name="Verfügbare Filialen ermitteln">
      <bpmn:extensionElements>
        <zeebe:calledDecision decisionId="locations" resultVariable="locations" />
        <zeebe:ioMapping>
          <zeebe:output source="=locations" target="locations" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_07hbhwn</bpmn:incoming>
      <bpmn:outgoing>Flow_0uvlzr4</bpmn:outgoing>
    </bpmn:businessRuleTask>
  </bpmn:process>
  <bpmn:message id="Message_13lqv1o" name="customerAnsweredBakeryAdditionalInfoRequest" zeebe:modelerTemplate="ReceiveMailCatchEventConnector">
    <bpmn:extensionElements>
      <zeebe:subscription correlationKey="=mailConversationId" />
    </bpmn:extensionElements>
  </bpmn:message>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="GatherOrderProcessDataAgentProcess">
      <bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
        <dc:Bounds x="172" y="172" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="159" y="215" width="64" height="27" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1nwms6z_di" bpmnElement="Activity_0iiaaxo">
        <dc:Bounds x="290" y="150" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_0v277qx_di" bpmnElement="Event_0v277qx">
        <dc:Bounds x="1402" y="162" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1382" y="205" width="77" height="40" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_0vwxqzc_di" bpmnElement="AIASP_GatherStructuredOrderData" isExpanded="true">
        <dc:Bounds x="450" y="80" width="910" height="310" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_0psfc5b_di" bpmnElement="BRT_DetermineAvailableBakeryProducts">
        <dc:Bounds x="660" y="120" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_1gn7jwk" bpmnElement="BRT_DetermineAvailableToppings">
        <dc:Bounds x="810" y="120" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_0l80573" bpmnElement="BRT_DetermineAvailableExtras">
        <dc:Bounds x="970" y="120" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_0w5pt6q" bpmnElement="BRT_DetermineAvailableFillings">
        <dc:Bounds x="1120" y="120" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_1t9dc43_di" bpmnElement="Event_1t9dc43">
        <dc:Bounds x="1272" y="142" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1246" y="185" width="88" height="27" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1743ydy_di" bpmnElement="Activity_1efuv81">
        <dc:Bounds x="520" y="120" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_0sng0sa_di" bpmnElement="ST_RequestMoreInformation">
        <dc:Bounds x="520" y="250" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_1a9as89_di" bpmnElement="RE_MoreInformationReceived">
        <dc:Bounds x="712" y="272" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="693" y="315" width="75" height="27" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1510lj7_di" bpmnElement="ST_CleanUpCustomerResponse">
        <dc:Bounds x="810" y="250" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_0hryhkn_di" bpmnElement="ScrT_BestellungZusammenfassen">
        <dc:Bounds x="1040" y="250" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="Flow_1wwjscb_di" bpmnElement="Flow_1wwjscb">
        <di:waypoint x="620" y="160" />
        <di:waypoint x="660" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0gtrb9b_di" bpmnElement="Flow_0gtrb9b">
        <di:waypoint x="760" y="160" />
        <di:waypoint x="810" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0k6lvy5_di" bpmnElement="Flow_0k6lvy5">
        <di:waypoint x="910" y="160" />
        <di:waypoint x="970" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_09yasut_di" bpmnElement="Flow_09yasut">
        <di:waypoint x="1070" y="160" />
        <di:waypoint x="1120" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_1rzzeof_di" bpmnElement="Flow_1rzzeof">
        <di:waypoint x="1220" y="160" />
        <di:waypoint x="1272" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0pu94k2_di" bpmnElement="Flow_0pu94k2">
        <di:waypoint x="620" y="290" />
        <di:waypoint x="712" y="290" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_11uuaoc_di" bpmnElement="Flow_11uuaoc">
        <di:waypoint x="748" y="290" />
        <di:waypoint x="810" y="290" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_1u7h7vl_di" bpmnElement="Flow_1u7h7vl">
        <di:waypoint x="1360" y="180" />
        <di:waypoint x="1402" y="180" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_07hbhwn_di" bpmnElement="Flow_07hbhwn">
        <di:waypoint x="208" y="190" />
        <di:waypoint x="290" y="190" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0uvlzr4_di" bpmnElement="Flow_0uvlzr4">
        <di:waypoint x="390" y="190" />
        <di:waypoint x="450" y="190" />
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>
