{
  "name": "002_roteador_aninha_v2",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "dl-aninha",
        "options": {}
      },
      "id": "wh-aninha",
      "name": "Entrada Aninha",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        100,
        400
      ]
    },
    {
      "parameters": {
        "operation": "getAll",
        "tableId": "leads",
        "limit": 1,
        "filters": {
          "conditions": [
            {
              "column": "telefone",
              "value": "={{ $json.body.telefone || $json.body.sender_id }}"
            }
          ]
        },
        "options": {}
      },
      "id": "supabase-get",
      "name": "Ler Persona Supabase",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        320,
        400
      ],
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "dataType": "string",
        "value1": "={{ $json[0]?.persona || '' }}",
        "rules": {
          "rules": [
            {
              "value2": "sindico",
              "outputKey": "sindico"
            },
            {
              "value2": "admin_condominio",
              "outputKey": "admin_cond"
            },
            {
              "value2": "admin_escola",
              "outputKey": "admin_escola"
            }
          ]
        },
        "fallbackOutput": 3
      },
      "id": "switch-persona",
      "name": "Switch Persona",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 1,
      "position": [
        560,
        400
      ]
    },
    {
      "parameters": {
        "model": "gpt-4o",
        "options": {
          "temperature": 0.3
        }
      },
      "id": "llm-master",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        850,
        1050
      ]
    },
    {
      "parameters": {
        "sessionId": "={{ $('Entrada Aninha').item.json.body.telefone || $('Entrada Aninha').item.json.body.sender_id || 'lead_anonimo' }}"
      },
      "id": "memory-master",
      "name": "Mem\u00f3ria Buffer",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.2,
      "position": [
        1020,
        1050
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $('Entrada Aninha').item.json.body.mensagem_original || $('Entrada Aninha').item.json.body.mensagem || '' }}",
        "options": {
          "systemMessage": "Voc\u00ea \u00e9 a ANINHA da DL Solu\u00e7\u00f5es Condominiais. Este lead ainda n\u00e3o tem perfil identificado.\n\nSua tarefa: Fazer perguntas curtas e amig\u00e1veis para descobrir se o contato \u00e9:\n1) S\u00edndico de Condom\u00ednio\n2) Administrador de Condom\u00ednios (Imobili\u00e1ria / Administradora)\n3) Administrador de Escola ou Col\u00e9gio\n\nBoas pr\u00e1ticas:\n- Seja calorosa mas objetiva\n- M\u00e1ximo 2 perguntas por mensagem\n- Nunca mencione pre\u00e7os\n- Se a pessoa j\u00e1 indicou o tipo, n\u00e3o pergunte de novo\n\nQuando descobrir a persona, adicione UMA das seguintes tags no FINAL da sua resposta:\n[PERSONA_SINDICO]\n[PERSONA_ADMIN_COND]\n[PERSONA_ESCOLA]"
        }
      },
      "id": "ag-classificador",
      "name": "Agent Classificador",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.6,
      "position": [
        850,
        200
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $('Entrada Aninha').item.json.body.mensagem_original || $('Entrada Aninha').item.json.body.mensagem || '' }}",
        "options": {
          "systemMessage": "Voc\u00ea \u00e9 a ANINHA, especialista comercial da DL Solu\u00e7\u00f5es Condominiais.\nO lead \u00e9 um S\u00cdNDICO.\n\nDOR PRINCIPAL DESSA PERSONA:\n- Quer agilidade e resolu\u00e7\u00e3o sem drama para os moradores\n- Medo de gambiarras, quer seguran\u00e7a t\u00e9cnica e conformidade normativa\n- Precisa de relat\u00f3rios e presta\u00e7\u00e3o de contas claros para a assembleia\n- N\u00e3o quer ser responsabilizado por problemas de seguran\u00e7a (inc\u00eandio, CFTV, el\u00e9trica)\n\nSua conduta:\n- Fale diretamente sobre as vantagens da DL: padr\u00e3o normativo (eletrodutos met\u00e1licos, n\u00e3o usamos canaleta pl\u00e1stica), laudos t\u00e9cnicos para assembleia, SLA de atendimento\n- Mencione cases de sucesso de condom\u00ednios similares (gen\u00e9ricos)\n- Nunca d\u00ea pre\u00e7o \u2014 o pre\u00e7o s\u00f3 sai ap\u00f3s Avalia\u00e7\u00e3o T\u00e9cnica\n\nQuando o lead demonstrar interesse em avan\u00e7ar para or\u00e7amento ou avalia\u00e7\u00e3o t\u00e9cnica, adicione a tag [ENCAMINHAR_JULES] no FINAL da sua resposta."
        }
      },
      "id": "ag-sindico",
      "name": "Agent S\u00edndico",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.6,
      "position": [
        850,
        400
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $('Entrada Aninha').item.json.body.mensagem_original || $('Entrada Aninha').item.json.body.mensagem || '' }}",
        "options": {
          "systemMessage": "Voc\u00ea \u00e9 a ANINHA, especialista comercial da DL Solu\u00e7\u00f5es Condominiais.\nO lead \u00e9 um ADMINISTRADOR DE CONDOM\u00cdNIOS (trabalha em administradora / imobili\u00e1ria).\n\nDOR PRINCIPAL DESSA PERSONA:\n- Gerencia v\u00e1rios condom\u00ednios, quer fornecedores confi\u00e1veis e multidisciplinares\n- Precisa de SLAs claros e documenta\u00e7\u00e3o t\u00e9cnica para os condom\u00ednios que administra\n- Quer redu\u00e7\u00e3o de custos operacionais (energia solar, manuten\u00e7\u00e3o preventiva)\n- Alta exig\u00eancia por conformidade: NR-10, ABNT\n\nSua conduta:\n- Destaque o portf\u00f3lio completo da DL: el\u00e9trica, solar, CFTV, automa\u00e7\u00e3o, inc\u00eandio\n- Fale de parceria B2B de longo prazo e atendimento preferencial\n- Mencione a capacidade de emitir laudos para m\u00faltiplos condom\u00ednios\n- Nunca d\u00ea pre\u00e7o\n\nQuando o lead quiser avan\u00e7ar, adicione a tag [ENCAMINHAR_JULES] no FINAL da resposta."
        }
      },
      "id": "ag-admin-cond",
      "name": "Agent Admin Cond",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.6,
      "position": [
        850,
        600
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $('Entrada Aninha').item.json.body.mensagem_original || $('Entrada Aninha').item.json.body.mensagem || '' }}",
        "options": {
          "systemMessage": "Voc\u00ea \u00e9 a ANINHA, especialista comercial da DL Solu\u00e7\u00f5es Condominiais.\nO lead \u00e9 um ADMINISTRADOR DE ESCOLA ou COL\u00c9GIO.\n\nDOR PRINCIPAL DESSA PERSONA:\n- Seguran\u00e7a dos alunos \u00e9 prioridade m\u00e1xima: CFTV, controle de acesso, el\u00e9trica segura\n- Quer obras e manuten\u00e7\u00f5es executadas nas f\u00e9rias escolares para n\u00e3o impactar aulas\n- Preocupa\u00e7\u00e3o com economia de energia (escolas t\u00eam alto consumo)\n- Conformidade com normas de preven\u00e7\u00e3o de inc\u00eandio (AVCB) \u00e9 cr\u00edtica\n\nSua conduta:\n- Fale do DL Guardi\u00e3o\u2122 (CFTV) e DL Gatekeeper\u2122 (controle de acesso) para seguran\u00e7a\n- Destaque o DL EcoVolt Solar\u2122 para economia de energia\n- Mencione a capacidade de executar em cronograma de f\u00e9rias\n- Nunca d\u00ea pre\u00e7o\n\nQuando o lead quiser avan\u00e7ar, adicione a tag [ENCAMINHAR_JULES] no FINAL da resposta."
        }
      },
      "id": "ag-escola",
      "name": "Agent Escola",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.6,
      "position": [
        850,
        800
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.output }}",
              "operation": "contains",
              "value2": "[ENCAMINHAR_JULES]"
            }
          ]
        }
      },
      "id": "if-jules",
      "name": "Encaminhar para Engenharia?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1150,
        600
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://n8n.dlsolucoescondominiais.com.br/webhook/dl-especialistas",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "telefone",
              "value": "={{ $('Entrada Aninha').item.json.body.telefone || $('Entrada Aninha').item.json.body.sender_id }}"
            },
            {
              "name": "historico_dor",
              "value": "={{ $json.output }}"
            },
            {
              "name": "persona",
              "value": "={{ $('Ler Persona Supabase').item.json[0]?.persona || 'indefinido' }}"
            }
          ]
        },
        "options": {}
      },
      "id": "push-004",
      "name": "Chamar 004 Jules",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        1400,
        500
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.output }}",
              "operation": "contains",
              "value2": "[PERSONA_SINDICO]"
            }
          ]
        }
      },
      "id": "if-ps",
      "name": "Detectou Sindico?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1150,
        100
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.output }}",
              "operation": "contains",
              "value2": "[PERSONA_ADMIN_COND]"
            }
          ]
        }
      },
      "id": "if-pa",
      "name": "Detectou Admin Cond?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1150,
        200
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.output }}",
              "operation": "contains",
              "value2": "[PERSONA_ESCOLA]"
            }
          ]
        }
      },
      "id": "if-pe",
      "name": "Detectou Escola?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1150,
        300
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "tableId": "leads",
        "filters": {
          "conditions": [
            {
              "column": "telefone",
              "value": "={{ $('Entrada Aninha').item.json.body.telefone || $('Entrada Aninha').item.json.body.sender_id }}"
            }
          ]
        },
        "updateValues": {
          "values": [
            {
              "column": "persona",
              "value": "sindico"
            },
            {
              "column": "status",
              "value": "triado"
            }
          ]
        }
      },
      "id": "supa-sindico",
      "name": "Salvar Persona Sindico",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        1400,
        50
      ],
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "tableId": "leads",
        "filters": {
          "conditions": [
            {
              "column": "telefone",
              "value": "={{ $('Entrada Aninha').item.json.body.telefone || $('Entrada Aninha').item.json.body.sender_id }}"
            }
          ]
        },
        "updateValues": {
          "values": [
            {
              "column": "persona",
              "value": "admin_condominio"
            },
            {
              "column": "status",
              "value": "triado"
            }
          ]
        }
      },
      "id": "supa-admin",
      "name": "Salvar Persona Admin",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        1400,
        200
      ],
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "tableId": "leads",
        "filters": {
          "conditions": [
            {
              "column": "telefone",
              "value": "={{ $('Entrada Aninha').item.json.body.telefone || $('Entrada Aninha').item.json.body.sender_id }}"
            }
          ]
        },
        "updateValues": {
          "values": [
            {
              "column": "persona",
              "value": "admin_escola"
            },
            {
              "column": "status",
              "value": "triado"
            }
          ]
        }
      },
      "id": "supa-escola",
      "name": "Salvar Persona Escola",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        1400,
        300
      ],
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Entrada Aninha": {
      "main": [
        [
          {
            "node": "Ler Persona Supabase",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ler Persona Supabase": {
      "main": [
        [
          {
            "node": "Switch Persona",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch Persona": {
      "main": [
        [
          {
            "node": "Agent S\u00edndico",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent Admin Cond",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent Escola",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent Classificador",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "ai_languageModel": [
        [
          {
            "node": "Agent Classificador",
            "type": "ai_languageModel",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent S\u00edndico",
            "type": "ai_languageModel",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent Admin Cond",
            "type": "ai_languageModel",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent Escola",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Mem\u00f3ria Buffer": {
      "ai_memory": [
        [
          {
            "node": "Agent Classificador",
            "type": "ai_memory",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent S\u00edndico",
            "type": "ai_memory",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent Admin Cond",
            "type": "ai_memory",
            "index": 0
          }
        ],
        [
          {
            "node": "Agent Escola",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Agent Classificador": {
      "main": [
        [
          {
            "node": "Detectou Sindico?",
            "type": "main",
            "index": 0
          },
          {
            "node": "Detectou Admin Cond?",
            "type": "main",
            "index": 0
          },
          {
            "node": "Detectou Escola?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Detectou Sindico?": {
      "main": [
        [
          {
            "node": "Salvar Persona Sindico",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Detectou Admin Cond?": {
      "main": [
        [
          {
            "node": "Salvar Persona Admin",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Detectou Escola?": {
      "main": [
        [
          {
            "node": "Salvar Persona Escola",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Agent S\u00edndico": {
      "main": [
        [
          {
            "node": "Encaminhar para Engenharia?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Agent Admin Cond": {
      "main": [
        [
          {
            "node": "Encaminhar para Engenharia?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Agent Escola": {
      "main": [
        [
          {
            "node": "Encaminhar para Engenharia?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Encaminhar para Engenharia?": {
      "main": [
        [
          {
            "node": "Chamar 004 Jules",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}