<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Claude Code" exporterVersion="1.0.0" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.8.0">
  <bpmn:process id="ai-infra-agent" name="AI Infrastructure Agent" isExecutable="true">
    <bpmn:startEvent id="StartEvent_1" name="Infra-Anfrage">
      <bpmn:extensionElements>
        <zeebe:formDefinition formId="ai-infra-agent-request" />
      </bpmn:extensionElements>
      <bpmn:outgoing>Flow_start</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_start" sourceRef="StartEvent_1" targetRef="Gateway_merge" />
    <bpmn:exclusiveGateway id="Gateway_merge">
      <bpmn:incoming>Flow_start</bpmn:incoming>
      <bpmn:incoming>Flow_followup</bpmn:incoming>
      <bpmn:outgoing>Flow_to_agent</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:sequenceFlow id="Flow_to_agent" sourceRef="Gateway_merge" targetRef="AI_Agent" />
    <bpmn:adHocSubProcess id="AI_Agent" name="Infrastructure Agent" zeebe:modelerTemplate="io.camunda.connectors.agenticai.aiagent.jobworker.v1" zeebe:modelerTemplateVersion="4" zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiNBNTZFRkYiLz4KPG1hc2sgaWQ9InBhdGgtMi1vdXRzaWRlLTFfMTg1XzYiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQiIHk9IjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iYmxhY2siPgo8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iNCIgeT0iNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC4wMTA1IDEyLjA5ODdDMTguNDkgMTAuNTg5NCAxNy4xNTk0IDguMTA4MTQgMTYuMTc5OSA2LjAxMTAzQzE2LjE1MiA2LjAwNDUxIDE2LjExNzYgNiAxNi4wNzk0IDZDMTYuMDQxMSA2IDE2LjAwNjYgNi4wMDQ1MSAxNS45Nzg4IDYuMDExMDRDMTQuOTk5NCA4LjEwODE0IDEzLjY2OTcgMTAuNTg4OSAxMi4xNDgxIDEyLjA5ODFDMTAuNjI2OSAxMy42MDcxIDguMTI1NjggMTQuOTI2NCA2LjAxMTU3IDE1Ljg5ODFDNi4wMDQ3NCAxNS45MjYxIDYgMTUuOTYxMSA2IDE2QzYgMTYuMDM4NyA2LjAwNDY4IDE2LjA3MzYgNi4wMTE0NCAxNi4xMDE0QzguMTI1MTkgMTcuMDcyOSAxMC42MjYyIDE4LjM5MTkgMTIuMTQ3NyAxOS45MDE2QzEzLjY2OTcgMjEuNDEwNyAxNC45OTk2IDIzLjg5MiAxNS45NzkxIDI1Ljk4OUMxNi4wMDY4IDI1Ljk5NTYgMTYuMDQxMSAyNiAxNi4wNzkzIDI2QzE2LjExNzUgMjYgMTYuMTUxOSAyNS45OTU0IDE2LjE3OTYgMjUuOTg5QzE3LjE1OTEgMjMuODkyIDE4LjQ4ODggMjEuNDExIDIwLjAwOTkgMTkuOTAyMU0yMC4wMDk5IDE5LjkwMjFDMjEuNTI1MyAxOC4zOTg3IDIzLjk0NjUgMTcuMDY2OSAyNS45OTE1IDE2LjA4MjRDMjUuOTk2NSAxNi4wNTkzIDI2IDE2LjAzMSAyNiAxNS45OTk3QzI2IDE1Ljk2ODQgMjUuOTk2NSAxNS45NDAzIDI1Ljk5MTUgMTUuOTE3MUMyMy45NDc0IDE0LjkzMjcgMjEuNTI1OSAxMy42MDEgMjAuMDEwNSAxMi4wOTg3IiBzdHJva2U9IiM0OTFEOEIiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgbWFzaz0idXJsKCNwYXRoLTItb3V0c2lkZS0xXzE4NV82KSIvPgo8L3N2Zz4K">
      <bpmn:extensionElements>
        <zeebe:adHoc outputCollection="toolCallResults" outputElement="={&#10;  id: toolCall._meta.id,&#10;  name: toolCall._meta.name,&#10;  content: toolCallResult&#10;}" />
        <zeebe:taskDefinition type="io.camunda.agenticai:aiagent-job-worker:1" retries="3" />
        <zeebe:ioMapping>
          <zeebe:input source="openaiCompatible" target="provider.type" />
          <zeebe:input source="{{secrets.OLLAMA_URL}}" target="provider.openaiCompatible.endpoint" />
          <zeebe:input source="{{secrets.OLLAMA_MODEL}}" target="provider.openaiCompatible.model.model" />
          <zeebe:input source="PT300S" target="provider.openaiCompatible.timeouts.timeout" />
          <zeebe:input source="=&#34;Du bist ein IT-Infrastruktur-Agent fuer ein Homelab.&#10;Du verwaltest die CMDB (Configuration Management Database), ueberwachst Docker-Container und liest Konfigurationsdateien.&#10;&#10;VERFUEGBARE TOOLS:&#10;1. CMDB (SQLite via MCP): SQL-Abfragen gegen die Infrastruktur-Datenbank&#10;   - Tabellen: hosts, services, networks, docker_stacks, service_dependencies, volumes, certificates, config_files, change_log&#10;   - Views: v_service_overview (alle Services mit Status), v_dependency_tree (Abhaengigkeiten)&#10;   - Schreiboperationen: INSERT/UPDATE erlaubt, immer change_log dokumentieren&#10;2. Docker (MCP): Container-Status, Logs, Images, Netzwerke abfragen&#10;3. Filesystem (MCP): Konfigurationsdateien unter /config/ lesen (read-only)&#10;4. Datum/Uhrzeit: Aktuelles Datum und Uhrzeit&#10;&#10;REGELN:&#10;- Antworte immer auf Deutsch&#10;- Lese-Operationen direkt ausfuehren&#10;- Bei CMDB-Aenderungen immer einen change_log-Eintrag erstellen&#10;- Benutze die Views fuer Uebersichten&#10;- Bei Docker-Fragen: Zuerst CMDB fuer Soll-Zustand, dann Docker-MCP fuer Ist-Zustand&#34;" target="data.systemPrompt.prompt" />
          <zeebe:input source="=if (is defined(followUpInput)) then followUpInput else inputText" target="data.userPrompt.prompt" />
          <zeebe:input source="=agent.context" target="agentContext" />
          <zeebe:input source="in-process" target="data.memory.storage.type" />
          <zeebe:input source="=20" target="data.memory.contextWindowSize" />
          <zeebe:input source="=30" 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="=true" target="data.response.includeAgentContext" />
          <zeebe:output source="=agent" target="agent" />
        </zeebe:ioMapping>
        <zeebe:taskHeaders>
          <zeebe:header key="elementTemplateVersion" value="4" />
          <zeebe:header key="elementTemplateId" value="io.camunda.connectors.agenticai.aiagent.jobworker.v1" />
          <zeebe:header key="retryBackoff" value="PT0S" />
        </zeebe:taskHeaders>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_to_agent</bpmn:incoming>
      <bpmn:outgoing>Flow_to_feedback</bpmn:outgoing>
      <bpmn:scriptTask id="GetDateAndTime" name="Datum und Uhrzeit">
        <bpmn:documentation>Gibt das aktuelle Datum und die Uhrzeit mit Zeitzone zurueck.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:script expression="=now()" resultVariable="toolCallResult" />
        </bpmn:extensionElements>
      </bpmn:scriptTask>
      <bpmn:serviceTask id="MCP_CMDB" name="CMDB abfragen" zeebe:modelerTemplate="io.camunda.connectors.agenticai.mcp.remoteclient.v0" zeebe:modelerTemplateVersion="0">
        <bpmn:documentation>Zugriff auf die CMDB (Configuration Management Database) via SQLite MCP Server. Unterstuetzt SQL-Abfragen fuer Hosts, Services, Netzwerke, Docker-Stacks, Abhaengigkeiten, Volumes, Zertifikate und Konfigurationsdateien.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="io.camunda.agenticai:mcpremoteclient:0" retries="3" />
          <zeebe:ioMapping>
            <zeebe:input source="{{secrets.MCP_SQLITE_URL}}" target="data.connection.sseUrl" />
            <zeebe:input source="=toolCall.method" target="data.operation.method" />
            <zeebe:input source="=toolCall.params" target="data.operation.params" />
          </zeebe:ioMapping>
          <zeebe:properties>
            <zeebe:property name="io.camunda.agenticai.gateway.type" value="mcpClient" />
          </zeebe:properties>
          <zeebe:taskHeaders>
            <zeebe:header key="elementTemplateVersion" value="0" />
            <zeebe:header key="elementTemplateId" value="io.camunda.connectors.agenticai.mcp.remoteclient.v0" />
            <zeebe:header key="resultVariable" value="toolCallResult" />
            <zeebe:header key="retryBackoff" value="PT0S" />
          </zeebe:taskHeaders>
        </bpmn:extensionElements>
      </bpmn:serviceTask>
      <bpmn:serviceTask id="MCP_Docker" name="Docker abfragen" zeebe:modelerTemplate="io.camunda.connectors.agenticai.mcp.remoteclient.v0" zeebe:modelerTemplateVersion="0">
        <bpmn:documentation>Zugriff auf Docker via MCP Server. Container-Status, Logs, Images, Netzwerke und Volumes abfragen.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="io.camunda.agenticai:mcpremoteclient:0" retries="3" />
          <zeebe:ioMapping>
            <zeebe:input source="{{secrets.MCP_DOCKER_URL}}" target="data.connection.sseUrl" />
            <zeebe:input source="=toolCall.method" target="data.operation.method" />
            <zeebe:input source="=toolCall.params" target="data.operation.params" />
          </zeebe:ioMapping>
          <zeebe:properties>
            <zeebe:property name="io.camunda.agenticai.gateway.type" value="mcpClient" />
          </zeebe:properties>
          <zeebe:taskHeaders>
            <zeebe:header key="elementTemplateVersion" value="0" />
            <zeebe:header key="elementTemplateId" value="io.camunda.connectors.agenticai.mcp.remoteclient.v0" />
            <zeebe:header key="resultVariable" value="toolCallResult" />
            <zeebe:header key="retryBackoff" value="PT0S" />
          </zeebe:taskHeaders>
        </bpmn:extensionElements>
      </bpmn:serviceTask>
      <bpmn:serviceTask id="MCP_Filesystem" name="Config lesen" zeebe:modelerTemplate="io.camunda.connectors.agenticai.mcp.remoteclient.v0" zeebe:modelerTemplateVersion="0">
        <bpmn:documentation>Liest Konfigurationsdateien aus dem /config/ Verzeichnis (Docker-Compose, nginx-Config, Homepage-Config etc.) via Filesystem MCP Server. Nur Lesezugriff.</bpmn:documentation>
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="io.camunda.agenticai:mcpremoteclient:0" retries="3" />
          <zeebe:ioMapping>
            <zeebe:input source="{{secrets.MCP_FILESYSTEM_URL}}" target="data.connection.sseUrl" />
            <zeebe:input source="=toolCall.method" target="data.operation.method" />
            <zeebe:input source="=toolCall.params" target="data.operation.params" />
          </zeebe:ioMapping>
          <zeebe:properties>
            <zeebe:property name="io.camunda.agenticai.gateway.type" value="mcpClient" />
          </zeebe:properties>
          <zeebe:taskHeaders>
            <zeebe:header key="elementTemplateVersion" value="0" />
            <zeebe:header key="elementTemplateId" value="io.camunda.connectors.agenticai.mcp.remoteclient.v0" />
            <zeebe:header key="resultVariable" value="toolCallResult" />
            <zeebe:header key="retryBackoff" value="PT0S" />
          </zeebe:taskHeaders>
        </bpmn:extensionElements>
      </bpmn:serviceTask>
    </bpmn:adHocSubProcess>
    <bpmn:sequenceFlow id="Flow_to_feedback" sourceRef="AI_Agent" targetRef="User_Feedback" />
    <bpmn:userTask id="User_Feedback" name="User Feedback">
      <bpmn:extensionElements>
        <zeebe:userTask />
        <zeebe:formDefinition formId="ai-agent-chat-user-feedback" />
        <zeebe:ioMapping>
          <zeebe:input source="=agent.responseText" target="responseText" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_to_feedback</bpmn:incoming>
      <bpmn:outgoing>Flow_to_gateway</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:sequenceFlow id="Flow_to_gateway" sourceRef="User_Feedback" targetRef="Gateway_satisfied" />
    <bpmn:exclusiveGateway id="Gateway_satisfied" name="Zufrieden?">
      <bpmn:incoming>Flow_to_gateway</bpmn:incoming>
      <bpmn:outgoing>Flow_followup</bpmn:outgoing>
      <bpmn:outgoing>Flow_end</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:sequenceFlow id="Flow_followup" name="nein - Follow-Up" sourceRef="Gateway_satisfied" targetRef="Gateway_merge">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=userSatisfied = null or userSatisfied = false</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:endEvent id="EndEvent_1" name="Erledigt">
      <bpmn:incoming>Flow_end</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_end" name="ja" sourceRef="Gateway_satisfied" targetRef="EndEvent_1">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=userSatisfied</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="ai-infra-agent">
      <bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
        <dc:Bounds x="152" y="242" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="136" y="285" width="69" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Gateway_merge_di" bpmnElement="Gateway_merge" isMarkerVisible="true">
        <dc:Bounds x="245" y="235" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="AI_Agent_di" bpmnElement="AI_Agent" isExpanded="true">
        <dc:Bounds x="350" y="170" width="400" height="400" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="GetDateAndTime_di" bpmnElement="GetDateAndTime">
        <dc:Bounds x="380" y="210" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="MCP_CMDB_di" bpmnElement="MCP_CMDB">
        <dc:Bounds x="540" y="210" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="MCP_Docker_di" bpmnElement="MCP_Docker">
        <dc:Bounds x="380" y="340" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="MCP_Filesystem_di" bpmnElement="MCP_Filesystem">
        <dc:Bounds x="540" y="340" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="User_Feedback_di" bpmnElement="User_Feedback">
        <dc:Bounds x="800" y="220" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Gateway_satisfied_di" bpmnElement="Gateway_satisfied" isMarkerVisible="true">
        <dc:Bounds x="945" y="235" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="943" y="292" width="54" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="EndEvent_1_di" bpmnElement="EndEvent_1">
        <dc:Bounds x="1052" y="242" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1050" y="285" width="40" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="Flow_start_di" bpmnElement="Flow_start">
        <di:waypoint x="188" y="260" />
        <di:waypoint x="245" y="260" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_to_agent_di" bpmnElement="Flow_to_agent">
        <di:waypoint x="295" y="260" />
        <di:waypoint x="350" y="260" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_to_feedback_di" bpmnElement="Flow_to_feedback">
        <di:waypoint x="750" y="260" />
        <di:waypoint x="800" y="260" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_to_gateway_di" bpmnElement="Flow_to_gateway">
        <di:waypoint x="900" y="260" />
        <di:waypoint x="945" y="260" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_followup_di" bpmnElement="Flow_followup">
        <di:waypoint x="970" y="235" />
        <di:waypoint x="970" y="150" />
        <di:waypoint x="270" y="150" />
        <di:waypoint x="270" y="235" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="578" y="133" width="84" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_end_di" bpmnElement="Flow_end">
        <di:waypoint x="995" y="260" />
        <di:waypoint x="1052" y="260" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1019" y="242" width="10" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>
