{
  "name": "Jev: маршрутизация обращения",
  "nodes": [
    {
      "parameters": {},
      "id": "5133c80f-4a76-4b7d-89ba-c10172a63a01",
      "name": "Запустить вручную",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -960,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "return [{\n  json: {\n    state: {\n      ticket: {\n        subject: 'Деньги списались дважды',\n        message: 'В выписке два одинаковых списания. Проверьте, пожалуйста.',\n        plan: 'business'\n      }\n    },\n    questions: {\n      department: {\n        type: 'choice',\n        instructions: 'Какая очередь должна обработать `ticket`?',\n        criteria: {\n          billing: 'Оплата, списание, возврат или подписка.',\n          technical: 'Ошибка продукта, интеграция или доступ.',\n          sales: 'Тариф, условия или покупка.',\n          manual_review: 'Очередь неясна или ни один вариант не подходит.'\n        }\n      },\n      urgency: {\n        type: 'noul',\n        instructions: 'В `ticket.subject` или `ticket.message` есть срочность, из-за которой ответ нельзя откладывать?'\n      },\n      frustration: {\n        type: 'score',\n        instructions: 'Насколько клиент раздражён в `ticket.message`?',\n        criteria: [\n          'Спокойно описывает ситуацию.',\n          'Недоволен, но пишет нейтрально.',\n          'Сильно раздражён или использует резкие формулировки.'\n        ]\n      }\n    }\n  }\n}];"
      },
      "id": "1dc030e4-8d57-46eb-8a4c-1a468b0b8f02",
      "name": "Подготовить обращение и вопросы",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -720,
        0
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.typesafe.ai/v1/systemone",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer REPLACE_WITH_YOUR_TYPESAFE_API_KEY"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({\n  state: $json.state,\n  model: 'jev-latest',\n  questions: $json.questions\n}) }}",
        "options": {}
      },
      "id": "d9f4d635-4c56-4b52-890e-931d64da6103",
      "name": "Спросить Jev",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -440,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "const answers = $json.answers ?? {};\nconst department = answers.department?.choice ?? 'manual_review';\nconst confidence = Number(answers.department?.confidence ?? 0);\nconst urgency = Number(answers.urgency?.noul ?? 0);\nconst frustration = answers.frustration?.score ?? null;\n\nconst route = confidence < 0.7 || urgency >= 0.75\n  ? 'manual_review'\n  : department;\n\nreturn [{\n  json: {\n    route,\n    department,\n    confidence,\n    urgency,\n    frustration,\n    answers\n  }\n}];"
      },
      "id": "2c44d034-8a4a-4b85-9e49-8c9e54bdf204",
      "name": "Собрать решение",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -180,
        0
      ]
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.route }}",
                    "rightValue": "manual_review",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.route }}",
                    "rightValue": "billing",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.route }}",
                    "rightValue": "technical",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.route }}",
                    "rightValue": "sales",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        },
        "options": {}
      },
      "id": "4407274f-77e6-43fe-8041-29b26763e205",
      "name": "Выбрать ветку",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [
        80,
        0
      ]
    },
    {
      "parameters": {},
      "id": "6f7e15e5-dddc-471e-966c-bb1c7f76d306",
      "name": "Ручная проверка",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        360,
        -180
      ]
    },
    {
      "parameters": {},
      "id": "7e0e6027-442b-4b11-89c4-ca7b2dd7f207",
      "name": "Очередь оплаты",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        360,
        -60
      ]
    },
    {
      "parameters": {},
      "id": "a608a358-8264-4b11-ac01-4c36d2495908",
      "name": "Техническая очередь",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        360,
        60
      ]
    },
    {
      "parameters": {},
      "id": "76c5fa11-70dc-45f4-8b3f-1dcefbd86c09",
      "name": "Очередь продаж",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        360,
        180
      ]
    }
  ],
  "pinData": {},
  "connections": {
    "Запустить вручную": {
      "main": [
        [
          {
            "node": "Подготовить обращение и вопросы",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Подготовить обращение и вопросы": {
      "main": [
        [
          {
            "node": "Спросить Jev",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Спросить Jev": {
      "main": [
        [
          {
            "node": "Собрать решение",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Собрать решение": {
      "main": [
        [
          {
            "node": "Выбрать ветку",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Выбрать ветку": {
      "main": [
        [
          {
            "node": "Ручная проверка",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Очередь оплаты",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Техническая очередь",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Очередь продаж",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {},
  "versionId": "9d8f5c03-9c2c-42f7-9ca1-df1a6c7ef001",
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}
