{
  "nodes": [
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "prompt_actualite",
              "name": "prompt_actualite",
              "type": "string",
              "value": "Fournit une analyse compl\u00e8te de l'actualit\u00e9 r\u00e9cente de la ville de {{ $json.ville_nom }} en France. Inclut les derniers \u00e9v\u00e9nements, projets municipaux, d\u00e9veloppements \u00e9conomiques, probl\u00e8mes sociaux et d\u00e9cisions du conseil municipal. Concentre-toi sur les informations des 12 derniers mois qui pourraient impacter une campagne \u00e9lectorale municipale."
            },
            {
              "id": "prompt_finances",
              "name": "prompt_finances",
              "type": "string",
              "value": "Analyse en d\u00e9tail la situation financi\u00e8re de la commune de {{ $json.ville_nom }} en France. Inclut le budget municipal, les d\u00e9penses principales, les recettes, l'endettement, les investissements r\u00e9cents, les projets financ\u00e9s et les perspectives budg\u00e9taires. Concentre-toi sur les donn\u00e9es financi\u00e8res publiques disponibles."
            },
            {
              "id": "prompt_juridique",
              "name": "prompt_juridique",
              "type": "string",
              "value": "Fournis les informations juridiques et r\u00e9glementaires importantes concernant {{ $json.ville_nom }} en France. Inclut les d\u00e9lib\u00e9rations municipales r\u00e9centes, les contentieux en cours, les d\u00e9cisions administratives importantes, les projets d'urbanisme, les r\u00e9glementations locales et tout aspect juridique pertinent pour la gouvernance municipale."
            },
            {
              "id": "prompt_socio_economique",
              "name": "prompt_socio_economique",
              "type": "string",
              "value": "Analyse la situation socio-\u00e9conomique de {{ $json.ville_nom }} en France. Inclut les donn\u00e9es d\u00e9mographiques, le taux de ch\u00f4mage, les entreprises locales, les commerces, l'immobilier, l'\u00e9ducation, la sant\u00e9, les transports, la culture et les \u00e9quipements publics. Concentre-toi sur les d\u00e9fis et opportunit\u00e9s pour le d\u00e9veloppement local."
            },
            {
              "id": "prompt_synthese",
              "name": "prompt_synthese",
              "type": "string",
              "value": "Cr\u00e9\u00e9 un dossier municipal complet pour un candidat aux \u00e9lections municipales 2026 de {{ $json.ville_nom }}. Synth\u00e9tise les informations d'actualit\u00e9, financi\u00e8res, juridiques et socio-\u00e9conomiques. Structure le contenu avec des sections claires : Pr\u00e9sentation de la commune, Enjeux principaux, D\u00e9fis \u00e0 relever, Opportunit\u00e9s de d\u00e9veloppement, et Recommandations strat\u00e9giques pour la campagne."
            }
          ]
        },
        "options": {}
      },
      "id": "7ed7aabe-5cfd-4234-b3a7-31bd81954b4a",
      "name": "\ud83d\udd27 Configuration des Prompts",
      "type": "n8n-nodes-base.set",
      "position": [
        -1260,
        -480
      ],
      "typeVersion": 3.4
    },
    {
      "parameters": {
        "path": "dossier-municipal",
        "responseMode": "responseNode",
        "options": {}
      },
      "id": "dcde8da6-361e-4141-a2b9-24320a4ee65f",
      "name": "\ud83d\udce5 Webhook Entr\u00e9e",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1480,
        -480
      ],
      "typeVersion": 2
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "ville_nom",
              "name": "ville_nom",
              "type": "string",
              "value": "={{ $('\ud83d\udce5 Webhook Entr\u00e9e').item.json.query?.ville || $('\ud83d\udce5 Webhook Entr\u00e9e').item.json.ville || $('\ud83d\udce5 Webhook Entr\u00e9e').item.json.query?.topic || $('\ud83d\udce5 Webhook Entr\u00e9e').item.json.topic || '' }}"
            }
          ]
        },
        "options": {}
      },
      "id": "dd50cb56-717b-4059-82c3-ff6276f14320",
      "name": "\ud83c\udfdb\ufe0f Extraction Nom Ville",
      "type": "n8n-nodes-base.set",
      "position": [
        -1040,
        -480
      ],
      "typeVersion": 3.4
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ville-existe",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('\ud83c\udfdb\ufe0f Extraction Nom Ville').item.json.ville_nom }}",
              "rightValue": ""
            }
          ]
        },
        "options": {}
      },
      "id": "8011c0d7-792f-4730-9f27-c737412e125a",
      "name": "\u2705 V\u00e9rification Ville",
      "type": "n8n-nodes-base.if",
      "position": [
        -820,
        -480
      ],
      "typeVersion": 2.2
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.perplexity.ai/chat/completions",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"model\": \"llama-3.1-sonar-small-128k-online\",\n  \"messages\": [\n    {\n      \"role\": \"system\",\n      \"content\": \"Tu es un expert en analyse municipale fran\u00e7aise. R\u00e9ponds en fran\u00e7ais avec des informations pr\u00e9cises et v\u00e9rifiables.\"\n    },\n    {\n      \"role\": \"user\",\n      \"content\": \"Fournit une analyse compl\u00e8te de l'actualit\u00e9 r\u00e9cente de la ville de {{ $('\ud83c\udfdb\ufe0f Extraction Nom Ville').item.json.ville_nom }} en France. Inclut les derniers \u00e9v\u00e9nements, projets municipaux, d\u00e9veloppements \u00e9conomiques, probl\u00e8mes sociaux et d\u00e9cisions du conseil municipal. Concentre-toi sur les informations des 12 derniers mois qui pourraient impacter une campagne \u00e9lectorale municipale.\"\n    }\n  ],\n  \"max_tokens\": 4000,\n  \"temperature\": 0.2,\n  \"top_p\": 0.9,\n  \"return_citations\": true,\n  \"search_domain_filter\": [\"franceinfo.fr\", \"lemonde.fr\", \"ouest-france.fr\", \"lagazettedescommunes.com\"],\n  \"return_images\": false,\n  \"return_related_questions\": false,\n  \"search_recency_filter\": \"month\",\n  \"top_k\": 0,\n  \"stream\": false,\n  \"presence_penalty\": 0,\n  \"frequency_penalty\": 1\n}",
        "options": {}
      },
      "id": "1382c9b1-a5e5-4487-9529-abcf65000de1",
      "name": "\ud83d\udcf0 Agent Actualit\u00e9",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -600,
        -720
      ],
      "typeVersion": 4.2,
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.perplexity.ai/chat/completions",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"model\": \"llama-3.1-sonar-small-128k-online\",\n  \"messages\": [\n    {\n      \"role\": \"system\",\n      \"content\": \"Tu es un expert en finances publiques fran\u00e7aises. R\u00e9ponds en fran\u00e7ais avec des donn\u00e9es financi\u00e8res pr\u00e9cises.\"\n    },\n    {\n      \"role\": \"user\",\n      \"content\": \"Analyse en d\u00e9tail la situation financi\u00e8re de la commune de {{ $('\ud83c\udfdb\ufe0f Extraction Nom Ville').item.json.ville_nom }} en France. Inclut le budget municipal, les d\u00e9penses principales, les recettes, l'endettement, les investissements r\u00e9cents, les projets financ\u00e9s et les perspectives budg\u00e9taires. Concentre-toi sur les donn\u00e9es financi\u00e8res publiques disponibles.\"\n    }\n  ],\n  \"max_tokens\": 4000,\n  \"temperature\": 0.2,\n  \"top_p\": 0.9,\n  \"return_citations\": true,\n  \"search_domain_filter\": [\"collectivites-locales.gouv.fr\", \"data.gouv.fr\", \"insee.fr\"],\n  \"return_images\": false,\n  \"return_related_questions\": false,\n  \"search_recency_filter\": \"year\",\n  \"top_k\": 0,\n  \"stream\": false,\n  \"presence_penalty\": 0,\n  \"frequency_penalty\": 1\n}",
        "options": {}
      },
      "id": "facf9a81-3d2f-4d06-a99c-8ee80d390bf5",
      "name": "\ud83d\udcb0 Agent Finances",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -600,
        -520
      ],
      "typeVersion": 4.2,
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.perplexity.ai/chat/completions",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"model\": \"llama-3.1-sonar-small-128k-online\",\n  \"messages\": [\n    {\n      \"role\": \"system\",\n      \"content\": \"Tu es un expert en droit administratif et municipal fran\u00e7ais. R\u00e9ponds en fran\u00e7ais avec des informations juridiques pr\u00e9cises.\"\n    },\n    {\n      \"role\": \"user\",\n      \"content\": \"Fournis les informations juridiques et r\u00e9glementaires importantes concernant {{ $('\ud83c\udfdb\ufe0f Extraction Nom Ville').item.json.ville_nom }} en France. Inclut les d\u00e9lib\u00e9rations municipales r\u00e9centes, les contentieux en cours, les d\u00e9cisions administratives importantes, les projets d'urbanisme, les r\u00e9glementations locales et tout aspect juridique pertinent pour la gouvernance municipale.\"\n    }\n  ],\n  \"max_tokens\": 4000,\n  \"temperature\": 0.2,\n  \"top_p\": 0.9,\n  \"return_citations\": true,\n  \"search_domain_filter\": [\"legifrance.gouv.fr\", \"service-public.fr\", \"cnil.fr\"],\n  \"return_images\": false,\n  \"return_related_questions\": false,\n  \"search_recency_filter\": \"year\",\n  \"top_k\": 0,\n  \"stream\": false,\n  \"presence_penalty\": 0,\n  \"frequency_penalty\": 1\n}",
        "options": {}
      },
      "id": "fe098d7e-4b47-4bd2-9e74-2665a612105a",
      "name": "\u2696\ufe0f Agent Juridique",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -600,
        -360
      ],
      "typeVersion": 4.2,
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.perplexity.ai/chat/completions",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"model\": \"llama-3.1-sonar-small-128k-online\",\n  \"messages\": [\n    {\n      \"role\": \"system\",\n      \"content\": \"Tu es un expert en d\u00e9veloppement territorial et socio-\u00e9conomie fran\u00e7aise. R\u00e9ponds en fran\u00e7ais avec des analyses pr\u00e9cises.\"\n    },\n    {\n      \"role\": \"user\",\n      \"content\": \"Analyse la situation socio-\u00e9conomique de {{ $('\ud83c\udfdb\ufe0f Extraction Nom Ville').item.json.ville_nom }} en France. Inclut les donn\u00e9es d\u00e9mographiques, le taux de ch\u00f4mage, les entreprises locales, les commerces, l'immobilier, l'\u00e9ducation, la sant\u00e9, les transports, la culture et les \u00e9quipements publics. Concentre-toi sur les d\u00e9fis et opportunit\u00e9s pour le d\u00e9veloppement local.\"\n    }\n  ],\n  \"max_tokens\": 4000,\n  \"temperature\": 0.2,\n  \"top_p\": 0.9,\n  \"return_citations\": true,\n  \"search_domain_filter\": [\"insee.fr\", \"pole-emploi.fr\", \"data.gouv.fr\"],\n  \"return_images\": false,\n  \"return_related_questions\": false,\n  \"search_recency_filter\": \"year\",\n  \"top_k\": 0,\n  \"stream\": false,\n  \"presence_penalty\": 0,\n  \"frequency_penalty\": 1\n}",
        "options": {}
      },
      "id": "8259161d-31cc-4938-a0b7-3fdd45aeec81",
      "name": "\ud83c\udfd8\ufe0f Agent Socio-\u00c9conomique",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -600,
        -160
      ],
      "typeVersion": 4.2,
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "actualite",
              "name": "actualite",
              "type": "string",
              "value": "={{ $('\ud83d\udcf0 Agent Actualit\u00e9').item?.json?.choices?.[0]?.message?.content || 'Donn\u00e9es d\\'actualit\u00e9 non disponibles' }}"
            },
            {
              "id": "finances",
              "name": "finances",
              "type": "string",
              "value": "={{ $('\ud83d\udcb0 Agent Finances').item?.json?.choices?.[0]?.message?.content || 'Donn\u00e9es financi\u00e8res non disponibles' }}"
            },
            {
              "id": "juridique",
              "name": "juridique",
              "type": "string",
              "value": "={{ $('\u2696\ufe0f Agent Juridique').item?.json?.choices?.[0]?.message?.content || 'Donn\u00e9es juridiques non disponibles' }}"
            },
            {
              "id": "socio_economique",
              "name": "socio_economique",
              "type": "string",
              "value": "={{ $('\ud83c\udfd8\ufe0f Agent Socio-\u00c9conomique').item?.json?.choices?.[0]?.message?.content || 'Donn\u00e9es socio-\u00e9conomiques non disponibles' }}"
            },
            {
              "id": "ville",
              "name": "ville",
              "type": "string",
              "value": "={{ $('\ud83c\udfdb\ufe0f Extraction Nom Ville').item.json.ville_nom }}"
            }
          ]
        },
        "options": {}
      },
      "id": "fa11f0d4-1952-498c-ba7e-bbcacc267ac1",
      "name": "\ud83d\udcca Consolidation Donn\u00e9es",
      "type": "n8n-nodes-base.set",
      "position": [
        -260,
        -420
      ],
      "typeVersion": 3.4
    },
    {
      "parameters": {
        "model": "gpt-4o-mini-2024-07-18",
        "options": {
          "responseFormat": "json_object",
          "temperature": 0.1
        }
      },
      "id": "07c23a83-c782-4de9-b639-733f3f61d5b6",
      "name": "\ud83e\udd16 GPT Synth\u00e8se",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        20,
        -160
      ],
      "typeVersion": 1,
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Cr\u00e9\u00e9 un dossier municipal complet pour un candidat aux \u00e9lections municipales 2026 de {{ $json.ville }}. Synth\u00e9tise les informations d'actualit\u00e9, financi\u00e8res, juridiques et socio-\u00e9conomiques. Structure le contenu avec des sections claires : Pr\u00e9sentation de la commune, Enjeux principaux, D\u00e9fis \u00e0 relever, Opportunit\u00e9s de d\u00e9veloppement, et Recommandations strat\u00e9giques pour la campagne.\n\n## Donn\u00e9es collect\u00e9es :\n\n### Actualit\u00e9 :\n{{ $json.actualite }}\n\n### Finances :\n{{ $json.finances }}\n\n### Juridique :\n{{ $json.juridique }}\n\n### Socio-\u00e9conomique :\n{{ $json.socio_economique }}\n\n---\n\nCr\u00e9e un dossier municipal structur\u00e9 en format JSON avec cette structure exacte :\n\n{\n  \"dossier\": {\n    \"ville\": \"nom de la ville\",\n    \"date_creation\": \"date actuelle\",\n    \"resume_executif\": \"r\u00e9sum\u00e9 en 2-3 phrases\",\n    \"sections\": {\n      \"presentation_commune\": {\n        \"titre\": \"Pr\u00e9sentation de la commune\",\n        \"contenu\": \"description d\u00e9taill\u00e9e\",\n        \"points_cles\": [\"point1\", \"point2\", \"point3\"]\n      },\n      \"enjeux_principaux\": {\n        \"titre\": \"Enjeux principaux\",\n        \"contenu\": \"analyse des enjeux\",\n        \"points_cles\": [\"enjeu1\", \"enjeu2\", \"enjeu3\"]\n      },\n      \"defis_relever\": {\n        \"titre\": \"D\u00e9fis \u00e0 relever\",\n        \"contenu\": \"identification des d\u00e9fis\",\n        \"points_cles\": [\"defi1\", \"defi2\", \"defi3\"]\n      },\n      \"opportunites\": {\n        \"titre\": \"Opportunit\u00e9s de d\u00e9veloppement\",\n        \"contenu\": \"analyse des opportunit\u00e9s\",\n        \"points_cles\": [\"opportunite1\", \"opportunite2\", \"opportunite3\"]\n      },\n      \"recommandations\": {\n        \"titre\": \"Recommandations strat\u00e9giques\",\n        \"contenu\": \"strat\u00e9gies pour la campagne\",\n        \"points_cles\": [\"recommandation1\", \"recommandation2\", \"recommandation3\"]\n      }\n    },\n    \"sources\": [\"source1\", \"source2\", \"source3\"]\n  }\n}\n\nR\u00e9ponds uniquement avec le JSON, sans texte d'explication."
      },
      "id": "b4a1da38-40cb-4b09-9cda-f43c57605bb5",
      "name": "\ud83d\udccb Cr\u00e9ation Dossier Municipal",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        20,
        -420
      ],
      "typeVersion": 1.4
    },
    {
      "parameters": {
        "model": "gpt-4o-mini-2024-07-18",
        "options": {
          "responseFormat": "text",
          "temperature": 0.1
        }
      },
      "id": "253ff56e-b04d-4988-8144-3f7275b138e5",
      "name": "\ud83c\udf10 GPT HTML",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        360,
        -160
      ],
      "typeVersion": 1,
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Cr\u00e9e un document HTML complet et moderne pour ce dossier municipal. Utilise TailwindCSS pour un design professionnel et responsive.\n\nStructure :\n- Header avec le nom de la ville et date\n- Navigation par sections\n- Contenu organis\u00e9 avec des cartes TailwindCSS\n- Code couleur : bleu pour les titres, vert pour les opportunit\u00e9s, orange pour les d\u00e9fis\n- Footer avec les sources\n\nDonn\u00e9es du dossier :\n{{ $json.text }}\n\nRequirements :\n- Document HTML complet avec doctype\n- Utilise TailwindCSS via CDN\n- Design responsive et moderne\n- Navigation fluide entre sections\n- Formatage professionnel pour un candidat\n- Langue fran\u00e7aise exclusivement\n- Une seule ligne de HTML (sans retours \u00e0 la ligne)\n\nR\u00e9ponds uniquement avec le code HTML, sans explications."
      },
      "id": "74f98790-e3d9-480b-8987-565b3d47c1f0",
      "name": "\ud83c\udfa8 G\u00e9n\u00e9ration HTML",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        360,
        -420
      ],
      "typeVersion": 1.4
    },
    {
      "parameters": {
        "respondWith": "text",
        "responseBody": "={{ $json.text }}",
        "options": {
          "responseHeaders": {
            "entries": [
              {
                "name": "Content-Type",
                "value": "text/html; charset=utf-8"
              }
            ]
          }
        }
      },
      "id": "08911005-b6cd-4842-a7c5-db2b77aa8a90",
      "name": "\ud83d\udce4 R\u00e9ponse Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        780,
        -420
      ],
      "typeVersion": 1.1
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "erreur",
              "name": "erreur",
              "type": "string",
              "value": "Erreur : Nom de ville manquant. Veuillez sp\u00e9cifier le param\u00e8tre 'ville' ou 'topic' dans votre requ\u00eate. Exemples: ?ville=Paris ou ?topic=Lyon"
            },
            {
              "id": "debug_data",
              "name": "debug_data",
              "type": "object",
              "value": "={{ $('\ud83d\udce5 Webhook Entr\u00e9e').item.json }}"
            }
          ]
        },
        "options": {}
      },
      "id": "0ff99791-3907-4a36-8281-fb24c3c4e5db",
      "name": "\u274c Erreur Ville Manquante",
      "type": "n8n-nodes-base.set",
      "position": [
        -820,
        -300
      ],
      "typeVersion": 3.4
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { \"erreur\": $json.erreur, \"debug\": $json.debug_data, \"aide\": \"Utilisez les param\u00e8tres: ?ville=NomVille ou ?topic=NomVille\" } }}",
        "options": {}
      },
      "id": "9f4d1924-0451-4002-936f-df287c039a8b",
      "name": "\ud83d\udce4 R\u00e9ponse Erreur",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -620,
        60
      ],
      "typeVersion": 1.1
    },
    {
      "parameters": {
        "content": "## \ud83c\udfdb\ufe0f WORKFLOW DOSSIER MUNICIPAL 2026\n\nCe workflow g\u00e9n\u00e8re un dossier complet pour un candidat aux \u00e9lections municipales.\n\n### Utilisation :\n- URL : /dossier-municipal?ville=NOM_VILLE\n- Exemple : /dossier-municipal?ville=Lyon\n\n### Variables configurables :\nTous les prompts sont centralis\u00e9s dans le n\u0153ud '\ud83d\udd27 Configuration des Prompts'\n\n### Agents sp\u00e9cialis\u00e9s :\n- \ud83d\udcf0 Actualit\u00e9 municipale\n- \ud83d\udcb0 Finances publiques\n- \u2696\ufe0f Aspects juridiques\n- \ud83c\udfd8\ufe0f Socio-\u00e9conomique",
        "height": 400,
        "width": 600,
        "color": 3
      },
      "id": "31b5e139-d05a-4c83-8889-6e42eb3f692f",
      "name": "\ud83d\udcd6 Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1480,
        -860
      ],
      "typeVersion": 1
    }
  ],
  "connections": {
    "\ud83d\udd27 Configuration des Prompts": {
      "main": [
        [
          {
            "node": "\u2705 V\u00e9rification Ville",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udce5 Webhook Entr\u00e9e": {
      "main": [
        [
          {
            "node": "\ud83c\udfdb\ufe0f Extraction Nom Ville",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83c\udfdb\ufe0f Extraction Nom Ville": {
      "main": [
        [
          {
            "node": "\ud83d\udd27 Configuration des Prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u2705 V\u00e9rification Ville": {
      "main": [
        [
          {
            "node": "\ud83d\udcf0 Agent Actualit\u00e9",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\u274c Erreur Ville Manquante",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcf0 Agent Actualit\u00e9": {
      "main": [
        [
          {
            "node": "\ud83d\udcb0 Agent Finances",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcb0 Agent Finances": {
      "main": [
        [
          {
            "node": "\u2696\ufe0f Agent Juridique",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u2696\ufe0f Agent Juridique": {
      "main": [
        [
          {
            "node": "\ud83c\udfd8\ufe0f Agent Socio-\u00c9conomique",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83c\udfd8\ufe0f Agent Socio-\u00c9conomique": {
      "main": [
        [
          {
            "node": "\ud83d\udcca Consolidation Donn\u00e9es",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcca Consolidation Donn\u00e9es": {
      "main": [
        [
          {
            "node": "\ud83d\udccb Cr\u00e9ation Dossier Municipal",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udd16 GPT Synth\u00e8se": {
      "ai_languageModel": [
        [
          {
            "node": "\ud83d\udccb Cr\u00e9ation Dossier Municipal",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udccb Cr\u00e9ation Dossier Municipal": {
      "main": [
        [
          {
            "node": "\ud83c\udfa8 G\u00e9n\u00e9ration HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83c\udf10 GPT HTML": {
      "ai_languageModel": [
        [
          {
            "node": "\ud83c\udfa8 G\u00e9n\u00e9ration HTML",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "\ud83c\udfa8 G\u00e9n\u00e9ration HTML": {
      "main": [
        [
          {
            "node": "\ud83d\udce4 R\u00e9ponse Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u274c Erreur Ville Manquante": {
      "main": [
        [
          {
            "node": "\ud83d\udce4 R\u00e9ponse Erreur",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}