{
  "name": "Boulangerie — Anniversary Retention",
  "nodes": [
    {
      "parameters": {
        "rule": { "interval": [{ "field": "cronExpression", "expression": "0 8 * * *" }] }
      },
      "id": "a1b2c3d4-d001-d002-d003-d00400000001",
      "name": "Chaque matin à 8h",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "authentication": "serviceAccount",
        "operation": "readRows",
        "documentId": { "__rl": true, "mode": "id", "value": "VOTRE_GOOGLE_SHEET_ID" },
        "sheetName": { "__rl": true, "mode": "name", "value": "Clients fidèles" },
        "options": {}
      },
      "id": "b2c3d4e5-d001-d002-d003-d00400000002",
      "name": "Lire les clients",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [450, 300]
    },
    {
      "parameters": {
        "jsCode": "const today = new Date();\nconst targetDate = new Date(today.getTime() + 7 * 86400000);\nconst targetDay = targetDate.getDate();\nconst targetMonth = targetDate.getMonth() + 1;\n\nconst rows = $input.all();\nreturn rows.filter(r => {\n  const ann = r.json['Date anniversaire'];\n  if (!ann) return false;\n  const parts = ann.split('/');\n  if (parts.length < 2) return false;\n  return parseInt(parts[0]) === targetDay && parseInt(parts[1]) === targetMonth;\n});"
      },
      "id": "c3d4e5f6-d001-d002-d003-d00400000003",
      "name": "Anniversaire dans 7 jours ?",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [650, 300]
    },
    {
      "parameters": {
        "jsCode": "const rows = $input.all();\nreturn rows.map(r => ({\n  json: {\n    ...r.json,\n    couponCode: 'ANNIV-' + r.json['Prénom'].toUpperCase().slice(0,3) + '-' + Math.floor(Math.random() * 9000 + 1000)\n  }\n}));"
      },
      "id": "d4e5f6a7-d001-d002-d003-d00400000004",
      "name": "Générer coupon",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [850, 300]
    },
    {
      "parameters": {
        "sendTo": "={{ $json['Email'] }}",
        "subject": "🎂 Votre anniversaire approche — Un cadeau vous attend !",
        "message": "Bonjour {{ $json['Prénom'] }},\n\nVotre anniversaire approche, et on a pensé à vous !\n\nPour vous remercier de votre fidélité, profitez de :\n\n✨ -10% sur votre prochain gâteau d'anniversaire sur mesure\nCode : {{ $json.couponCode }}\nValable jusqu'au {{ new Date(Date.now() + 14*86400000).toLocaleDateString('fr-FR') }}\n\nPassez en boutique ou appelez-nous pour réserver votre création.\n\nJoyeux anniversaire par avance !\nVotre boulangerie",
        "options": {}
      },
      "id": "e5f6a7b8-d001-d002-d003-d00400000005",
      "name": "Email anniversaire",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [1050, 300]
    },
    {
      "parameters": {
        "authentication": "serviceAccount",
        "operation": "append",
        "documentId": { "__rl": true, "mode": "id", "value": "VOTRE_GOOGLE_SHEET_ID" },
        "sheetName": { "__rl": true, "mode": "name", "value": "Coupons envoyés" },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Date envoi": "={{ new Date().toLocaleDateString('fr-FR') }}",
            "Client": "={{ $json['Prénom'] }} {{ $json['Nom'] }}",
            "Email": "={{ $json['Email'] }}",
            "Code coupon": "={{ $json.couponCode }}",
            "Utilisé": "Non"
          }
        },
        "options": {}
      },
      "id": "f6a7b8c9-d001-d002-d003-d00400000006",
      "name": "Tracer le coupon",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [1250, 300]
    }
  ],
  "connections": {
    "Chaque matin à 8h": { "main": [[{ "node": "Lire les clients", "type": "main", "index": 0 }]] },
    "Lire les clients": { "main": [[{ "node": "Anniversaire dans 7 jours ?", "type": "main", "index": 0 }]] },
    "Anniversaire dans 7 jours ?": { "main": [[{ "node": "Générer coupon", "type": "main", "index": 0 }]] },
    "Générer coupon": { "main": [[{ "node": "Email anniversaire", "type": "main", "index": 0 }]] },
    "Email anniversaire": { "main": [[{ "node": "Tracer le coupon", "type": "main", "index": 0 }]] }
  },
  "active": false,
  "settings": { "executionOrder": "v1" },
  "tags": [{ "name": "boulangerie" }, { "name": "fidélisation" }],
  "meta": {
    "templateId": "likyly-boulangerie-anniversary",
    "templateVersion": "1.0",
    "description": "Envoie automatiquement un email avec un coupon personnalisé aux clients dont l'anniversaire est dans 7 jours.",
    "instructions": "1. Créez une feuille 'Clients fidèles' : Prénom, Nom, Email, Date anniversaire (format JJ/MM)\n2. Créez une feuille 'Coupons envoyés' : Date envoi, Client, Email, Code coupon, Utilisé\n3. Remplacez VOTRE_GOOGLE_SHEET_ID\n4. Configurez Gmail\n5. Personnalisez le message avec le nom de votre boulangerie\n6. Activez"
  }
}
