{
  "name": "UTPLA - Scenario 1 - Veille BOAMP biodiversite",
  "flow": [
    {
      "id": 1,
      "module": "http:ActionSendData",
      "version": 3,
      "parameters": { "handleErrors": true, "useNewZLibDeCompress": true },
      "mapper": {
        "url": "https://boamp-datadila.opendatasoft.com/api/explore/v2.1/catalog/datasets/boamp/records",
        "method": "get",
        "headers": [],
        "qs": [
          { "name": "where", "value": "\"biodiversite\" OR \"abeille\" OR \"pollinisateur\" OR \"ruche\" OR \"vegetalisation\" OR \"RSE\"" },
          { "name": "order_by", "value": "dateparution desc" },
          { "name": "limit", "value": "30" }
        ],
        "bodyType": "",
        "parseResponse": true
      },
      "metadata": {
        "designer": { "x": 0, "y": 0 },
        "restore": {}
      }
    },
    {
      "id": 2,
      "module": "builtin:BasicFeeder",
      "version": 1,
      "parameters": {},
      "mapper": {
        "array": "{{1.data.results}}"
      },
      "metadata": {
        "designer": { "x": 300, "y": 0 },
        "restore": {}
      }
    },
    {
      "id": 3,
      "module": "anthropic-claude:createAMessage",
      "version": 1,
      "parameters": {},
      "mapper": {
        "model": "claude-sonnet-4-6",
        "max_tokens": 1024,
        "messages": [
          {
            "role": "user",
            "inputType": "single",
            "content": "Tu es l'analyste appels d'offres d'UTPLA, entreprise specialisee dans la biodiversite urbaine (ruches d'entreprise, refuges pour pollinisateurs, vegetalisation, sensibilisation RSE).\n\nVoici un avis publie au BOAMP :\nObjet : {{2.value.objet}}\nAcheteur : {{2.value.nomacheteur}}\nValeur estimee : {{2.value.valeurEstimee}}\nDate de parution : {{2.value.dateparution}}\nDate limite de reponse : {{2.value.datelimitereponse}}\nLien : {{2.value.url_avis}}\n\nAnalyse cet avis et reponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni apres, au format exact suivant :\n{\n  \"pertinent\": true/false,\n  \"budget_estime_eur\": nombre ou null,\n  \"mots_cles_biodiversite\": [\"...\"],\n  \"resume_court\": \"2 phrases maximum\",\n  \"score\": nombre de 0 a 100,\n  \"justification_score\": \"1 phrase\"\n}\n\nRegles de scoring (sur 100) :\n- Adequation thematique biodiversite / pollinisateurs / RSE : 40 points\n- Budget compatible (PME, 5kEUR a 80kEUR) : 25 points\n- Zone geographique France : 15 points\n- Faisabilite pour une petite structure : 20 points\nSi l'avis n'a aucun rapport avec la biodiversite (ex : simple voirie, mot-cle present par hasard), mets pertinent=false et score=0."
          }
        ]
      },
      "metadata": {
        "designer": { "x": 600, "y": 0 },
        "restore": {}
      }
    },
    {
      "id": 4,
      "module": "json:ParseJSON",
      "version": 1,
      "parameters": { "type": "" },
      "mapper": {
        "json": "{{3.content[].text}}"
      },
      "metadata": {
        "designer": { "x": 900, "y": 0 },
        "restore": {}
      }
    },
    {
      "id": 5,
      "module": "google-sheets:addRow",
      "version": 2,
      "parameters": {},
      "filter": {
        "name": "Opportunite pertinente",
        "conditions": [
          [ { "a": "{{4.pertinent}}", "o": "boolean:equal", "b": "true" } ]
        ]
      },
      "mapper": {
        "mode": "map",
        "insertUnformatted": false,
        "spreadsheetId": "REMPLACER_PAR_ID_GOOGLE_SHEET",
        "sheetId": "Opportunites_BOAMP",
        "tableFirstRow": "A1:Z1",
        "values": {
          "0": "{{2.value.dateparution}}",
          "1": "{{2.value.objet}}",
          "2": "{{4.budget_estime_eur}}",
          "3": "{{4.score}}",
          "4": "{{4.resume_court}}",
          "5": "{{2.value.url_avis}}",
          "6": "A traiter"
        }
      },
      "metadata": {
        "designer": { "x": 1200, "y": 0 },
        "restore": {}
      }
    },
    {
      "id": 6,
      "module": "google-email:ActionSendEmail",
      "version": 1,
      "parameters": {},
      "filter": {
        "name": "Score eleve (> 70)",
        "conditions": [
          [ { "a": "{{4.score}}", "o": "number:greater", "b": "70" } ]
        ]
      },
      "mapper": {
        "to": [ "commerciale@utpla.fr" ],
        "subject": "[BOAMP] Opportunite qualifiee ({{4.score}}/100) - {{2.value.objet}}",
        "html": "<h2>Nouvelle opportunite BOAMP detectee</h2><p><strong>Score :</strong> {{4.score}}/100</p><p><strong>Objet :</strong> {{2.value.objet}}</p><p><strong>Acheteur :</strong> {{2.value.nomacheteur}}</p><p><strong>Budget estime :</strong> {{4.budget_estime_eur}} EUR</p><p><strong>Date limite de reponse :</strong> {{2.value.datelimitereponse}}</p><p><strong>Resume :</strong> {{4.resume_court}}</p><p><strong>Justification :</strong> {{4.justification_score}}</p><p><a href=\"{{2.value.url_avis}}\">Voir l'avis complet sur le BOAMP</a></p><hr><p>Detail complet dans le dashboard Google Sheets UTPLA.</p>"
      },
      "metadata": {
        "designer": { "x": 1500, "y": 0 },
        "restore": {}
      }
    }
  ],
  "metadata": {
    "instant": false,
    "version": 1,
    "scenario": {
      "roundtrips": 1,
      "maxErrors": 3,
      "autoCommit": true,
      "autoCommitTriggerLast": true,
      "sequential": false,
      "confidential": false,
      "dataloss": false,
      "dlq": false,
      "freshVariables": false
    },
    "designer": { "orphans": [] },
    "zone": "eu2.make.com",
    "notes": [
      "SOURCE DE DONNEES : API officielle BOAMP (OpenDataSoft, data.gouv.fr) en JSON - le flux RSS BOAMP filtre ne fonctionne pas (HTTP 400), l'API JSON est la bonne source.",
      "Module 1 (HTTP) : le filtre mots-cles est dans le parametre 'where'. Lancer le module une fois ('Run once') pour que Make reconnaisse la structure de reponse avant de mapper les modules suivants.",
      "PLANIFICATION : apres import, regler le scenario sur 'Every day' a 09:00 (Europe/Paris).",
      "CONNEXIONS A AJOUTER : Anthropic Claude (module 3), Google Sheets (module 5), Gmail (module 6). Le module HTTP et l'Iterator ne demandent aucune connexion.",
      "GOOGLE SHEET REQUIS : feuille 'Opportunites_BOAMP' colonnes A:Date B:Objet C:Budget D:Score E:Resume F:Lien G:Statut. Remplacer spreadsheetId du module 5.",
      "DOUBLONS : la veille quotidienne peut re-remonter un meme avis plusieurs jours. Option : ajouter un module 'Search Rows' pour dedupliquer sur url_avis avant l'ajout."
    ]
  }
}
