{
  "active": false,
  "activeVersion": null,
  "activeVersionId": null,
  "connections": {
    "Morning Trigger": {
      "main": [
        [
          {
            "node": "Build Context",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Context": {
      "main": [
        [
          {
            "node": "Generate Daily Brief",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Test Manuel": {
      "main": [
        [
          {
            "node": "Build Context",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Daily Brief": {
      "main": [
        [
          {
            "node": "Has Brief",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude Sonnet 4.5": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Daily Brief",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Brief Schema": {
      "ai_outputParser": [
        [
          {
            "node": "Generate Daily Brief",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Has Brief": {
      "main": [
        [
          {
            "node": "Format Brief",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Skip - Empty Brief",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "createdAt": "2026-05-12T10:29:48.995Z",
  "id": "kKnMn2ChxBuJTRIb",
  "isArchived": false,
  "meta": {
    "aiBuilderAssisted": true,
    "builderVariant": "mcp"
  },
  "name": "Daily AI Brief",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 0 8 * * *"
            }
          ]
        }
      },
      "id": "80b0488f-3568-4825-b065-33c6d6cec8da",
      "name": "Morning Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        16
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "date-iso",
              "name": "date",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "date-pretty",
              "name": "datePretty",
              "type": "string",
              "value": "={{ $now.toFormat(\"dd LLLL yyyy\") }}"
            },
            {
              "id": "topics",
              "name": "topics",
              "type": "array",
              "value": "={{ [\"IA agents\", \"n8n automation\", \"Claude SDK\", \"RAG\", \"MCP\"] }}"
            },
            {
              "id": "persona",
              "name": "persona",
              "type": "string",
              "value": "Consultant IA et automatisation freelance, fullstack Scala/Angular"
            }
          ]
        },
        "options": {}
      },
      "id": "8fe45382-36ed-4939-a4c0-f2839fb3cbdf",
      "name": "Build Context",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        224,
        112
      ]
    },
    {
      "parameters": {},
      "id": "e412b4f2-eecf-4056-8a28-8e5c70121c66",
      "name": "Test Manuel",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        0,
        208
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=G\u00e9n\u00e8re un brief tech du {{ $json.datePretty }} pour un {{ $json.persona }}.\n\nSujets \u00e0 couvrir : {{ $json.topics.join(\", \") }}.\n\nBrief court, actionnable, pas de bullshit corporate.",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "Tu es un veilleur tech pragmatique. Tu \u00e9cris des briefs courts, directs, actionnables. Pas de motivation cringe, pas de hedging. Tu privil\u00e9gies les insights concrets aux g\u00e9n\u00e9ralit\u00e9s."
        }
      },
      "id": "96d8feae-a262-480e-b77b-4ce836e7f28d",
      "name": "Generate Daily Brief",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 2.2,
      "position": [
        448,
        112
      ]
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.5",
        "options": {
          "temperature": 0.4
        }
      },
      "id": "57f8f4aa-c3cd-4843-ae3f-1e9df1cba0c4",
      "name": "Claude Sonnet 4.5",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        448,
        336
      ],
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"date\": \"22 mai 2026\",\n  \"headline\": \"Tendance dominante du jour\",\n  \"highlights\": [\n    { \"topic\": \"Claude SDK\", \"insight\": \"court insight actionnable\" }\n  ],\n  \"action_to_consider\": \"Une action concr\u00e8te \u00e0 envisager aujourd'hui\"\n}"
      },
      "id": "15c2823e-7818-4501-b21d-45d323f21692",
      "name": "Brief Schema",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        592,
        336
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "output-exists",
              "leftValue": "={{ $json.output?.headline }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "905c479e-2587-48b8-8166-11074b375e75",
      "name": "Has Brief",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        800,
        112
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "subject",
              "name": "subject",
              "type": "string",
              "value": "=Daily AI Brief - {{ $json.output.date }}"
            },
            {
              "id": "headline",
              "name": "headline",
              "type": "string",
              "value": "={{ $json.output.headline }}"
            },
            {
              "id": "body",
              "name": "body",
              "type": "string",
              "value": "={{ $json.output.highlights.map(h => \"- \" + h.topic + \" : \" + h.insight).join(\"\\n\") }}\\n\\nAction : {{ $json.output.action_to_consider }}"
            }
          ]
        },
        "options": {}
      },
      "id": "7aae3767-709d-405d-9d85-152646cfbb95",
      "name": "Format Brief",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1024,
        16
      ]
    },
    {
      "parameters": {},
      "id": "7585eaa3-aabf-44fd-bd91-db1ae3fe982f",
      "name": "Skip - Empty Brief",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        1024,
        208
      ]
    }
  ],
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": true
  },
  "shared": [
    {
      "updatedAt": "2026-05-12T10:29:48.997Z",
      "createdAt": "2026-05-12T10:29:48.997Z",
      "role": "workflow:owner",
      "workflowId": "kKnMn2ChxBuJTRIb",
      "projectId": "TBUFy0KozocPEXEX"
    }
  ],
  "staticData": null,
  "tags": [],
  "triggerCount": 0,
  "updatedAt": "2026-05-21T15:47:16.503Z",
  "versionId": "bd1a4e6a-c5b9-4e81-a67a-4b19d799a798"
}