[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Crée un workflow n8n pour: How it works This workflow automates the process of creating, approving, and optionally posting LinkedIn content from a Google Sheet. Here's a high-level overview: Scheduled Trigger: Runs automatically based on your defined time interval (daily, weekly, etc.). Fetch Data from Google Sheets: Pulls the first row from your sheet where Status is marked as Pending. Generate LinkedIn Post Content: Uses OpenAI to create a professional LinkedIn post using the Post Description and Instructions from the sheet. Format & Prepare Data: Formats the generated content along with the original instruction and post description for email. Send for Approval: Sends an email to a predefined user (e.g., marketing team) with a custom form for approval, including a dropdown to accept/reject and an optional field fo

[Assistant]
<thinking>
**Analyse du besoin**: How it works

This workflow automates the process of creating, approving, and optionally posting LinkedIn content from a Google Sheet. Here's a high-level overview:

Scheduled Trigger: Runs automatica...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 13 nodes utilisant ai, google, email, http.
Structure: logique conditionnelle, intégration IA.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"id":"w9YVsuUtlNgXOEAQ","meta":{"instanceId":"58a9e858b82757a75629d435ec0da2448ad5d9e906a9ce3b7dcbb64c90fda9fe","templateCredsSetupCompleted":true},"name":"LinkedIn Post Generation & Approval Automation","tags":[{"id":"3bzbXbpZW83y48aK","name":"content-approval","createdAt":"2025-05-13T18:45:19.225Z","updatedAt":"2025-05-13T18:45:19.225Z"},{"id":"9SfWdyKRFVbPxrNL","name":"post-generator","createdAt":"2025-05-13T18:45:09.255Z","updatedAt":"2025-05-13T18:45:09.255Z"},{"id":"VWnkUEKQKJB2WmbL","name":"linkedin","createdAt":"2025-05-13T18:45:04.175Z","updatedAt":"2025-05-13T18:45:04.175Z"}],"nodes":[{"id":"d0f86395-aeec-4284-a2d5-26db2dfebd53","name":"Get Image","type":"n8n-nodes-base.httpRequest","position":[1592,2120],"parameters":{"url":"={{ $('Get Data from Sheets').item.json.Image }}","options":{}},"typeVersion":4.2,"alwaysOutputData":true},{"id":"b8ca88a6-aaf1-4191-8b75-9a63b746af77","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-260,2595],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.2},{"id":"8e4e294f-56d4-4317-aea8-ea258527f55a","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[268,2815],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{}},"typeVersion":1.2},{"id":"d262684e-7671-4602-ba77-4270441a69fb","name":"Get Data from Sheets","type":"n8n-nodes-base.googleSheets","position":[-40,2595],"parameters":{"options":{"returnFirstMatch":true},"filtersUI":{"values":[{"lookupValue":"Pending","lookupColumn":"Status"}]},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8/edit?usp=drivesdk","cachedResultName":"LinkedIn Post Automation"}},"typeVersion":4.5},{"id":"93d3e57f-a22d-4c04-9ccc-7ee655bedbdb","name":"Generate Post Content","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[180,2595],"parameters":{"text":"=# LinkedIn Post Generation\n\n## Post Description:\n{{ $json[\"Post Description\"] }}\n\n## Instructions:\n{{ $json[\"Instructions\"] }}\n\n---\n\n**Task:**\nUsing the information above, generate the content for a LinkedIn post:\n- Use the Description and Instructions to create a new post.\n- Ensure your output is positive, professional, clear, and follows all provided instructions and feedback.\n- Do not include any explanations, just the final post content only, ready to publish on LinkedIn.\n- Limit to 1300 characters.\n- If the user demands to keep the same post as the Post Descrioption (in the instructions), then keep the same post content as provided in the Post Description, and output it.","messages":{"messageValues":[{"message":"=You are an expert social media and LinkedIn content writer.\n\nYou will be provided with:\n- A brief post description\n- Specific instructions from the user\n\nPlease follow these steps:\n\n1. Initial Creation:\nIf you are given a post description and instructions, write a polished, professionally worded LinkedIn post suitable for sharing. Strictly follow the instructions and ensure the message is engaging and succinct.\nIf instructed, add a call to action or particular phrase (for example, \"Connect with me\" at the bottom).\n\n2. Formatting:\nKeep the tone positive, inclusive, and professional.\nAdd relevant hashtags in small case.\nLimit the content to within 1300 characters.\nPlace the call to action or special instruction at the end if requested.\nOutput ONLY the final LinkedIn post content. Do NOT include any explanations, markdown, headings, or commentary—just the post text, ready to copy and share on LinkedIn."}]},"promptType":"define"},"typeVersion":1.6},{"id":"6ea121f4-661c-4dd4-a0bc-7edb8a0b884a","name":"Data Formatting 1","type":"n8n-nodes-base.set","position":[556,2595],"parameters":{"options":{},"assignments":{"assignments":[{"id":"bded6f56-99e2-4f1a-be41-27a8dd417844","name":"Post Content","type":"string","value":"={{ $json.text }}"},{"id":"c222c42e-b639-4a74-a1b0-7a3e6e141d55","name":"Post Description","type":"string","value":"={{ $('Get Data from Sheets').item.json['Post Description'] }}"},{"id":"14775ff7-e005-4a86-9623-c322365f7d3a","name":"Instructions","type":"string","value":"={{ $('Get Data from Sheets').item.json.Instructions }}"}]}},"typeVersion":3.4},{"id":"a00ec081-07c0-4f8a-9139-6606a65236ff","name":"Send Content Confirmation","type":"n8n-nodes-base.gmail","position":[776,2495],"webhookId":"29614d41-05c1-44af-93a6-4831a27f9331","parameters":{"sendTo":"youremail@gmail.com","message":"=Generated Post:\n{{ $json['Post Content'] }}\n\n----------\n\nPost Description:\n{{ $json['Post Description'] }}\n\n----------\n\nInstructions:\n{{ $json.Instructions }}","options":{},"subject":"Approval for LinkedIn Post","operation":"sendAndWait","formFields":{"values":[{"fieldType":"dropdown","fieldLabel":"Confirm  Content?","fieldOptions":{"values":[{"option":"Yes"},{"option":"No"},{"option":"Cancel"}]},"requiredField":true},{"fieldType":"textarea","fieldLabel":"Any Changes?"}]},"responseType":"customForm"},"typeVersion":2.1},{"id":"5a1e8061-ef79-4974-888d-8670e60a1b0c","name":"Content Confirmation Logic","type":"n8n-nodes-base.switch","position":[996,2495],"parameters":{"rules":{"values":[{"outputKey":"Yes","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"99ec185e-80ac-451d-bb69-662f84a7cf52","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.data['Confirm  Content?'] }}","rightValue":"Yes"}]},"renameOutput":true},{"outputKey":"No","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"77031007-a912-4b9b-9cca-846c57ffaec8","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.data['Confirm  Content?'] }}","rightValue":"No"}]},"renameOutput":true},{"outputKey":"Cancel","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e94de530-6451-48aa-892c-924a9c41cfb0","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.data['Confirm  Content?'] }}","rightValue":"Cancel"}]},"renameOutput":true}]},"options":{}},"typeVersion":3.2},{"id":"c139fda0-4be1-4ad7-bb28-802b7150365d","name":"Regenerate Post Content","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1216,2670],"parameters":{"text":"=Apply the modification requests on the following LinkedIn post. Besides applying the reqested modifications, return the same linkedin post.\n\nLinkedIn post:\n```\n{{ $('Data Formatting 1').item.json['Post Content'] }}\n```\n\nChange requests:\n{{ $('Send Content Confirmation').item.json.data['Any Changes?'] }}\n\n**Task:**\nUsing the information above, update the LinkedIn post content:\n- Do not include any explanations, just the final post content only (with all the change requests included in the post), ready to publish on LinkedIn.\n- Limit to 1300 characters.\n- If the user demands to keep the same post as the Post Description (in the instructions), then keep the same post content as provided in the Post Description, and output it.","promptType":"define"},"typeVersion":1.6},{"id":"b8587578-03a6-4975-8907-667628dc958a","name":"If Image Provided","type":"n8n-nodes-base.if","position":[1294,2220],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9a78220d-35f5-48b6-9ce3-faecaac24b74","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $('Get Data from Sheets').item.json.Image }}","rightValue":""}]}},"typeVersion":2.2},{"id":"30bf76c8-8420-4d77-bc2b-8a1c27fbf36a","name":"Post With Image","type":"n8n-nodes-base.linkedIn","position":[1812,2120],"parameters":{"text":"={{ $('Data Formatting 1').item.json['Post Content'] }}","person":"pM247vR8Se","additionalFields":{},"shareMediaCategory":"IMAGE"},"typeVersion":1},{"id":"62bf9597-3e38-45ec-853c-aa2d77c40bc2","name":"Post Without Image","type":"n8n-nodes-base.linkedIn","position":[1812,2320],"parameters":{"text":"={{ $('Data Formatting 1').item.json['Post Content'] }}","person":"pM247vR8Se","additionalFields":{}},"typeVersion":1},{"id":"0ddd307d-5e54-42cf-b65a-25f111fb4bea","name":"Update Google Sheet","type":"n8n-nodes-base.googleSheets","position":[2032,2320],"parameters":{"columns":{"value":{"Output":"={{ $json.urn }}","Status":"=Completed","Post Link":"={{ $json.urn }}","row_number":"={{ $('Get Data from Sheets').item.json.row_number }}"},"schema":[{"id":"Post Description","type":"string","display":true,"removed":true,"required":false,"displayName":"Post Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Instructions","type":"string","display":true,"removed":true,"required":false,"displayName":"Instructions","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Image","type":"string","display":true,"removed":true,"required":false,"displayName":"Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"removed":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Output","type":"string","display":true,"required":false,"displayName":"Output","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Link","type":"string","display":true,"required":false,"displayName":"Post Link","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8/edit?usp=drivesdk","cachedResultName":"LinkedIn Post Automation"}},"typeVersion":4.5}],"active":false,"settings":{"executionOrder":"v1"},"connections":{"Get Image":{"main":[[{"node":"Post With Image","type":"main","index":0}]]},"Post With Image":{"main":[[{"node":"Update Google Sheet","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Get Data from Sheets","type":"main","index":0}]]},"Data Formatting 1":{"main":[[{"node":"Send Content Confirmation","type":"main","index":0}]]},"If Image Provided":{"main":[[{"node":"Get Image","type":"main","index":0}],[{"node":"Post Without Image","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"Generate Post Content","type":"ai_languageModel","index":0},{"node":"Regenerate Post Content","type":"ai_languageModel","index":0}]]},"Post Without Image":{"main":[[{"node":"Update Google Sheet","type":"main","index":0}]]},"Get Data from Sheets":{"main":[[{"node":"Generate Post Content","type":"main","index":0}]]},"Generate Post Content":{"main":[[{"node":"Data Formatting 1","type":"main","index":0}]]},"Regenerate Post Content":{"main":[[{"node":"Data Formatting 1","type":"main","index":0}]]},"Send Content Confirmation":{"main":[[{"node":"Content Confirmation Logic","type":"main","index":0}]]},"Content Confirmation Logic":{"main":[[{"node":"If Image Provided","type":"main","index":0}],[{"node":"Regenerate Post Content","type":"main","index":0}],[{"node":"Update Google Sheet","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Génère un workflow n8n: AI-Generated LinkedIn Posts with OpenAI, Google Sheets & Email Approval Workflow

[Assistant]
<thinking>
**Analyse du besoin**: How it works

This workflow automates the process of creating, approving, and optionally posting LinkedIn content from a Google Sheet. Here's a high-level overview:

Scheduled Trigger: Runs automatica...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 13 nodes utilisant ai, google, email, http.
Structure: logique conditionnelle, intégration IA.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"id":"w9YVsuUtlNgXOEAQ","meta":{"instanceId":"58a9e858b82757a75629d435ec0da2448ad5d9e906a9ce3b7dcbb64c90fda9fe","templateCredsSetupCompleted":true},"name":"LinkedIn Post Generation & Approval Automation","tags":[{"id":"3bzbXbpZW83y48aK","name":"content-approval","createdAt":"2025-05-13T18:45:19.225Z","updatedAt":"2025-05-13T18:45:19.225Z"},{"id":"9SfWdyKRFVbPxrNL","name":"post-generator","createdAt":"2025-05-13T18:45:09.255Z","updatedAt":"2025-05-13T18:45:09.255Z"},{"id":"VWnkUEKQKJB2WmbL","name":"linkedin","createdAt":"2025-05-13T18:45:04.175Z","updatedAt":"2025-05-13T18:45:04.175Z"}],"nodes":[{"id":"d0f86395-aeec-4284-a2d5-26db2dfebd53","name":"Get Image","type":"n8n-nodes-base.httpRequest","position":[1592,2120],"parameters":{"url":"={{ $('Get Data from Sheets').item.json.Image }}","options":{}},"typeVersion":4.2,"alwaysOutputData":true},{"id":"b8ca88a6-aaf1-4191-8b75-9a63b746af77","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-260,2595],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.2},{"id":"8e4e294f-56d4-4317-aea8-ea258527f55a","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[268,2815],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{}},"typeVersion":1.2},{"id":"d262684e-7671-4602-ba77-4270441a69fb","name":"Get Data from Sheets","type":"n8n-nodes-base.googleSheets","position":[-40,2595],"parameters":{"options":{"returnFirstMatch":true},"filtersUI":{"values":[{"lookupValue":"Pending","lookupColumn":"Status"}]},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8/edit?usp=drivesdk","cachedResultName":"LinkedIn Post Automation"}},"typeVersion":4.5},{"id":"93d3e57f-a22d-4c04-9ccc-7ee655bedbdb","name":"Generate Post Content","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[180,2595],"parameters":{"text":"=# LinkedIn Post Generation\n\n## Post Description:\n{{ $json[\"Post Description\"] }}\n\n## Instructions:\n{{ $json[\"Instructions\"] }}\n\n---\n\n**Task:**\nUsing the information above, generate the content for a LinkedIn post:\n- Use the Description and Instructions to create a new post.\n- Ensure your output is positive, professional, clear, and follows all provided instructions and feedback.\n- Do not include any explanations, just the final post content only, ready to publish on LinkedIn.\n- Limit to 1300 characters.\n- If the user demands to keep the same post as the Post Descrioption (in the instructions), then keep the same post content as provided in the Post Description, and output it.","messages":{"messageValues":[{"message":"=You are an expert social media and LinkedIn content writer.\n\nYou will be provided with:\n- A brief post description\n- Specific instructions from the user\n\nPlease follow these steps:\n\n1. Initial Creation:\nIf you are given a post description and instructions, write a polished, professionally worded LinkedIn post suitable for sharing. Strictly follow the instructions and ensure the message is engaging and succinct.\nIf instructed, add a call to action or particular phrase (for example, \"Connect with me\" at the bottom).\n\n2. Formatting:\nKeep the tone positive, inclusive, and professional.\nAdd relevant hashtags in small case.\nLimit the content to within 1300 characters.\nPlace the call to action or special instruction at the end if requested.\nOutput ONLY the final LinkedIn post content. Do NOT include any explanations, markdown, headings, or commentary—just the post text, ready to copy and share on LinkedIn."}]},"promptType":"define"},"typeVersion":1.6},{"id":"6ea121f4-661c-4dd4-a0bc-7edb8a0b884a","name":"Data Formatting 1","type":"n8n-nodes-base.set","position":[556,2595],"parameters":{"options":{},"assignments":{"assignments":[{"id":"bded6f56-99e2-4f1a-be41-27a8dd417844","name":"Post Content","type":"string","value":"={{ $json.text }}"},{"id":"c222c42e-b639-4a74-a1b0-7a3e6e141d55","name":"Post Description","type":"string","value":"={{ $('Get Data from Sheets').item.json['Post Description'] }}"},{"id":"14775ff7-e005-4a86-9623-c322365f7d3a","name":"Instructions","type":"string","value":"={{ $('Get Data from Sheets').item.json.Instructions }}"}]}},"typeVersion":3.4},{"id":"a00ec081-07c0-4f8a-9139-6606a65236ff","name":"Send Content Confirmation","type":"n8n-nodes-base.gmail","position":[776,2495],"webhookId":"29614d41-05c1-44af-93a6-4831a27f9331","parameters":{"sendTo":"youremail@gmail.com","message":"=Generated Post:\n{{ $json['Post Content'] }}\n\n----------\n\nPost Description:\n{{ $json['Post Description'] }}\n\n----------\n\nInstructions:\n{{ $json.Instructions }}","options":{},"subject":"Approval for LinkedIn Post","operation":"sendAndWait","formFields":{"values":[{"fieldType":"dropdown","fieldLabel":"Confirm  Content?","fieldOptions":{"values":[{"option":"Yes"},{"option":"No"},{"option":"Cancel"}]},"requiredField":true},{"fieldType":"textarea","fieldLabel":"Any Changes?"}]},"responseType":"customForm"},"typeVersion":2.1},{"id":"5a1e8061-ef79-4974-888d-8670e60a1b0c","name":"Content Confirmation Logic","type":"n8n-nodes-base.switch","position":[996,2495],"parameters":{"rules":{"values":[{"outputKey":"Yes","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"99ec185e-80ac-451d-bb69-662f84a7cf52","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.data['Confirm  Content?'] }}","rightValue":"Yes"}]},"renameOutput":true},{"outputKey":"No","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"77031007-a912-4b9b-9cca-846c57ffaec8","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.data['Confirm  Content?'] }}","rightValue":"No"}]},"renameOutput":true},{"outputKey":"Cancel","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e94de530-6451-48aa-892c-924a9c41cfb0","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.data['Confirm  Content?'] }}","rightValue":"Cancel"}]},"renameOutput":true}]},"options":{}},"typeVersion":3.2},{"id":"c139fda0-4be1-4ad7-bb28-802b7150365d","name":"Regenerate Post Content","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1216,2670],"parameters":{"text":"=Apply the modification requests on the following LinkedIn post. Besides applying the reqested modifications, return the same linkedin post.\n\nLinkedIn post:\n```\n{{ $('Data Formatting 1').item.json['Post Content'] }}\n```\n\nChange requests:\n{{ $('Send Content Confirmation').item.json.data['Any Changes?'] }}\n\n**Task:**\nUsing the information above, update the LinkedIn post content:\n- Do not include any explanations, just the final post content only (with all the change requests included in the post), ready to publish on LinkedIn.\n- Limit to 1300 characters.\n- If the user demands to keep the same post as the Post Description (in the instructions), then keep the same post content as provided in the Post Description, and output it.","promptType":"define"},"typeVersion":1.6},{"id":"b8587578-03a6-4975-8907-667628dc958a","name":"If Image Provided","type":"n8n-nodes-base.if","position":[1294,2220],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9a78220d-35f5-48b6-9ce3-faecaac24b74","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $('Get Data from Sheets').item.json.Image }}","rightValue":""}]}},"typeVersion":2.2},{"id":"30bf76c8-8420-4d77-bc2b-8a1c27fbf36a","name":"Post With Image","type":"n8n-nodes-base.linkedIn","position":[1812,2120],"parameters":{"text":"={{ $('Data Formatting 1').item.json['Post Content'] }}","person":"pM247vR8Se","additionalFields":{},"shareMediaCategory":"IMAGE"},"typeVersion":1},{"id":"62bf9597-3e38-45ec-853c-aa2d77c40bc2","name":"Post Without Image","type":"n8n-nodes-base.linkedIn","position":[1812,2320],"parameters":{"text":"={{ $('Data Formatting 1').item.json['Post Content'] }}","person":"pM247vR8Se","additionalFields":{}},"typeVersion":1},{"id":"0ddd307d-5e54-42cf-b65a-25f111fb4bea","name":"Update Google Sheet","type":"n8n-nodes-base.googleSheets","position":[2032,2320],"parameters":{"columns":{"value":{"Output":"={{ $json.urn }}","Status":"=Completed","Post Link":"={{ $json.urn }}","row_number":"={{ $('Get Data from Sheets').item.json.row_number }}"},"schema":[{"id":"Post Description","type":"string","display":true,"removed":true,"required":false,"displayName":"Post Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Instructions","type":"string","display":true,"removed":true,"required":false,"displayName":"Instructions","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Image","type":"string","display":true,"removed":true,"required":false,"displayName":"Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"removed":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Output","type":"string","display":true,"required":false,"displayName":"Output","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Link","type":"string","display":true,"required":false,"displayName":"Post Link","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EAdLU9-l0ATGDa5_xwTwFO-rPhvZurM2BOSKjH2P-W8/edit?usp=drivesdk","cachedResultName":"LinkedIn Post Automation"}},"typeVersion":4.5}],"active":false,"settings":{"executionOrder":"v1"},"connections":{"Get Image":{"main":[[{"node":"Post With Image","type":"main","index":0}]]},"Post With Image":{"main":[[{"node":"Update Google Sheet","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Get Data from Sheets","type":"main","index":0}]]},"Data Formatting 1":{"main":[[{"node":"Send Content Confirmation","type":"main","index":0}]]},"If Image Provided":{"main":[[{"node":"Get Image","type":"main","index":0}],[{"node":"Post Without Image","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"Generate Post Content","type":"ai_languageModel","index":0},{"node":"Regenerate Post Content","type":"ai_languageModel","index":0}]]},"Post Without Image":{"main":[[{"node":"Update Google Sheet","type":"main","index":0}]]},"Get Data from Sheets":{"main":[[{"node":"Generate Post Content","type":"main","index":0}]]},"Generate Post Content":{"main":[[{"node":"Data Formatting 1","type":"main","index":0}]]},"Regenerate Post Content":{"main":[[{"node":"Data Formatting 1","type":"main","index":0}]]},"Send Content Confirmation":{"main":[[{"node":"Content Confirmation Logic","type":"main","index":0}]]},"Content Confirmation Logic":{"main":[[{"node":"If Image Provided","type":"main","index":0}],[{"node":"Regenerate Post Content","type":"main","index":0}],[{"node":"Update Google Sheet","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Crée un workflow n8n pour: Automated workflow that transforms BuiltWith technology data into actionable sales leads in Trello, creating a visual sales pipeline. 🚀 What It Does Converts tech stack data into Trello cards Organizes leads by technology stack Tracks sales pipeline stages Enables team collaboration Updates automatically 🎯 Perfect For Sales teams Business development Account executives Tech startups Digital agencies ⚙ Key Benefits ✅ Visual sales pipeline ✅ Easy lead qualification ✅ Team collaboration ✅ Technology-based filtering ✅ Automated data entry 🔧 What You Need BuiltWith API access Trello account n8n instance Google account (for authentication) 📊 Data Mapped to Trello Company details Technology stack Contact information Website metrics Custom labels 🛠 Setup & Support Quick Setup Start in 20 minutes

[Assistant]
<thinking>
**Analyse du besoin**: Automated workflow that transforms BuiltWith technology data into actionable sales leads in Trello, creating a visual sales pipeline.

🚀 What It Does
Converts tech stack data into Trello cards
Organiz...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 5 nodes utilisant google, http.
Structure: code personnalisé, flux standard.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"id":"SdBKwXCUZaS6VYQE","meta":{"instanceId":"84ad02d6104594179f43f1ce9cfe3a81637b2faedb57dafcb9e649b7542988db"},"name":"BuiltWith to trello","tags":[],"nodes":[{"id":"ecafd36c-ff4a-4348-95ec-5a221a73ddf7","name":"Manual Trigger","type":"n8n-nodes-base.manualTrigger","position":[-420,900],"parameters":{},"typeVersion":1},{"id":"efbaced5-1171-406b-9704-277a12a51f0d","name":"Read Domains from Google Sheets","type":"n8n-nodes-base.googleSheets","position":[-200,900],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA/edit?usp=drivesdk","cachedResultName":"BuiltWith Domain"}},"typeVersion":4.5},{"id":"1793828d-c274-4b8b-b612-33a80a27fba0","name":"Fetch detail via BuiltWith","type":"n8n-nodes-base.httpRequest","position":[60,900],"parameters":{"url":"https://api.builtwith.com/v21/api.json","options":{},"sendQuery":true,"queryParameters":{"parameters":[{"name":"KEY","value":"YOUR_API_KEY"},{"name":"LOOKUP","value":"={{ $json.Domain }}"}]}},"typeVersion":4.2},{"id":"d64e4b44-5a7c-487d-98ec-5f5ff40ecf56","name":"Extract Tech Stack Info","type":"n8n-nodes-base.code","position":[280,900],"parameters":{"jsCode":"const result = $json.Results?.[0];\nconst domain = result?.Lookup || null;\nconst path = result?.Result?.Paths?.[0];\nconst url = path?.Url || null;\n\nlet extracted = null;\n\n// Loop through Groups to find the first available Tech entry\nfor (const group of path?.Groups || []) {\n  const category = group.Name;\n  const tech = group.Tech?.[0];\n  \n  if (tech) {\n    extracted = {\n      Technology: tech.Name,\n      Category: category,\n      \"First Detected\": tech.FirstDetected,\n      \"Last Detected\": tech.LastDetected,\n      Domain: domain,\n      URL: url\n    };\n    break; // Stop after first match\n  }\n}\n\nreturn extracted ? [extracted] : [];\n"},"typeVersion":2},{"id":"4be59f24-b1bf-43c9-979c-70d53e4292c8","name":"Trello","type":"n8n-nodes-base.trello","position":[620,900],"parameters":{"name":"Scan BuiltWith Results","description":"=Domain: {{ $json.Domain }}\nTechnology: {{ $json.Technology }}\nCategory: {{ $json.Category }}\nFirst Detected: {{ $json['First Detected'] }}\nLast Detected: {{ $json['Last Detected'] }}\nURL: {{ $json.URL }}","additionalFields":{"due":"","idMembers":""}},"typeVersion":1}],"active":false,"settings":{"executionOrder":"v1"},"connections":{"Manual Trigger":{"main":[[{"node":"Read Domains from Google Sheets","type":"main","index":0}]]},"Extract Tech Stack Info":{"main":[[{"node":"Trello","type":"main","index":0}]]},"Fetch detail via BuiltWith":{"main":[[{"node":"Extract Tech Stack Info","type":"main","index":0}]]},"Read Domains from Google Sheets":{"main":[[{"node":"Fetch detail via BuiltWith","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Génère un workflow n8n: Automate Sales Pipeline: BuiltWith Technology Data to Trello Lead Cards with Google Sheets

[Assistant]
<thinking>
**Analyse du besoin**: Automated workflow that transforms BuiltWith technology data into actionable sales leads in Trello, creating a visual sales pipeline.

🚀 What It Does
Converts tech stack data into Trello cards
Organiz...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 5 nodes utilisant google, http.
Structure: code personnalisé, flux standard.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"id":"SdBKwXCUZaS6VYQE","meta":{"instanceId":"84ad02d6104594179f43f1ce9cfe3a81637b2faedb57dafcb9e649b7542988db"},"name":"BuiltWith to trello","tags":[],"nodes":[{"id":"ecafd36c-ff4a-4348-95ec-5a221a73ddf7","name":"Manual Trigger","type":"n8n-nodes-base.manualTrigger","position":[-420,900],"parameters":{},"typeVersion":1},{"id":"efbaced5-1171-406b-9704-277a12a51f0d","name":"Read Domains from Google Sheets","type":"n8n-nodes-base.googleSheets","position":[-200,900],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA/edit?usp=drivesdk","cachedResultName":"BuiltWith Domain"}},"typeVersion":4.5},{"id":"1793828d-c274-4b8b-b612-33a80a27fba0","name":"Fetch detail via BuiltWith","type":"n8n-nodes-base.httpRequest","position":[60,900],"parameters":{"url":"https://api.builtwith.com/v21/api.json","options":{},"sendQuery":true,"queryParameters":{"parameters":[{"name":"KEY","value":"YOUR_API_KEY"},{"name":"LOOKUP","value":"={{ $json.Domain }}"}]}},"typeVersion":4.2},{"id":"d64e4b44-5a7c-487d-98ec-5f5ff40ecf56","name":"Extract Tech Stack Info","type":"n8n-nodes-base.code","position":[280,900],"parameters":{"jsCode":"const result = $json.Results?.[0];\nconst domain = result?.Lookup || null;\nconst path = result?.Result?.Paths?.[0];\nconst url = path?.Url || null;\n\nlet extracted = null;\n\n// Loop through Groups to find the first available Tech entry\nfor (const group of path?.Groups || []) {\n  const category = group.Name;\n  const tech = group.Tech?.[0];\n  \n  if (tech) {\n    extracted = {\n      Technology: tech.Name,\n      Category: category,\n      \"First Detected\": tech.FirstDetected,\n      \"Last Detected\": tech.LastDetected,\n      Domain: domain,\n      URL: url\n    };\n    break; // Stop after first match\n  }\n}\n\nreturn extracted ? [extracted] : [];\n"},"typeVersion":2},{"id":"4be59f24-b1bf-43c9-979c-70d53e4292c8","name":"Trello","type":"n8n-nodes-base.trello","position":[620,900],"parameters":{"name":"Scan BuiltWith Results","description":"=Domain: {{ $json.Domain }}\nTechnology: {{ $json.Technology }}\nCategory: {{ $json.Category }}\nFirst Detected: {{ $json['First Detected'] }}\nLast Detected: {{ $json['Last Detected'] }}\nURL: {{ $json.URL }}","additionalFields":{"due":"","idMembers":""}},"typeVersion":1}],"active":false,"settings":{"executionOrder":"v1"},"connections":{"Manual Trigger":{"main":[[{"node":"Read Domains from Google Sheets","type":"main","index":0}]]},"Extract Tech Stack Info":{"main":[[{"node":"Trello","type":"main","index":0}]]},"Fetch detail via BuiltWith":{"main":[[{"node":"Extract Tech Stack Info","type":"main","index":0}]]},"Read Domains from Google Sheets":{"main":[[{"node":"Fetch detail via BuiltWith","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Crée un workflow n8n pour: How It Works Story Generation – Your idea is transformed into a narrative split into scenes using DeepSeek LLM. Visuals – Each scene is illustrated with AI images via Replicate, then animated into cinematic video clips with RunwayML. Voice & Music – Narration is created using ElevenLabs (text-to-speech), while Replicate audio models generate background music. Final Assembly – All assets are merged into a professional video using Creatomate. Delivery – Everything is orchestrated by n8n, triggered from Slack with /render, and the final video link is delivered back instantly. Workflow in Action 1. Trigger from Slack Type your idea with /render in Slack - the workflow starts automatically. 2. Final Video Output Receive a polished cinematic video link in Slack. 3. Creatomate Template ⚠ Importa

[Assistant]
<thinking>
**Analyse du besoin**: How It Works
Story Generation – Your idea is transformed into a narrative split into scenes using DeepSeek LLM.
Visuals – Each scene is illustrated with AI images via Replicate, then animated into cin...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 38 nodes utilisant ai, slack, http.
Structure: traitement par lots, code personnalisé, intégration IA.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"id":"PFysEJ5V4P8qFwri","meta":{"instanceId":"4655497243705f66b47991d9dbe9a9222e8444b5c2782e466f572ff93867cb4c","templateCredsSetupCompleted":true},"name":"StoryForge AI V2.09.25","tags":[{"id":"2vNUPhGWCuXVVVSR","name":"ai-video","createdAt":"2025-08-31T21:12:18.615Z","updatedAt":"2025-08-31T21:12:18.615Z"},{"id":"7ASMGI4lVr4Eo8rL","name":"tuguidragos.com","createdAt":"2025-08-23T19:10:40.177Z","updatedAt":"2025-08-23T19:10:40.177Z"},{"id":"L8VY7enXtG8LpCmP","name":"workflow","createdAt":"2025-08-31T21:12:39.020Z","updatedAt":"2025-08-31T21:12:39.020Z"},{"id":"NtEM4qJBPpIvfcPu","name":"automation","createdAt":"2025-08-31T21:12:32.130Z","updatedAt":"2025-08-31T21:12:32.130Z"},{"id":"X1lXeZCucYH5GGXd","name":"narrative-ai","createdAt":"2025-08-31T21:12:53.224Z","updatedAt":"2025-08-31T21:12:53.224Z"},{"id":"YC5jPYJYW6CyAwJn","name":"multimodal","createdAt":"2025-08-31T21:12:59.265Z","updatedAt":"2025-08-31T21:12:59.265Z"},{"id":"ZllbFrrUYElUrmt2","name":"storytelling","createdAt":"2025-08-31T21:12:25.950Z","updatedAt":"2025-08-31T21:12:25.950Z"},{"id":"fdwqjQvzTL3OIL9J","name":"post-production","createdAt":"2025-08-31T21:13:05.963Z","updatedAt":"2025-08-31T21:13:05.963Z"},{"id":"hJikg468s5tXRJ6M","name":"distribution","createdAt":"2025-08-31T21:13:11.746Z","updatedAt":"2025-08-31T21:13:11.746Z"},{"id":"jSvpJj29oUaYcCq2","name":"video-production","createdAt":"2025-08-31T21:12:11.434Z","updatedAt":"2025-08-31T21:12:11.434Z"},{"id":"zF6deiKpnp5i0jim","name":"creative-suite","createdAt":"2025-08-31T21:12:46.383Z","updatedAt":"2025-08-31T21:12:46.383Z"}],"nodes":[{"id":"c3e42087-f432-4be7-a53f-3696a50d43da","name":"Narrative LLM Core ","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[1520,-1424],"parameters":{"options":{}},"typeVersion":1},{"id":"6d3448be-bf84-44e4-9142-a127261a3985","name":"Visual LLM Core","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[1520,-1072],"parameters":{"options":{}},"typeVersion":1},{"id":"f6437d7e-5861-4c73-91f2-3c2159d36e11","name":"Score LLM Core","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[1520,-768],"parameters":{"options":{}},"typeVersion":1},{"id":"df848f0d-8444-4227-be6b-42345f4383e7","name":"Voice LLM Core","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[1520,-464],"parameters":{"options":{}},"typeVersion":1},{"id":"645a4b31-4140-415f-b60a-2c5341ce469a","name":"Visual Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1664,-1072],"parameters":{"jsonSchemaExample":"[\n  { \"image_prompt\": \"Line 1...\" },\n  { \"image_prompt\": \"Line 2...\" },\n  { \"image_prompt\": \"Line 3...\" },\n  { \"image_prompt\": \"Line 4...\" },\n  { \"image_prompt\": \"Line 5...\" },\n  { \"image_prompt\": \"Line 6...\" }\n]"},"typeVersion":1.2},{"id":"6e859f62-8355-4e22-8fac-02f90b6faac7","name":"Score Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1664,-768],"parameters":{"jsonSchemaExample":"{\n\t\"music_prompt\":\"insert music prompt\"\n}"},"typeVersion":1.2},{"id":"b175d1c7-13dc-47f1-8aef-546f830342e6","name":"Voice Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1664,-464],"parameters":{"jsonSchemaExample":"[\n  { \"voiceover\": \"Line 1...\" },\n  { \"voiceover\": \"Line 2...\" },\n  { \"voiceover\": \"Line 3...\" },\n  { \"voiceover\": \"Line 4...\" },\n  { \"voiceover\": \"Line 5...\" },\n  { \"voiceover\": \"Line 6...\" }\n]"},"typeVersion":1.2},{"id":"5e938066-1637-492d-b731-a44e559b20be","name":"Narrative Director","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1520,-1296],"parameters":{"text":"=You are a creative scriptwriter tasked with generating a vivid, consistent cinematic story.\n\nYour task:\n\t1.\tRead the story concept provided here:\nInput (raw text from Slack via Webhook):\n{{ $('Creative Brief Intake').item.json.body.text }}\n\t2.\tWrite a concise story outline summary of exactly 30 words, ensuring it captures the essence of the input.\n\t3.\tCreate six detailed scene descriptions, each fewer than 20 words, that visually capture the main events.\n\t4.\tStrict rules:\n\t•\tAlways reference the main character exactly as described in the input (no pronouns, no abbreviations).\n\t•\tMaintain the same tone and style throughout (cinematic, consistent atmosphere).\n\t•\tEnsure scenes follow a logical narrative flow from beginning to climax to resolution.\n\t•\tEmphasize sensory details (setting, mood, lighting, sound).\n\t5.\tOutput format (must follow this exactly):\n\nStory Summary: {insert your 30-word outline here}\n\nScene 1: {insert scene description here}\nScene 2: {insert scene description here}\nScene 3: {insert scene description here}\nScene 4: {insert scene description here}\nScene 5: {insert scene description here}\nScene 6: {insert scene description here}","promptType":"define"},"typeVersion":1.5},{"id":"f59ad576-5776-458d-9927-c9738faac131","name":"Visual Art Director","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1520,-944],"parameters":{"text":"=You are an AI that generates vivid, cinematic image prompts for a storyboard.\n\nInstructions:\n1. Read the story text from: {{ $json.text }}.\n2. Identify exactly six distinct scenes in the story.\n3. Always reference the main character exactly as given in: {{ $json.text }}.\n4. For each scene, create one descriptive prompt with:\n   - Maximum 50 words\n   - Strong continuity across all scenes (same main character design, same overall style, same time period)\n   - Evocative imagery: setting, lighting, atmosphere, cinematic composition\n   - Avoid pronouns; always repeat the full main character description\n   - Add a consistent visual style tag: “cinematic, painterly realism, muted colors, dramatic lighting”\n\nOutput:\nReturn only valid JSON in this format, with six objects:\n\n[\n  { \"image_prompt\": \"Scene 1 prompt...\" },\n  { \"image_prompt\": \"Scene 2 prompt...\" },\n  { \"image_prompt\": \"Scene 3 prompt...\" },\n  { \"image_prompt\": \"Scene 4 prompt...\" },\n  { \"image_prompt\": \"Scene 5 prompt...\" },\n  { \"image_prompt\": \"Scene 6 prompt...\" }\n]\n\nDo not include explanations, disclaimers, or additional text outside the JSON.","promptType":"define","hasOutputParser":true},"typeVersion":1.5},{"id":"cc5ba781-7516-49bc-8c04-85a5935ee439","name":"Score Composer","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1520,-640],"parameters":{"text":"=Generate a descriptive prompt for a background music track that matches the tone, mood, and pacing of the story provided: {{ $json.text }}.  \n\nYour response must be returned in the following JSON format:\n{\n  \"music_prompt\": \"insert music prompt\"\n}","promptType":"define","hasOutputParser":true},"typeVersion":1.5},{"id":"0690bae9-f5cc-4611-8d0e-68af19253fcc","name":"Narration Artist","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1520,-336],"parameters":{"text":"=Your task is to create voiceover scripts for each of the 6 scenes, no longer than 5 seconds each, using the story from:  {{ $json.text }}\n\n\nReturn the output in **exactly** this JSON format (with the same number of objects as the number of scenes):\n[\n  { \"voiceover\": \"Line 1...\" },\n  { \"voiceover\": \"Line 2...\" },\n  ...\n]","promptType":"define","hasOutputParser":true},"typeVersion":1.5},{"id":"95844a55-56aa-4ec9-a3f2-9705b3e740c0","name":"Scene Breakdown","type":"n8n-nodes-base.splitOut","position":[1808,-944],"parameters":{"include":"allOtherFields","options":{},"fieldToSplitOut":"=output"},"typeVersion":1,"alwaysOutputData":false},{"id":"5f98ddde-b441-4ddd-98ca-601d49c0a479","name":"Concept Art Studio","type":"n8n-nodes-base.httpRequest","position":[2016,-944],"parameters":{"url":"https://api.replicate.com/v1/models/black-forest-labs/flux-pro/predictions","method":"POST","options":{},"jsonBody":"={\n  \"input\": {\n    \"width\": 768,\n    \"height\": 1280,\n    \"prompt\": \"{{ $json.output.image_prompt }}\"\n  }\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"Prefer","value":"wait"}]}},"typeVersion":4.2},{"id":"d942e3a5-144d-42d6-af5b-92673ed61550","name":"Render Queue","type":"n8n-nodes-base.wait","position":[2256,-944],"webhookId":"6da9199c-87a5-439e-9625-bedde28f735b","parameters":{"amount":30},"typeVersion":1.1},{"id":"c394a2dc-434e-4aa9-88bc-2eaf7ad2c540","name":"Asset Fetcher","type":"n8n-nodes-base.httpRequest","position":[2464,-944],"parameters":{"url":"={{ $json.output }}","options":{}},"typeVersion":4.2},{"id":"8c442a46-a43e-4a77-8d9a-d55acd58f242","name":"Storyboard Assembler","type":"n8n-nodes-base.httpRequest","position":[2656,-944],"parameters":{"url":"https://api.dev.runwayml.com/v1/image_to_video","method":"POST","options":{},"jsonBody":"={\n  \"model\": \"gen4_turbo\",\n  \"ratio\": \"720:1280\",\n  \"duration\": 5,\n  \"promptText\": \"{{ $json.input.prompt }}\",\n  \"promptImage\": \"{{ $json.output }}\"\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"X-Runway-Version","value":"2024-11-06"}]}},"typeVersion":4.2},{"id":"aa52ece4-5706-4f28-ac9b-f5103049ffb0","name":"Encoding Queue","type":"n8n-nodes-base.wait","position":[2896,-944],"webhookId":"10f14749-0c6c-4f1c-b062-ed820fc2873d","parameters":{"unit":"minutes","amount":4},"typeVersion":1.1},{"id":"0e28f2c9-daaf-4d4a-ac7e-26ec2e9de9b1","name":"Media Retriever","type":"n8n-nodes-base.httpRequest","position":[3072,-944],"parameters":{"url":"=https://api.dev.runwayml.com/v1/tasks/{{ $json.id }}","options":{},"sendHeaders":true,"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"X-Runway-Version","value":"2024-11-06"}]}},"typeVersion":4.2},{"id":"99eb7ad3-1632-4d12-9d4f-f19fe120a788","name":"Metadata Curator","type":"n8n-nodes-base.set","position":[3248,-944],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5e18b7c0-0068-480d-9e6f-19c0c8185cd6","name":"=video{{$itemIndex+1}}","type":"string","value":"={{ $json.output[0] }}"}]}},"typeVersion":3.4},{"id":"b34d198a-3e07-44c8-a0d6-2ab3200ceb2d","name":"Orchestration Engine","type":"n8n-nodes-base.httpRequest","position":[1808,-640],"parameters":{"url":"https://api.replicate.com/v1/predictions","method":"POST","options":{},"jsonBody":"={\n  \"version\": \"96af46316252ddea4c6614e31861876183b59dce84bad765f38424e87919dd85\",\n  \"input\": {\n    \"prompt\": \"{{ $json.output.music_prompt }}\",\n    \"duration\": 30\n  }\n} ","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"Prefer","value":"wait"}]}},"typeVersion":4.2},{"id":"818a7283-4bc0-48cd-ac98-0efffb489579","name":"Track Data Manager","type":"n8n-nodes-base.set","position":[2016,-640],"parameters":{"options":{},"assignments":{"assignments":[{"id":"a4a362c1-78b7-4ada-bc34-8dc6574de6d0","name":"bgm","type":"string","value":"={{ $json.urls.stream }}"}]}},"typeVersion":3.4},{"id":"ac26f143-9b0d-4a95-bc99-c3665b4a70e3","name":"Dialogue Segmenter","type":"n8n-nodes-base.splitOut","position":[1808,-336],"parameters":{"options":{},"fieldToSplitOut":"output"},"typeVersion":1},{"id":"13d97b68-aa75-4130-8c67-bbe0860a9772","name":"Line Delivery Manager","type":"n8n-nodes-base.splitInBatches","position":[2016,-336],"parameters":{"options":{}},"typeVersion":3},{"id":"8036be89-da52-4089-95a3-618d576a29ec","name":"Voice Synthesis Studio","type":"n8n-nodes-base.httpRequest","position":[2256,-320],"parameters":{"url":"https://api.elevenlabs.io/v1/text-to-speech/cgSgspJ2msm6clMCkdW9","method":"POST","options":{},"sendBody":true,"sendQuery":true,"authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"text","value":"={{ $json['voiceover'] }}"},{"name":"model_id","value":"eleven_multilingual_v2"}]},"genericAuthType":"httpHeaderAuth","queryParameters":{"parameters":[{"name":"output_format","value":"mp3_44100_128"}]}},"typeVersion":4.2},{"id":"b6de8fa6-ef4a-476c-9289-11759468cd60","name":"Creative Archive","type":"n8n-nodes-base.notion","position":[3440,-1296],"parameters":{"title":"=Slack Brief - {{$json[\"body\"][\"user_name\"]}} - {{$json[\"body\"][\"channel_name\"]}}","pageId":{"__rl":true,"mode":"url","value":"https://www.notion.so/tuguidragos/test"},"blockUi":{"blockValues":[{"textContent":"={{$json[\"body\"][\"text\"]}}"}]},"options":{}},"typeVersion":2.2},{"id":"933035e0-c9a9-4cb3-8047-f685b4eefb6d","name":"Creative Brief Intake","type":"n8n-nodes-base.webhook","position":[3104,-1296],"webhookId":"cf398c7c-27cd-459e-a09a-54183f76daff","parameters":{"path":"storytelling","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"d24f6a57-9e04-4e50-91be-d6b59364c33d","name":"Production Sync Hub","type":"n8n-nodes-base.merge","position":[4032,-960],"parameters":{"mode":"combine","options":{"includeUnpaired":true},"combineBy":"combineByPosition","numberInputs":4},"typeVersion":3},{"id":"1273d850-726d-4366-91af-270be2e0928b","name":"Post-Production Orchestrator","type":"n8n-nodes-base.code","position":[3664,-720],"parameters":{"jsCode":"const acc = {};\nfor (const item of $input.all()) {\n  Object.assign(acc, item.json);\n}\nconst out = {\n  voiceover0: acc.voiceover0 || \"\",\n  voiceover1: acc.voiceover1 || \"\",\n  voiceover2: acc.voiceover2 || \"\",\n  voiceover3: acc.voiceover3 || \"\",\n  voiceover4: acc.voiceover4 || \"\",\n  voiceover5: acc.voiceover5 || \"\",\n  video1: acc.video1 || \"\",\n  video2: acc.video2 || \"\",\n  video3: acc.video3 || \"\",\n  video4: acc.video4 || \"\",\n  video5: acc.video5 || \"\",\n  video6: acc.video6 || \"\",\n  bgm: acc.bgm || \"\"\n};\nreturn [{ json: out }];"},"typeVersion":2},{"id":"3d6ba423-c353-4231-93d4-762458223ef9","name":"Final Cut Renderer","type":"n8n-nodes-base.httpRequest","position":[3840,-720],"parameters":{"url":"https://api.creatomate.com/v1/renders","method":"POST","options":{},"jsonBody":"={\n  \"template_id\": \"YOUR_id\",\n  \"modifications\": {\n    \"Music.source\": \"{{ $json.bgm }}\",\n    \"voice0.source\": \"{{ $json.voiceover0 }}\",\n    \"voice1.source\": \"{{ $json.voiceover1 }}\",\n    \"voice2.source\": \"{{ $json.voiceover2 }}\",\n    \"voice3.source\": \"{{ $json.voiceover3 }}\",\n    \"voice4.source\": \"{{ $json.voiceover4 }}\",\n    \"voice5.source\": \"{{ $json.voiceover5 }}\",\n    \"video1.source\": \"{{ $json.video1 }}\",\n    \"video2.source\": \"{{ $json.video2 }}\",\n    \"video3.source\": \"{{ $json.video3 }}\",\n    \"video4.source\": \"{{ $json.video4 }}\",\n    \"video5.source\": \"{{ $json.video5 }}\",\n    \"video6.source\": \"{{ $json.video6 }}\"\n  }\n}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"f8dad66d-85b1-49f9-8f05-2989666b51c5","name":"Rendering Buffer","type":"n8n-nodes-base.wait","position":[4032,-720],"webhookId":"eec1a382-929e-4f77-800c-a19e2ee631d9","parameters":{"unit":"minutes","amount":2},"typeVersion":1.1},{"id":"58c64f4e-c3a4-4cfa-8707-9e3b56b764fb","name":"Final Delivery Fetcher","type":"n8n-nodes-base.httpRequest","position":[3664,-432],"parameters":{"url":"=https://api.creatomate.com/v1/renders/{{ $json.id }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"b1ee2dcc-ec4c-4397-afb5-4aaf9ab787ee","name":"Release Announcement","type":"n8n-nodes-base.slack","position":[4048,-432],"webhookId":"aa9515f5-1830-4182-ba04-d80ffd82a4d6","parameters":{"text":"=🎬 Here’s your rendered video: {{$json[\"url\"]}}","select":"channel","channelId":{"__rl":true,"mode":"id","value":"YOUR_id"},"otherOptions":{"includeLinkToWorkflow":false}},"typeVersion":2.3},{"id":"0242aa75-3bf3-43e7-96be-646b77214999","name":"Voiceover Collector","type":"n8n-nodes-base.merge","position":[2464,-336],"parameters":{},"typeVersion":3.2},{"id":"55ce19ea-ade5-464f-a321-ea7af548bcd8","name":"Voice Upload Loop","type":"n8n-nodes-base.splitInBatches","position":[2656,-336],"parameters":{"options":{}},"typeVersion":3},{"id":"3c9223a8-23ca-40d5-9560-2541441f1db2","name":"File Renamer","type":"n8n-nodes-base.noOp","position":[2896,-320],"parameters":{},"typeVersion":1},{"id":"4d2afbe3-5810-4cda-b2d7-af7394981938","name":"Dropbox Uploader","type":"n8n-nodes-base.dropbox","position":[3072,-352],"parameters":{"path":"=/voiceovers/voice_{{$itemIndex+1}}.mp3","binaryData":true},"typeVersion":1},{"id":"ae58150c-79d0-4afb-a5f6-08c6abab2be4","name":"Dropbox Link Generator","type":"n8n-nodes-base.httpRequest","position":[3248,-352],"parameters":{"url":"https://api.dropboxapi.com/2/files/get_temporary_link","method":"POST","options":{},"jsonBody":"={ \"path\": \"{{$json.path_lower}}\" }","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"oAuth2Api"},"typeVersion":4.2},{"id":"502b74ce-a7a2-41be-88a8-55f4a416fe21","name":"Voiceover Mapper","type":"n8n-nodes-base.set","position":[3440,-352],"parameters":{"include":"selected","options":{"stripBinary":true},"assignments":{"assignments":[{"id":"343fdf6d-f578-4295-975d-fff8be2d277f","name":"=voiceover{{$itemIndex}}","type":"string","value":"={{ $json.link }}"}]},"includeOtherFields":true},"typeVersion":3.4}],"active":true,"settings":{"callerPolicy":"workflowsFromSameOwner","executionOrder":"v1"},"connections":{"File Renamer":{"main":[[{"node":"Voice Upload Loop","type":"main","index":0}]]},"Render Queue":{"main":[[{"node":"Asset Fetcher","type":"main","index":0}]]},"Score Parser":{"ai_outputParser":[[{"node":"Score Composer","type":"ai_outputParser","index":0}]]},"Voice Parser":{"ai_outputParser":[[{"node":"Narration Artist","type":"ai_outputParser","index":0}]]},"Asset Fetcher":{"main":[[{"node":"Storyboard Assembler","type":"main","index":0}]]},"Visual Parser":{"ai_outputParser":[[{"node":"Visual Art Director","type":"ai_outputParser","index":0}]]},"Encoding Queue":{"main":[[{"node":"Media Retriever","type":"main","index":0}]]},"Score Composer":{"main":[[{"node":"Orchestration Engine","type":"main","index":0}]]},"Score LLM Core":{"ai_languageModel":[[{"node":"Score Composer","type":"ai_languageModel","index":0}]]},"Voice LLM Core":{"ai_languageModel":[[{"node":"Narration Artist","type":"ai_languageModel","index":0}]]},"Media Retriever":{"main":[[{"node":"Metadata Curator","type":"main","index":0}]]},"Scene Breakdown":{"main":[[{"node":"Concept Art Studio","type":"main","index":0}]]},"Visual LLM Core":{"ai_languageModel":[[{"node":"Visual Art Director","type":"ai_languageModel","index":0}]]},"Creative Archive":{"main":[[{"node":"Narrative Director","type":"main","index":0},{"node":"Production Sync Hub","type":"main","index":0}]]},"Dropbox Uploader":{"main":[[{"node":"Dropbox Link Generator","type":"main","index":0}]]},"Metadata Curator":{"main":[[{"node":"Production Sync Hub","type":"main","index":1}]]},"Narration Artist":{"main":[[{"node":"Dialogue Segmenter","type":"main","index":0}]]},"Rendering Buffer":{"main":[[{"node":"Final Delivery Fetcher","type":"main","index":0}]]},"Voiceover Mapper":{"main":[[{"node":"Production Sync Hub","type":"main","index":3}]]},"Voice Upload Loop":{"main":[[{"node":"Dropbox Uploader","type":"main","index":0}],[{"node":"File Renamer","type":"main","index":0}]]},"Concept Art Studio":{"main":[[{"node":"Render Queue","type":"main","index":0}]]},"Dialogue Segmenter":{"main":[[{"node":"Line Delivery Manager","type":"main","index":0}]]},"Final Cut Renderer":{"main":[[{"node":"Rendering Buffer","type":"main","index":0}]]},"Narrative Director":{"main":[[{"node":"Visual Art Director","type":"main","index":0},{"node":"Score Composer","type":"main","index":0},{"node":"Narration Artist","type":"main","index":0}]]},"Track Data Manager":{"main":[[{"node":"Production Sync Hub","type":"main","index":2}]]},"Narrative LLM Core ":{"ai_languageModel":[[{"node":"Narrative Director","type":"ai_languageModel","index":0}]]},"Production Sync Hub":{"main":[[{"node":"Post-Production Orchestrator","type":"main","index":0}]]},"Visual Art Director":{"main":[[{"node":"Scene Breakdown","type":"main","index":0}]]},"Voiceover Collector":{"main":[[{"node":"Voice Upload Loop","type":"main","index":0}]]},"Orchestration Engine":{"main":[[{"node":"Track Data Manager","type":"main","index":0}]]},"Storyboard Assembler":{"main":[[{"node":"Encoding Queue","type":"main","index":0}]]},"Creative Brief Intake":{"main":[[{"node":"Creative Archive","type":"main","index":0}]]},"Line Delivery Manager":{"main":[[{"node":"Voiceover Collector","type":"main","index":0}],[{"node":"Voice Synthesis Studio","type":"main","index":0}]]},"Dropbox Link Generator":{"main":[[{"node":"Voiceover Mapper","type":"main","index":0}]]},"Final Delivery Fetcher":{"main":[[{"node":"Release Announcement","type":"main","index":0}]]},"Voice Synthesis Studio":{"main":[[{"node":"Line Delivery Manager","type":"main","index":0}]]},"Post-Production Orchestrator":{"main":[[{"node":"Final Cut Renderer","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Génère un workflow n8n: Turn Ideas into Movies with DeepSeek, RunwayML, ElevenLabs & Creatomate

[Assistant]
<thinking>
**Analyse du besoin**: How It Works
Story Generation – Your idea is transformed into a narrative split into scenes using DeepSeek LLM.
Visuals – Each scene is illustrated with AI images via Replicate, then animated into cin...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 38 nodes utilisant ai, slack, http.
Structure: traitement par lots, code personnalisé, intégration IA.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"id":"PFysEJ5V4P8qFwri","meta":{"instanceId":"4655497243705f66b47991d9dbe9a9222e8444b5c2782e466f572ff93867cb4c","templateCredsSetupCompleted":true},"name":"StoryForge AI V2.09.25","tags":[{"id":"2vNUPhGWCuXVVVSR","name":"ai-video","createdAt":"2025-08-31T21:12:18.615Z","updatedAt":"2025-08-31T21:12:18.615Z"},{"id":"7ASMGI4lVr4Eo8rL","name":"tuguidragos.com","createdAt":"2025-08-23T19:10:40.177Z","updatedAt":"2025-08-23T19:10:40.177Z"},{"id":"L8VY7enXtG8LpCmP","name":"workflow","createdAt":"2025-08-31T21:12:39.020Z","updatedAt":"2025-08-31T21:12:39.020Z"},{"id":"NtEM4qJBPpIvfcPu","name":"automation","createdAt":"2025-08-31T21:12:32.130Z","updatedAt":"2025-08-31T21:12:32.130Z"},{"id":"X1lXeZCucYH5GGXd","name":"narrative-ai","createdAt":"2025-08-31T21:12:53.224Z","updatedAt":"2025-08-31T21:12:53.224Z"},{"id":"YC5jPYJYW6CyAwJn","name":"multimodal","createdAt":"2025-08-31T21:12:59.265Z","updatedAt":"2025-08-31T21:12:59.265Z"},{"id":"ZllbFrrUYElUrmt2","name":"storytelling","createdAt":"2025-08-31T21:12:25.950Z","updatedAt":"2025-08-31T21:12:25.950Z"},{"id":"fdwqjQvzTL3OIL9J","name":"post-production","createdAt":"2025-08-31T21:13:05.963Z","updatedAt":"2025-08-31T21:13:05.963Z"},{"id":"hJikg468s5tXRJ6M","name":"distribution","createdAt":"2025-08-31T21:13:11.746Z","updatedAt":"2025-08-31T21:13:11.746Z"},{"id":"jSvpJj29oUaYcCq2","name":"video-production","createdAt":"2025-08-31T21:12:11.434Z","updatedAt":"2025-08-31T21:12:11.434Z"},{"id":"zF6deiKpnp5i0jim","name":"creative-suite","createdAt":"2025-08-31T21:12:46.383Z","updatedAt":"2025-08-31T21:12:46.383Z"}],"nodes":[{"id":"c3e42087-f432-4be7-a53f-3696a50d43da","name":"Narrative LLM Core ","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[1520,-1424],"parameters":{"options":{}},"typeVersion":1},{"id":"6d3448be-bf84-44e4-9142-a127261a3985","name":"Visual LLM Core","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[1520,-1072],"parameters":{"options":{}},"typeVersion":1},{"id":"f6437d7e-5861-4c73-91f2-3c2159d36e11","name":"Score LLM Core","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[1520,-768],"parameters":{"options":{}},"typeVersion":1},{"id":"df848f0d-8444-4227-be6b-42345f4383e7","name":"Voice LLM Core","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[1520,-464],"parameters":{"options":{}},"typeVersion":1},{"id":"645a4b31-4140-415f-b60a-2c5341ce469a","name":"Visual Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1664,-1072],"parameters":{"jsonSchemaExample":"[\n  { \"image_prompt\": \"Line 1...\" },\n  { \"image_prompt\": \"Line 2...\" },\n  { \"image_prompt\": \"Line 3...\" },\n  { \"image_prompt\": \"Line 4...\" },\n  { \"image_prompt\": \"Line 5...\" },\n  { \"image_prompt\": \"Line 6...\" }\n]"},"typeVersion":1.2},{"id":"6e859f62-8355-4e22-8fac-02f90b6faac7","name":"Score Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1664,-768],"parameters":{"jsonSchemaExample":"{\n\t\"music_prompt\":\"insert music prompt\"\n}"},"typeVersion":1.2},{"id":"b175d1c7-13dc-47f1-8aef-546f830342e6","name":"Voice Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1664,-464],"parameters":{"jsonSchemaExample":"[\n  { \"voiceover\": \"Line 1...\" },\n  { \"voiceover\": \"Line 2...\" },\n  { \"voiceover\": \"Line 3...\" },\n  { \"voiceover\": \"Line 4...\" },\n  { \"voiceover\": \"Line 5...\" },\n  { \"voiceover\": \"Line 6...\" }\n]"},"typeVersion":1.2},{"id":"5e938066-1637-492d-b731-a44e559b20be","name":"Narrative Director","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1520,-1296],"parameters":{"text":"=You are a creative scriptwriter tasked with generating a vivid, consistent cinematic story.\n\nYour task:\n\t1.\tRead the story concept provided here:\nInput (raw text from Slack via Webhook):\n{{ $('Creative Brief Intake').item.json.body.text }}\n\t2.\tWrite a concise story outline summary of exactly 30 words, ensuring it captures the essence of the input.\n\t3.\tCreate six detailed scene descriptions, each fewer than 20 words, that visually capture the main events.\n\t4.\tStrict rules:\n\t•\tAlways reference the main character exactly as described in the input (no pronouns, no abbreviations).\n\t•\tMaintain the same tone and style throughout (cinematic, consistent atmosphere).\n\t•\tEnsure scenes follow a logical narrative flow from beginning to climax to resolution.\n\t•\tEmphasize sensory details (setting, mood, lighting, sound).\n\t5.\tOutput format (must follow this exactly):\n\nStory Summary: {insert your 30-word outline here}\n\nScene 1: {insert scene description here}\nScene 2: {insert scene description here}\nScene 3: {insert scene description here}\nScene 4: {insert scene description here}\nScene 5: {insert scene description here}\nScene 6: {insert scene description here}","promptType":"define"},"typeVersion":1.5},{"id":"f59ad576-5776-458d-9927-c9738faac131","name":"Visual Art Director","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1520,-944],"parameters":{"text":"=You are an AI that generates vivid, cinematic image prompts for a storyboard.\n\nInstructions:\n1. Read the story text from: {{ $json.text }}.\n2. Identify exactly six distinct scenes in the story.\n3. Always reference the main character exactly as given in: {{ $json.text }}.\n4. For each scene, create one descriptive prompt with:\n   - Maximum 50 words\n   - Strong continuity across all scenes (same main character design, same overall style, same time period)\n   - Evocative imagery: setting, lighting, atmosphere, cinematic composition\n   - Avoid pronouns; always repeat the full main character description\n   - Add a consistent visual style tag: “cinematic, painterly realism, muted colors, dramatic lighting”\n\nOutput:\nReturn only valid JSON in this format, with six objects:\n\n[\n  { \"image_prompt\": \"Scene 1 prompt...\" },\n  { \"image_prompt\": \"Scene 2 prompt...\" },\n  { \"image_prompt\": \"Scene 3 prompt...\" },\n  { \"image_prompt\": \"Scene 4 prompt...\" },\n  { \"image_prompt\": \"Scene 5 prompt...\" },\n  { \"image_prompt\": \"Scene 6 prompt...\" }\n]\n\nDo not include explanations, disclaimers, or additional text outside the JSON.","promptType":"define","hasOutputParser":true},"typeVersion":1.5},{"id":"cc5ba781-7516-49bc-8c04-85a5935ee439","name":"Score Composer","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1520,-640],"parameters":{"text":"=Generate a descriptive prompt for a background music track that matches the tone, mood, and pacing of the story provided: {{ $json.text }}.  \n\nYour response must be returned in the following JSON format:\n{\n  \"music_prompt\": \"insert music prompt\"\n}","promptType":"define","hasOutputParser":true},"typeVersion":1.5},{"id":"0690bae9-f5cc-4611-8d0e-68af19253fcc","name":"Narration Artist","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1520,-336],"parameters":{"text":"=Your task is to create voiceover scripts for each of the 6 scenes, no longer than 5 seconds each, using the story from:  {{ $json.text }}\n\n\nReturn the output in **exactly** this JSON format (with the same number of objects as the number of scenes):\n[\n  { \"voiceover\": \"Line 1...\" },\n  { \"voiceover\": \"Line 2...\" },\n  ...\n]","promptType":"define","hasOutputParser":true},"typeVersion":1.5},{"id":"95844a55-56aa-4ec9-a3f2-9705b3e740c0","name":"Scene Breakdown","type":"n8n-nodes-base.splitOut","position":[1808,-944],"parameters":{"include":"allOtherFields","options":{},"fieldToSplitOut":"=output"},"typeVersion":1,"alwaysOutputData":false},{"id":"5f98ddde-b441-4ddd-98ca-601d49c0a479","name":"Concept Art Studio","type":"n8n-nodes-base.httpRequest","position":[2016,-944],"parameters":{"url":"https://api.replicate.com/v1/models/black-forest-labs/flux-pro/predictions","method":"POST","options":{},"jsonBody":"={\n  \"input\": {\n    \"width\": 768,\n    \"height\": 1280,\n    \"prompt\": \"{{ $json.output.image_prompt }}\"\n  }\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"Prefer","value":"wait"}]}},"typeVersion":4.2},{"id":"d942e3a5-144d-42d6-af5b-92673ed61550","name":"Render Queue","type":"n8n-nodes-base.wait","position":[2256,-944],"webhookId":"6da9199c-87a5-439e-9625-bedde28f735b","parameters":{"amount":30},"typeVersion":1.1},{"id":"c394a2dc-434e-4aa9-88bc-2eaf7ad2c540","name":"Asset Fetcher","type":"n8n-nodes-base.httpRequest","position":[2464,-944],"parameters":{"url":"={{ $json.output }}","options":{}},"typeVersion":4.2},{"id":"8c442a46-a43e-4a77-8d9a-d55acd58f242","name":"Storyboard Assembler","type":"n8n-nodes-base.httpRequest","position":[2656,-944],"parameters":{"url":"https://api.dev.runwayml.com/v1/image_to_video","method":"POST","options":{},"jsonBody":"={\n  \"model\": \"gen4_turbo\",\n  \"ratio\": \"720:1280\",\n  \"duration\": 5,\n  \"promptText\": \"{{ $json.input.prompt }}\",\n  \"promptImage\": \"{{ $json.output }}\"\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"X-Runway-Version","value":"2024-11-06"}]}},"typeVersion":4.2},{"id":"aa52ece4-5706-4f28-ac9b-f5103049ffb0","name":"Encoding Queue","type":"n8n-nodes-base.wait","position":[2896,-944],"webhookId":"10f14749-0c6c-4f1c-b062-ed820fc2873d","parameters":{"unit":"minutes","amount":4},"typeVersion":1.1},{"id":"0e28f2c9-daaf-4d4a-ac7e-26ec2e9de9b1","name":"Media Retriever","type":"n8n-nodes-base.httpRequest","position":[3072,-944],"parameters":{"url":"=https://api.dev.runwayml.com/v1/tasks/{{ $json.id }}","options":{},"sendHeaders":true,"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"X-Runway-Version","value":"2024-11-06"}]}},"typeVersion":4.2},{"id":"99eb7ad3-1632-4d12-9d4f-f19fe120a788","name":"Metadata Curator","type":"n8n-nodes-base.set","position":[3248,-944],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5e18b7c0-0068-480d-9e6f-19c0c8185cd6","name":"=video{{$itemIndex+1}}","type":"string","value":"={{ $json.output[0] }}"}]}},"typeVersion":3.4},{"id":"b34d198a-3e07-44c8-a0d6-2ab3200ceb2d","name":"Orchestration Engine","type":"n8n-nodes-base.httpRequest","position":[1808,-640],"parameters":{"url":"https://api.replicate.com/v1/predictions","method":"POST","options":{},"jsonBody":"={\n  \"version\": \"96af46316252ddea4c6614e31861876183b59dce84bad765f38424e87919dd85\",\n  \"input\": {\n    \"prompt\": \"{{ $json.output.music_prompt }}\",\n    \"duration\": 30\n  }\n} ","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"Prefer","value":"wait"}]}},"typeVersion":4.2},{"id":"818a7283-4bc0-48cd-ac98-0efffb489579","name":"Track Data Manager","type":"n8n-nodes-base.set","position":[2016,-640],"parameters":{"options":{},"assignments":{"assignments":[{"id":"a4a362c1-78b7-4ada-bc34-8dc6574de6d0","name":"bgm","type":"string","value":"={{ $json.urls.stream }}"}]}},"typeVersion":3.4},{"id":"ac26f143-9b0d-4a95-bc99-c3665b4a70e3","name":"Dialogue Segmenter","type":"n8n-nodes-base.splitOut","position":[1808,-336],"parameters":{"options":{},"fieldToSplitOut":"output"},"typeVersion":1},{"id":"13d97b68-aa75-4130-8c67-bbe0860a9772","name":"Line Delivery Manager","type":"n8n-nodes-base.splitInBatches","position":[2016,-336],"parameters":{"options":{}},"typeVersion":3},{"id":"8036be89-da52-4089-95a3-618d576a29ec","name":"Voice Synthesis Studio","type":"n8n-nodes-base.httpRequest","position":[2256,-320],"parameters":{"url":"https://api.elevenlabs.io/v1/text-to-speech/cgSgspJ2msm6clMCkdW9","method":"POST","options":{},"sendBody":true,"sendQuery":true,"authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"text","value":"={{ $json['voiceover'] }}"},{"name":"model_id","value":"eleven_multilingual_v2"}]},"genericAuthType":"httpHeaderAuth","queryParameters":{"parameters":[{"name":"output_format","value":"mp3_44100_128"}]}},"typeVersion":4.2},{"id":"b6de8fa6-ef4a-476c-9289-11759468cd60","name":"Creative Archive","type":"n8n-nodes-base.notion","position":[3440,-1296],"parameters":{"title":"=Slack Brief - {{$json[\"body\"][\"user_name\"]}} - {{$json[\"body\"][\"channel_name\"]}}","pageId":{"__rl":true,"mode":"url","value":"https://www.notion.so/tuguidragos/test"},"blockUi":{"blockValues":[{"textContent":"={{$json[\"body\"][\"text\"]}}"}]},"options":{}},"typeVersion":2.2},{"id":"933035e0-c9a9-4cb3-8047-f685b4eefb6d","name":"Creative Brief Intake","type":"n8n-nodes-base.webhook","position":[3104,-1296],"webhookId":"cf398c7c-27cd-459e-a09a-54183f76daff","parameters":{"path":"storytelling","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"d24f6a57-9e04-4e50-91be-d6b59364c33d","name":"Production Sync Hub","type":"n8n-nodes-base.merge","position":[4032,-960],"parameters":{"mode":"combine","options":{"includeUnpaired":true},"combineBy":"combineByPosition","numberInputs":4},"typeVersion":3},{"id":"1273d850-726d-4366-91af-270be2e0928b","name":"Post-Production Orchestrator","type":"n8n-nodes-base.code","position":[3664,-720],"parameters":{"jsCode":"const acc = {};\nfor (const item of $input.all()) {\n  Object.assign(acc, item.json);\n}\nconst out = {\n  voiceover0: acc.voiceover0 || \"\",\n  voiceover1: acc.voiceover1 || \"\",\n  voiceover2: acc.voiceover2 || \"\",\n  voiceover3: acc.voiceover3 || \"\",\n  voiceover4: acc.voiceover4 || \"\",\n  voiceover5: acc.voiceover5 || \"\",\n  video1: acc.video1 || \"\",\n  video2: acc.video2 || \"\",\n  video3: acc.video3 || \"\",\n  video4: acc.video4 || \"\",\n  video5: acc.video5 || \"\",\n  video6: acc.video6 || \"\",\n  bgm: acc.bgm || \"\"\n};\nreturn [{ json: out }];"},"typeVersion":2},{"id":"3d6ba423-c353-4231-93d4-762458223ef9","name":"Final Cut Renderer","type":"n8n-nodes-base.httpRequest","position":[3840,-720],"parameters":{"url":"https://api.creatomate.com/v1/renders","method":"POST","options":{},"jsonBody":"={\n  \"template_id\": \"YOUR_id\",\n  \"modifications\": {\n    \"Music.source\": \"{{ $json.bgm }}\",\n    \"voice0.source\": \"{{ $json.voiceover0 }}\",\n    \"voice1.source\": \"{{ $json.voiceover1 }}\",\n    \"voice2.source\": \"{{ $json.voiceover2 }}\",\n    \"voice3.source\": \"{{ $json.voiceover3 }}\",\n    \"voice4.source\": \"{{ $json.voiceover4 }}\",\n    \"voice5.source\": \"{{ $json.voiceover5 }}\",\n    \"video1.source\": \"{{ $json.video1 }}\",\n    \"video2.source\": \"{{ $json.video2 }}\",\n    \"video3.source\": \"{{ $json.video3 }}\",\n    \"video4.source\": \"{{ $json.video4 }}\",\n    \"video5.source\": \"{{ $json.video5 }}\",\n    \"video6.source\": \"{{ $json.video6 }}\"\n  }\n}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"f8dad66d-85b1-49f9-8f05-2989666b51c5","name":"Rendering Buffer","type":"n8n-nodes-base.wait","position":[4032,-720],"webhookId":"eec1a382-929e-4f77-800c-a19e2ee631d9","parameters":{"unit":"minutes","amount":2},"typeVersion":1.1},{"id":"58c64f4e-c3a4-4cfa-8707-9e3b56b764fb","name":"Final Delivery Fetcher","type":"n8n-nodes-base.httpRequest","position":[3664,-432],"parameters":{"url":"=https://api.creatomate.com/v1/renders/{{ $json.id }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"b1ee2dcc-ec4c-4397-afb5-4aaf9ab787ee","name":"Release Announcement","type":"n8n-nodes-base.slack","position":[4048,-432],"webhookId":"aa9515f5-1830-4182-ba04-d80ffd82a4d6","parameters":{"text":"=🎬 Here’s your rendered video: {{$json[\"url\"]}}","select":"channel","channelId":{"__rl":true,"mode":"id","value":"YOUR_id"},"otherOptions":{"includeLinkToWorkflow":false}},"typeVersion":2.3},{"id":"0242aa75-3bf3-43e7-96be-646b77214999","name":"Voiceover Collector","type":"n8n-nodes-base.merge","position":[2464,-336],"parameters":{},"typeVersion":3.2},{"id":"55ce19ea-ade5-464f-a321-ea7af548bcd8","name":"Voice Upload Loop","type":"n8n-nodes-base.splitInBatches","position":[2656,-336],"parameters":{"options":{}},"typeVersion":3},{"id":"3c9223a8-23ca-40d5-9560-2541441f1db2","name":"File Renamer","type":"n8n-nodes-base.noOp","position":[2896,-320],"parameters":{},"typeVersion":1},{"id":"4d2afbe3-5810-4cda-b2d7-af7394981938","name":"Dropbox Uploader","type":"n8n-nodes-base.dropbox","position":[3072,-352],"parameters":{"path":"=/voiceovers/voice_{{$itemIndex+1}}.mp3","binaryData":true},"typeVersion":1},{"id":"ae58150c-79d0-4afb-a5f6-08c6abab2be4","name":"Dropbox Link Generator","type":"n8n-nodes-base.httpRequest","position":[3248,-352],"parameters":{"url":"https://api.dropboxapi.com/2/files/get_temporary_link","method":"POST","options":{},"jsonBody":"={ \"path\": \"{{$json.path_lower}}\" }","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"oAuth2Api"},"typeVersion":4.2},{"id":"502b74ce-a7a2-41be-88a8-55f4a416fe21","name":"Voiceover Mapper","type":"n8n-nodes-base.set","position":[3440,-352],"parameters":{"include":"selected","options":{"stripBinary":true},"assignments":{"assignments":[{"id":"343fdf6d-f578-4295-975d-fff8be2d277f","name":"=voiceover{{$itemIndex}}","type":"string","value":"={{ $json.link }}"}]},"includeOtherFields":true},"typeVersion":3.4}],"active":true,"settings":{"callerPolicy":"workflowsFromSameOwner","executionOrder":"v1"},"connections":{"File Renamer":{"main":[[{"node":"Voice Upload Loop","type":"main","index":0}]]},"Render Queue":{"main":[[{"node":"Asset Fetcher","type":"main","index":0}]]},"Score Parser":{"ai_outputParser":[[{"node":"Score Composer","type":"ai_outputParser","index":0}]]},"Voice Parser":{"ai_outputParser":[[{"node":"Narration Artist","type":"ai_outputParser","index":0}]]},"Asset Fetcher":{"main":[[{"node":"Storyboard Assembler","type":"main","index":0}]]},"Visual Parser":{"ai_outputParser":[[{"node":"Visual Art Director","type":"ai_outputParser","index":0}]]},"Encoding Queue":{"main":[[{"node":"Media Retriever","type":"main","index":0}]]},"Score Composer":{"main":[[{"node":"Orchestration Engine","type":"main","index":0}]]},"Score LLM Core":{"ai_languageModel":[[{"node":"Score Composer","type":"ai_languageModel","index":0}]]},"Voice LLM Core":{"ai_languageModel":[[{"node":"Narration Artist","type":"ai_languageModel","index":0}]]},"Media Retriever":{"main":[[{"node":"Metadata Curator","type":"main","index":0}]]},"Scene Breakdown":{"main":[[{"node":"Concept Art Studio","type":"main","index":0}]]},"Visual LLM Core":{"ai_languageModel":[[{"node":"Visual Art Director","type":"ai_languageModel","index":0}]]},"Creative Archive":{"main":[[{"node":"Narrative Director","type":"main","index":0},{"node":"Production Sync Hub","type":"main","index":0}]]},"Dropbox Uploader":{"main":[[{"node":"Dropbox Link Generator","type":"main","index":0}]]},"Metadata Curator":{"main":[[{"node":"Production Sync Hub","type":"main","index":1}]]},"Narration Artist":{"main":[[{"node":"Dialogue Segmenter","type":"main","index":0}]]},"Rendering Buffer":{"main":[[{"node":"Final Delivery Fetcher","type":"main","index":0}]]},"Voiceover Mapper":{"main":[[{"node":"Production Sync Hub","type":"main","index":3}]]},"Voice Upload Loop":{"main":[[{"node":"Dropbox Uploader","type":"main","index":0}],[{"node":"File Renamer","type":"main","index":0}]]},"Concept Art Studio":{"main":[[{"node":"Render Queue","type":"main","index":0}]]},"Dialogue Segmenter":{"main":[[{"node":"Line Delivery Manager","type":"main","index":0}]]},"Final Cut Renderer":{"main":[[{"node":"Rendering Buffer","type":"main","index":0}]]},"Narrative Director":{"main":[[{"node":"Visual Art Director","type":"main","index":0},{"node":"Score Composer","type":"main","index":0},{"node":"Narration Artist","type":"main","index":0}]]},"Track Data Manager":{"main":[[{"node":"Production Sync Hub","type":"main","index":2}]]},"Narrative LLM Core ":{"ai_languageModel":[[{"node":"Narrative Director","type":"ai_languageModel","index":0}]]},"Production Sync Hub":{"main":[[{"node":"Post-Production Orchestrator","type":"main","index":0}]]},"Visual Art Director":{"main":[[{"node":"Scene Breakdown","type":"main","index":0}]]},"Voiceover Collector":{"main":[[{"node":"Voice Upload Loop","type":"main","index":0}]]},"Orchestration Engine":{"main":[[{"node":"Track Data Manager","type":"main","index":0}]]},"Storyboard Assembler":{"main":[[{"node":"Encoding Queue","type":"main","index":0}]]},"Creative Brief Intake":{"main":[[{"node":"Creative Archive","type":"main","index":0}]]},"Line Delivery Manager":{"main":[[{"node":"Voiceover Collector","type":"main","index":0}],[{"node":"Voice Synthesis Studio","type":"main","index":0}]]},"Dropbox Link Generator":{"main":[[{"node":"Voiceover Mapper","type":"main","index":0}]]},"Final Delivery Fetcher":{"main":[[{"node":"Release Announcement","type":"main","index":0}]]},"Voice Synthesis Studio":{"main":[[{"node":"Line Delivery Manager","type":"main","index":0}]]},"Post-Production Orchestrator":{"main":[[{"node":"Final Cut Renderer","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Crée un workflow n8n pour: Good to know: This workflow automatically processes incoming emails (you can filter them base on your needs) and creates concise AI-powered summaries, then logs them to a Google Sheets spreadsheet for easy tracking and analysis. Who is this for? ➖Business professionals who receive many emails and need quick summaries ➖Customer service teams tracking email communications ➖Project managers monitoring email correspondence ➖Anyone who wants to automatically organize and summarize their email communications What problem is this workflow solving? This workflow solves the problem of email overload by automatically reading incoming emails, generating concise summaries using AI, and organizing them in a structured format. It eliminates the need to manually read through every email to understand the

[Assistant]
<thinking>
**Analyse du besoin**: Good to know:

This workflow automatically processes incoming emails (you can filter them base on your needs) and creates concise AI-powered summaries, then logs them to a Google Sheets spreadsheet fo...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 6 nodes utilisant ai, google, email.
Structure: logique conditionnelle, code personnalisé, intégration IA.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"meta":{"instanceId":"a62a87f42cfae9ad2ff7f238a8854ab1946946f1bd38cb9d8b7442e62435a1d5"},"nodes":[{"id":"75cc1f51-da2d-411a-bd64-7c574c5d5d11","name":"Log to Google Sheets1","type":"n8n-nodes-base.googleSheets","position":[980,1560],"parameters":{"columns":{"value":{"Date":"={{ $('info1').item.json.Date }}","summary":"={{ $json.output }}","subject ":"={{ $('info1').item.json.Subject }}","sender name":"={{ $('info1').item.json[\"Sender Name\"] }}","sender email":"={{ $('info1').item.json[\"Sender Email\"] }}"},"schema":[{"id":"sender name","type":"string","display":true,"removed":false,"required":false,"displayName":"sender name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sender email","type":"string","display":true,"removed":false,"required":false,"displayName":"sender email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"subject ","type":"string","display":true,"removed":false,"required":false,"displayName":"subject ","defaultMatch":false,"canBeUsedToMatch":true},{"id":"summary","type":"string","display":true,"removed":false,"required":false,"displayName":"summary","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date","type":"string","display":true,"removed":false,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["sender name"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"YOUR_GOOGLE_SHEETS_URL","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"url","value":"YOUR_GOOGLE_SHEETS_DOCUMENT_ID"}},"typeVersion":4},{"id":"b5d3d06e-116f-4c40-bbd0-c22cd622af96","name":"AI Agent1","type":"@n8n/n8n-nodes-langchain.agent","position":[400,1500],"parameters":{"text":"=Please read this email \"{{ $json.Content }}\" and provide a very short, concise summary containing only the most important information. Keep the summary as brief as possible without losing essential details. ","options":{},"promptType":"define"},"typeVersion":2},{"id":"a69f2251-947b-444c-b314-d510870b6583","name":"Gmail Trigger","type":"n8n-nodes-base.gmailTrigger","position":[-600,1600],"parameters":{"simple":false,"filters":{"labelIds":["CATEGORY_PERSONAL"]},"options":{"downloadAttachments":false},"pollTimes":{"item":[{"mode":"=everyHour","minute":59}]}},"typeVersion":1},{"id":"a7024314-9303-42f3-a854-dcb385c991f7","name":"Check Valid Email","type":"n8n-nodes-base.if","position":[60,1600],"parameters":{"options":{},"conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c1d2e3f4-g5h6-i7j8-k9l0-m1n2o3p4q5r6","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json[\"Sender Name\"] }}","rightValue":"YOUR_SENDER_NAME_FILTER"}]}},"typeVersion":2},{"id":"eab995bb-43bf-4c23-9cc1-41b80a9deb0a","name":"Groq Chat Model1","type":"@n8n/n8n-nodes-langchain.lmChatGroq","position":[260,2000],"parameters":{"model":"llama-3.1-8b-instant","options":{}},"typeVersion":1},{"id":"d408d58f-c818-4601-8109-f90bb152e381","name":"info1","type":"n8n-nodes-base.code","position":[-260,1600],"parameters":{"jsCode":"const items = [];\n\nfor (const item of $input.all()) {\n  const emailData = item.json;\n  \n  // Handle sender information (unchanged)\n  let senderEmail = '';\n  let senderName = '';\n\n  if (emailData.from?.value?.[0]) {\n    senderEmail = emailData.from.value[0].address || '';\n    senderName = emailData.from.value[0].name || senderEmail;\n  } else if (emailData.from?.text) {\n    const emailMatch = emailData.from.text.match(/<([^>]+)>/) || \n                      emailData.from.text.match(/([^\\s]+@[^\\s]+)/);\n    senderEmail = emailMatch ? emailMatch[1] : emailData.from.text;\n    \n    const nameMatch = emailData.from.text.match(/^([^<]+)/);\n    senderName = nameMatch ? nameMatch[1].trim().replace(/\\\"/g, '') : senderEmail;\n  }\n\n  // Format date (unchanged)\n  const receivedDate = new Date(emailData.date || emailData.receivedTime);\n  const formattedDate = receivedDate.toLocaleString('en-US', {\n    year: 'numeric',\n    month: '2-digit',\n    day: '2-digit',\n    hour: '2-digit',\n    minute: '2-digit',\n    hour12: true\n  });\n\n  // FIXED CONTENT EXTRACTION\n  let emailContent = '';\n  \n  // 1. First priority: Plain text version\n  if (emailData.text) {\n    emailContent = emailData.text;\n  } \n  // 2. Second priority: HTML version (convert to plain text)\n  else if (emailData.html) {\n    emailContent = emailData.html\n      .replace(/<style[^>]*>.*?<\\/style>/gs, '')  // Remove CSS\n      .replace(/<[^>]*>/g, ' ')                   // Strip HTML tags\n      .replace(/\\s+/g, ' ')                       // Collapse whitespace\n      .trim();\n  }\n  // 3. Fallback to other possible fields\n  else if (emailData.body || emailData.textPlain || emailData.textHtml) {\n    emailContent = emailData.body || emailData.textPlain || emailData.textHtml;\n  }\n\n  // Truncate content if too long\n  const maxContentLength = 5000;\n  if (emailContent.length > maxContentLength) {\n    emailContent = emailContent.substring(0, maxContentLength) + '... [truncated]';\n  }\n\n  // Create row data\n  const rowData = {\n    'Date': formattedDate,\n    'Sender Name': senderName,\n    'Sender Email': senderEmail,\n    'Subject': emailData.subject || 'No Subject',\n    'Content': emailContent,\n    //'Message ID': emailData.messageId || '',\n    'Has Attachments': emailData.attachments?.length > 0 ? 'Yes' : 'No'\n  };\n  \n  items.push({ json: rowData });\n}\n\nreturn items;"},"typeVersion":2}],"connections":{"info1":{"main":[[{"node":"Check Valid Email","type":"main","index":0}]]},"AI Agent1":{"main":[[{"node":"Log to Google Sheets1","type":"main","index":0}]]},"Gmail Trigger":{"main":[[{"node":"info1","type":"main","index":0}]]},"Groq Chat Model1":{"ai_languageModel":[[{"node":"AI Agent1","type":"ai_languageModel","index":0}]]},"Check Valid Email":{"main":[[{"node":"AI Agent1","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Génère un workflow n8n: Automate Email Filtering & AI Summarization. 100% free & effective, works 7/24

[Assistant]
<thinking>
**Analyse du besoin**: Good to know:

This workflow automatically processes incoming emails (you can filter them base on your needs) and creates concise AI-powered summaries, then logs them to a Google Sheets spreadsheet fo...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 6 nodes utilisant ai, google, email.
Structure: logique conditionnelle, code personnalisé, intégration IA.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"meta":{"instanceId":"a62a87f42cfae9ad2ff7f238a8854ab1946946f1bd38cb9d8b7442e62435a1d5"},"nodes":[{"id":"75cc1f51-da2d-411a-bd64-7c574c5d5d11","name":"Log to Google Sheets1","type":"n8n-nodes-base.googleSheets","position":[980,1560],"parameters":{"columns":{"value":{"Date":"={{ $('info1').item.json.Date }}","summary":"={{ $json.output }}","subject ":"={{ $('info1').item.json.Subject }}","sender name":"={{ $('info1').item.json[\"Sender Name\"] }}","sender email":"={{ $('info1').item.json[\"Sender Email\"] }}"},"schema":[{"id":"sender name","type":"string","display":true,"removed":false,"required":false,"displayName":"sender name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sender email","type":"string","display":true,"removed":false,"required":false,"displayName":"sender email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"subject ","type":"string","display":true,"removed":false,"required":false,"displayName":"subject ","defaultMatch":false,"canBeUsedToMatch":true},{"id":"summary","type":"string","display":true,"removed":false,"required":false,"displayName":"summary","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date","type":"string","display":true,"removed":false,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["sender name"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"YOUR_GOOGLE_SHEETS_URL","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"url","value":"YOUR_GOOGLE_SHEETS_DOCUMENT_ID"}},"typeVersion":4},{"id":"b5d3d06e-116f-4c40-bbd0-c22cd622af96","name":"AI Agent1","type":"@n8n/n8n-nodes-langchain.agent","position":[400,1500],"parameters":{"text":"=Please read this email \"{{ $json.Content }}\" and provide a very short, concise summary containing only the most important information. Keep the summary as brief as possible without losing essential details. ","options":{},"promptType":"define"},"typeVersion":2},{"id":"a69f2251-947b-444c-b314-d510870b6583","name":"Gmail Trigger","type":"n8n-nodes-base.gmailTrigger","position":[-600,1600],"parameters":{"simple":false,"filters":{"labelIds":["CATEGORY_PERSONAL"]},"options":{"downloadAttachments":false},"pollTimes":{"item":[{"mode":"=everyHour","minute":59}]}},"typeVersion":1},{"id":"a7024314-9303-42f3-a854-dcb385c991f7","name":"Check Valid Email","type":"n8n-nodes-base.if","position":[60,1600],"parameters":{"options":{},"conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c1d2e3f4-g5h6-i7j8-k9l0-m1n2o3p4q5r6","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json[\"Sender Name\"] }}","rightValue":"YOUR_SENDER_NAME_FILTER"}]}},"typeVersion":2},{"id":"eab995bb-43bf-4c23-9cc1-41b80a9deb0a","name":"Groq Chat Model1","type":"@n8n/n8n-nodes-langchain.lmChatGroq","position":[260,2000],"parameters":{"model":"llama-3.1-8b-instant","options":{}},"typeVersion":1},{"id":"d408d58f-c818-4601-8109-f90bb152e381","name":"info1","type":"n8n-nodes-base.code","position":[-260,1600],"parameters":{"jsCode":"const items = [];\n\nfor (const item of $input.all()) {\n  const emailData = item.json;\n  \n  // Handle sender information (unchanged)\n  let senderEmail = '';\n  let senderName = '';\n\n  if (emailData.from?.value?.[0]) {\n    senderEmail = emailData.from.value[0].address || '';\n    senderName = emailData.from.value[0].name || senderEmail;\n  } else if (emailData.from?.text) {\n    const emailMatch = emailData.from.text.match(/<([^>]+)>/) || \n                      emailData.from.text.match(/([^\\s]+@[^\\s]+)/);\n    senderEmail = emailMatch ? emailMatch[1] : emailData.from.text;\n    \n    const nameMatch = emailData.from.text.match(/^([^<]+)/);\n    senderName = nameMatch ? nameMatch[1].trim().replace(/\\\"/g, '') : senderEmail;\n  }\n\n  // Format date (unchanged)\n  const receivedDate = new Date(emailData.date || emailData.receivedTime);\n  const formattedDate = receivedDate.toLocaleString('en-US', {\n    year: 'numeric',\n    month: '2-digit',\n    day: '2-digit',\n    hour: '2-digit',\n    minute: '2-digit',\n    hour12: true\n  });\n\n  // FIXED CONTENT EXTRACTION\n  let emailContent = '';\n  \n  // 1. First priority: Plain text version\n  if (emailData.text) {\n    emailContent = emailData.text;\n  } \n  // 2. Second priority: HTML version (convert to plain text)\n  else if (emailData.html) {\n    emailContent = emailData.html\n      .replace(/<style[^>]*>.*?<\\/style>/gs, '')  // Remove CSS\n      .replace(/<[^>]*>/g, ' ')                   // Strip HTML tags\n      .replace(/\\s+/g, ' ')                       // Collapse whitespace\n      .trim();\n  }\n  // 3. Fallback to other possible fields\n  else if (emailData.body || emailData.textPlain || emailData.textHtml) {\n    emailContent = emailData.body || emailData.textPlain || emailData.textHtml;\n  }\n\n  // Truncate content if too long\n  const maxContentLength = 5000;\n  if (emailContent.length > maxContentLength) {\n    emailContent = emailContent.substring(0, maxContentLength) + '... [truncated]';\n  }\n\n  // Create row data\n  const rowData = {\n    'Date': formattedDate,\n    'Sender Name': senderName,\n    'Sender Email': senderEmail,\n    'Subject': emailData.subject || 'No Subject',\n    'Content': emailContent,\n    //'Message ID': emailData.messageId || '',\n    'Has Attachments': emailData.attachments?.length > 0 ? 'Yes' : 'No'\n  };\n  \n  items.push({ json: rowData });\n}\n\nreturn items;"},"typeVersion":2}],"connections":{"info1":{"main":[[{"node":"Check Valid Email","type":"main","index":0}]]},"AI Agent1":{"main":[[{"node":"Log to Google Sheets1","type":"main","index":0}]]},"Gmail Trigger":{"main":[[{"node":"info1","type":"main","index":0}]]},"Groq Chat Model1":{"ai_languageModel":[[{"node":"AI Agent1","type":"ai_languageModel","index":0}]]},"Check Valid Email":{"main":[[{"node":"AI Agent1","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Crée des workflows JSON complets et fonctionnels.
Utilise <thinking> pour expliquer ton raisonnement avant de générer le JSON.
Structure ton thinking: analyse du besoin, choix du trigger, architecture, flux de données, points d'attention.

[User] Crée un workflow n8n pour: 💡 How It Works: ⏰ Triggers daily at 6:00 AM 📊 Fetches one random question from your Google Sheet 🧠 Formats question, options, correct answer, and explanation 📤 Sends it to: 📧 Email 💬 Telegram (via Bot) 📱 WhatsApp/SMS (via Twilio) 🔧 What You Need to Configure: YOUR_GOOGLE_SHEET_ID → your sheet with columns: question, optionA, optionB, optionC, optionD, correctAnswer, explanation Email credentials (SMTP) Telegram Bot Token & Chat ID Twilio phone numbers and credentials

[Assistant]
<thinking>
**Analyse du besoin**: 💡 How It Works:

⏰ Triggers daily at 6:00 AM

📊 Fetches one random question from your Google Sheet

🧠 Formats question, options, correct answer, and explanation

📤 Sends it to:

📧 Email

💬 Telegram (v...

**Choix du trigger**: Sélection basée sur le cas d'usage décrit.

**Architecture**: 6 nodes utilisant google.
Structure: flux standard.

**Flux de données**: Connexions définies entre les nodes pour assurer le passage des données.

**Points d'attention**: Vérifier les credentials, tester chaque node individuellement.
</thinking>

{"name":"Daily Govt Exam Quiz Delivery","nodes":[{"name":"Daily Trigger","type":"n8n-nodes-base.cron","position":[250,300],"parameters":{"cronExpression":"0 6 * * *"},"typeVersion":1},{"name":"Fetch Question","type":"n8n-nodes-base.googleSheets","position":[450,300],"parameters":{"range":"Sheet1!A2:F","sheetId":"YOUR_GOOGLE_SHEET_ID","valueRenderMode":"FORMATTED_VALUE"},"typeVersion":2},{"name":"Format Quiz","type":"n8n-nodes-base.function","position":[650,300],"parameters":{"functionCode":"\nconst data = items[Math.floor(Math.random() * items.length)].json;\nreturn [{\n  json: {\n    question: data.question,\n    options: `A. ${data.optionA}\\nB. ${data.optionB}\\nC. ${data.optionC}\\nD. ${data.optionD}`,\n    correct: data.correctAnswer,\n    explanation: data.explanation || \"No explanation provided.\",\n    fullText: `🧠 *Daily Quiz Question*\\n\\n*Q:* ${data.question}\\n\\n${data.optionA ? \"A. \" + data.optionA : \"\"}\\n${data.optionB ? \"B. \" + data.optionB : \"\"}\\n${data.optionC ? \"C. \" + data.optionC : \"\"}\\n${data.optionD ? \"D. \" + data.optionD : \"\"}\\n\\n*Answer:* ${data.correctAnswer}\\n📘 Explanation: ${data.explanation || \"N/A\"}`\n  }\n}];"},"typeVersion":1},{"name":"Send Email","type":"n8n-nodes-base.emailSend","position":[850,100],"parameters":{"text":"={{$json[\"fullText\"]}}","subject":"Your Daily Govt Exam Quiz","toEmail":"candidate@example.com","fromEmail":"yourname@example.com"},"typeVersion":1},{"name":"Send to Telegram","type":"n8n-nodes-base.telegram","position":[850,300],"parameters":{"text":"={{$json[\"fullText\"]}}","chatId":"YOUR_TELEGRAM_CHAT_ID"},"typeVersion":1},{"name":"Send via Twilio","type":"n8n-nodes-base.twilio","position":[850,500],"parameters":{"to":"+919999999999","from":"+1234567890","message":"={{$json[\"fullText\"]}}"},"typeVersion":1}],"active":false,"connections":{"Format Quiz":{"main":[[{"node":"Send Email","type":"main","index":0}],[{"node":"Send to Telegram","type":"main","index":0}],[{"node":"Send via Twilio","type":"main","index":0}]]},"Daily Trigger":{"main":[[{"node":"Fetch Question","type":"main","index":0}]]},"Fetch Question":{"main":[[{"node":"Format Quiz","type":"main","index":0}]]}}}