[System]
Tu es un expert n8n. Diagnostique et corrige les erreurs dans les workflows.
Utilise <thinking> pour tracer l'origine du problème étape par étape.
Explique clairement la cause et la solution.
Retourne le workflow corrigé.

[User]
Mon workflow ne fonctionne pas.

Workflow:
```json
{"id":"CfdF2XtXC68iJ6Hr","meta":{"instanceId":"31e69f7f4a77bf465b805824e303232f0227212ae922d12133a0f96ffeab4fef","templateCredsSetupCompleted":true},"name":"\u2728\ud83e\udd16Automated AI Powered Social Media Content Factory for  X + Facebook + Instagram + LinkedIn","tags":[],"nodes":[{"id":"9b6e2038-9f65-4e0f-b13d-6c09e8224ed6","name":"Social Media Content","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[560,-540],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"description\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"platform_posts\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"LinkedIn\": {\n\t\t\t\t\t\"type\": \"object\",\n\t\t\t\t\t\"properties\": {\n                        \"image_suggestion\": {\n                  \t\t\t\"type\": \"string\"\n                  \t\t},\n\t\t\t\t\t\t\"post\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"hashtags\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"call_to_action\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"Instagram\": {\n\t\t\t\t\t\"type\": \"object\",\n\t\t\t\t\t\"properties\": {\n\t\t\t\t\t\t\"image_suggestion\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"caption\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"hashtags\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"emojis\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"call_to_action\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"Fa...
```

Erreur: Type error: expected object but got string at node 'Gmail User for Approval'

[Assistant]
<thinking>
**Analyse de l'erreur**: Type error: expected object but got string at node 'Gmail User for Approval'

**Diagnostic**: Trace du flux de données pour identifier l'origine.

**Cause identifiée**: Problème dans la configuration ou les expressions.

**Solution**: Correction appliquée pour résoudre le problème.
</thinking>

**Problème identifié:** Type de données incorrect dans 'Gmail User for Approval'

**Solution:**
Correction de l'erreur dans le workflow.

**Workflow corrigé:**
{"id":"CfdF2XtXC68iJ6Hr","meta":{"instanceId":"31e69f7f4a77bf465b805824e303232f0227212ae922d12133a0f96ffeab4fef","templateCredsSetupCompleted":true},"name":"✨🤖Automated AI Powered Social Media Content Factory for  X + Facebook + Instagram + LinkedIn","tags":[],"nodes":[{"id":"9b6e2038-9f65-4e0f-b13d-6c09e8224ed6","name":"Social Media Content","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[560,-540],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"description\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"platform_posts\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"LinkedIn\": {\n\t\t\t\t\t\"type\": \"object\",\n\t\t\t\t\t\"properties\": {\n                        \"image_suggestion\": {\n                  \t\t\t\"type\": \"string\"\n                  \t\t},\n\t\t\t\t\t\t\"post\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"hashtags\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"call_to_action\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"Instagram\": {\n\t\t\t\t\t\"type\": \"object\",\n\t\t\t\t\t\"properties\": {\n\t\t\t\t\t\t\"image_suggestion\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"caption\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"hashtags\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"emojis\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"call_to_action\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"Facebook\": {\n\t\t\t\t\t\"type\": \"object\",\n\t\t\t\t\t\"properties\": {\n\t\t\t\t\t\t\"post\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"hashtags\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"call_to_action\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"image_suggestion\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"X-Twitter\": {\n\t\t\t\t\t\"type\": \"object\",\n\t\t\t\t\t\"properties\": {\n                        \"video_suggestion\": {\n                \t\t\t\"type\": \"string\"\n                \t\t},\n                        \"image_suggestion\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"post\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"hashtags\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"character_limit\": {\n\t\t\t\t\t\t\t\"type\": \"integer\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n                \"TikTok\": {\n                \t\"type\": \"object\",\n                \t\"properties\": {\n                \t\t\"video_suggestion\": {\n                \t\t\t\"type\": \"string\"\n                \t\t},\n                \t\t\"caption\": {\n                \t\t\t\"type\": \"string\"\n                \t\t},\n                \t\t\"hashtags\": {\n                \t\t\t\"type\": \"array\",\n                \t\t\t\"items\": {\n                \t\t\t\t\"type\": \"string\"\n                \t\t\t}\n                \t\t},\n                \t\t\"call_to_action\": {\n                \t\t\t\"type\": \"string\"\n                \t\t}\n                \t}\n                },\n                \"Threads\": {\n                \t\"type\": \"object\",\n                \t\"properties\": {\n                       \"image_suggestion\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n                \t\t\"text_post\": {\n                \t\t\t\"type\": \"string\"\n                \t\t},\n                \t\t\"hashtags\": {\n                \t\t\t\"type\": \"array\",\n                \t\t\t\"items\": {\n                \t\t\t\t\"type\": \"string\"\n                \t\t\t}\n                \t\t},\n                \t\t\"call_to_action\": {\n                \t\t\t\"type\": \"string\"\n                \t\t}\n                \t}\n                },\n                \"YouTube_Shorts\": {\n                  \t\"type\": \"object\",\n                  \t\"properties\": {\n                  \t\t\"video_suggestion\": {\n                  \t\t\t\"type\": \"string\"\n                  \t\t},\n                  \t\t\"title\": {\n                  \t\t\t\"type\": \"string\"\n                  \t\t},\n                          \"description\": {\n                              \"type\": \"string\"\n                          },\n                          \"hashtags\": {\n                              \"type\": \"array\",\n                              \"items\": {\n                                  \"type\": \"string\"\n                              }\n                          },\n                          \"call_to_action\": {\n                              \"type\": \"string\"\n                          }\n                      }\n                  }\n\t\t\t}\n\t\t},\n\t\t\"additional_notes\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}\n"},"typeVersion":1.2},{"id":"a1211873-05ca-48c7-aa93-57d80b37174b","name":"Google Gemini LLM","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","disabled":true,"position":[320,-540],"parameters":{"options":{"temperature":0.4},"modelName":"models/gemini-2.0-flash-exp"},"typeVersion":1},{"id":"14327277-1e66-401d-9c74-8fdb6d76445f","name":"gpt-4o-mini","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1360,-540],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini","cachedResultName":"gpt-4o-mini"},"options":{"responseFormat":"text"}},"typeVersion":1.2},{"id":"9a49454b-f518-4388-82a7-2529addae3e5","name":"gpt-4o","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","disabled":true,"position":[1500,-540],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o","cachedResultName":"gpt-4o"},"options":{"responseFormat":"text"}},"typeVersion":1.2},{"id":"56eb9c72-87fc-42b2-b576-be68b3a8c7d2","name":"gpt-4o LLM","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[180,-540],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o","cachedResultName":"gpt-4o"},"options":{"responseFormat":"text"}},"typeVersion":1.2},{"id":"bf4e6d41-b2be-44fc-8fc7-6dc6bc4ee69a","name":"pollinations.ai","type":"n8n-nodes-base.httpRequest","disabled":true,"position":[980,780],"parameters":{"url":"=https://image.pollinations.ai/prompt/{{$('Social Media Content Factory').item.json.output.description.replaceAll(' ','-').replaceAll(',','').replaceAll('.','') }}","options":{}},"typeVersion":4.2},{"id":"7b5b53eb-85c6-4a90-b209-7bd8d638f237","name":"Merge","type":"n8n-nodes-base.merge","position":[700,20],"parameters":{"mode":"combine","options":{"includeUnpaired":true},"combineBy":"combineByPosition"},"typeVersion":3},{"id":"daa6773e-0e15-4994-bcee-b3d996655855","name":"Save Image to imgbb.com3","type":"n8n-nodes-base.httpRequest","position":[360,-140],"parameters":{"url":"https://api.imgbb.com/1/upload","method":"POST","options":{"redirect":{"redirect":{}}},"sendBody":true,"sendQuery":true,"contentType":"multipart-form-data","bodyParameters":{"parameters":[{"name":"image","parameterType":"formBinaryData","inputDataFieldName":"data"}]},"queryParameters":{"parameters":[{"name":"expiration","value":"0"},{"name":"key","value":"={{ $env.IMGBB_API_KEY}} "}]}},"typeVersion":4.2},{"id":"af06853c-258e-4dfb-a579-3168c8de96bd","name":"Instagram Image","type":"n8n-nodes-base.httpRequest","onError":"continueRegularOutput","position":[1700,-60],"parameters":{"url":"https://graph.facebook.com/v20.0/[your-unique-id]/media","method":"POST","options":{},"sendQuery":true,"authentication":"predefinedCredentialType","queryParameters":{"parameters":[{"name":"image_url","value":"={{ $json.data.medium.url }}"},{"name":"caption","value":"={{ $('Social Media Content Factory').item.json.output.platform_posts.Instagram.caption }}"}]},"nodeCredentialType":"facebookGraphApi"},"typeVersion":4.2},{"id":"6ee72138-a8ec-4fbd-8f14-fd6e881edfd1","name":"Instragram Post","type":"n8n-nodes-base.facebookGraphApi","onError":"continueRegularOutput","position":[1700,160],"parameters":{"edge":"media_publish","node":"[your-unique-id]","options":{"queryParameters":{"parameter":[{"name":"creation_id","value":"={{ $json.id }}"},{"name":"caption","value":"={{ $('Social Media Content Factory').item.json.output.platform_posts.Instagram.caption }}"}]}},"graphApiVersion":"v20.0","httpRequestMethod":"POST"},"typeVersion":1,"alwaysOutputData":true},{"id":"9e168865-1eae-4e53-99c9-91b041426ecb","name":"X Post","type":"n8n-nodes-base.twitter","onError":"continueRegularOutput","position":[1700,380],"parameters":{"text":"={{ $('Social Media Content Factory').item.json.output.platform_posts['X-Twitter'].post }}","additionalFields":{}},"typeVersion":2,"alwaysOutputData":true},{"id":"4ee55c94-7251-445e-8ce7-15eee7165010","name":"Facebook Post","type":"n8n-nodes-base.facebookGraphApi","onError":"continueRegularOutput","position":[1700,600],"parameters":{"edge":"photos","node":"[your-unique-id]","options":{"queryParameters":{"parameter":[{"name":"message","value":"={{ $('Social Media Content Factory').item.json.output.platform_posts.Facebook.post }}\n\n{{ $('Social Media Content Factory').item.json.output.platform_posts.Facebook.call_to_action }}\n"},{"name":"link","value":"={{ $('Social Media Content Factory').item.json.output.platform_posts.Facebook.call_to_action }}"}]}},"sendBinaryData":true,"graphApiVersion":"v20.0","httpRequestMethod":"POST","binaryPropertyName":"data"},"typeVersion":1,"alwaysOutputData":true},{"id":"3a015f3f-a162-411a-85e8-e1f042d9c653","name":"LinkedIn Post","type":"n8n-nodes-base.linkedIn","onError":"continueRegularOutput","position":[1700,780],"parameters":{"text":"={{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.post }}\n{{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.call_to_action }}\n{{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.hashtags }}\n{{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.call_to_action }}","postAs":"organization","organization":"12345678","additionalFields":{},"binaryPropertyName":"=data","shareMediaCategory":"IMAGE"},"typeVersion":1,"alwaysOutputData":true},{"id":"8ab03d75-b4c5-4271-8fa9-830f449a3a3c","name":"OpenAI","type":"@n8n/n8n-nodes-langchain.openAi","position":[40,-20],"parameters":{"prompt":"={{ $('Social Media Content Factory').item.json.output.platform_posts.Instagram.caption }}","options":{},"resource":"image"},"typeVersion":1.8,"alwaysOutputData":true},{"id":"d1ac29b1-128d-4615-b828-89f1f64d1b15","name":"Merge1","type":"n8n-nodes-base.merge","position":[1440,-60],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3},{"id":"71eebce8-027a-4b12-b07e-692121de9a68","name":"Merge2","type":"n8n-nodes-base.merge","position":[1440,680],"parameters":{"mode":"combine","options":{"includeUnpaired":true},"combineBy":"combineByPosition"},"typeVersion":3},{"id":"140cff41-a619-4111-8dc9-3ec8fc45e061","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[-240,520],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1},{"id":"3e96bfac-dad5-4b75-b51b-50329892ee70","name":"gpt-4o-mini1","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-20,540],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini","cachedResultName":"gpt-4o-mini"},"options":{"responseFormat":"text"}},"typeVersion":1.2},{"id":"4d73d59f-bb8c-481b-877a-bf4dc64f3277","name":"gpt-4o-mini2","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-20,820],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini","cachedResultName":"gpt-4o-mini"},"options":{"responseFormat":"text"}},"typeVersion":1.2},{"id":"aaef70d7-6029-4fae-afc1-72a6a0019b03","name":"Gmail User for Approval","type":"n8n-nodes-base.gmail","position":[2000,-540],"webhookId":"c46cf421-ddb6-45a8-b83b-80b381666f0e","parameters":{"sendTo":"={{ $env.EMAIL_ADDRESS_JOE }} ","message":"={{ $json.output }}","options":{"limitWaitTime":{"values":{"resumeUnit":"minutes","resumeAmount":45}}},"subject":"=🔥FOR APPROVAL🔥{{ $('Social Media Content Factory').item.json.output.name }} - {{ $('Social Media Content Factory').item.json.output.description }}","operation":"sendAndWait","approvalOptions":{"values":{"approvalType":"double"}}},"typeVersion":2.1},{"id":"930e76ac-6e9c-4a3f-9229-28ba18de25a3","name":"Approve Final Post Content","type":"n8n-nodes-base.gmail","disabled":true,"position":[980,380],"webhookId":"c46cf421-ddb6-45a8-b83b-80b381666f0e","parameters":{"sendTo":"={{ $env.EMAIL_ADDRESS_JOE }} ","message":"=\n\n
\n\n
LinkedIn
\n      \n    \n
\n\n      \n
\n        \n
\n\n      \n
\n\n
\n          {{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.post }}\n
\n        \n
\n          \n            {{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.hashtags }}\n          \n
\n\n
\n          {{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.call_to_action }}\n
\n
\n
\n
\n\n\n","options":{"limitWaitTime":{"values":{"resumeUnit":"minutes","resumeAmount":45}}},"subject":"=🔥FOR APPROVAL🔥 New LinkedIn Post","operation":"sendAndWait","approvalOptions":{"values":{"approvalType":"double"}}},"typeVersion":2.1},{"id":"b42df164-47ae-4e08-9099-d0958dd41c8f","name":"Is Approved?","type":"n8n-nodes-base.if","position":[1160,20],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"efe337a1-63e0-4513-873d-421bf41e4868","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.data.approved }}","rightValue":""}]}},"typeVersion":2.2},{"id":"e3193aef-d115-4c3b-87b2-b8ebd5bb0c05","name":"Instagram Result","type":"n8n-nodes-base.set","position":[2040,160],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5c6edc76-1e3b-45b0-8baa-33a14c678150","name":"Instagram Post Result","type":"string","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"6f8b248f-5c79-412c-81ef-3c52bef7f257","name":"X Result","type":"n8n-nodes-base.set","position":[2040,380],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5c6edc76-1e3b-45b0-8baa-33a14c678150","name":"X Post Result","type":"string","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"4c1ee118-aba1-4632-bd48-27cef9d5e272","name":"Facebook Result","type":"n8n-nodes-base.set","position":[2040,600],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5c6edc76-1e3b-45b0-8baa-33a14c678150","name":"Facebook Post Result","type":"string","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"490223f9-9b6a-4617-8829-c8e4b130feb7","name":"LinkedIn Result","type":"n8n-nodes-base.set","position":[2040,780],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5c6edc76-1e3b-45b0-8baa-33a14c678150","name":"LinkedIn Post Result","type":"string","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"9732c12e-903e-49ac-8d29-ffc4d78c7ff8","name":"Submit Social Post Details","type":"n8n-nodes-base.formTrigger","position":[-180,-740],"webhookId":"3e762442-715e-47e1-a65e-ae92085857ae","parameters":{"options":{"buttonLabel":"Automatically Generate Social Media Content"},"formTitle":"workflows.diy","formFields":{"values":[{"fieldLabel":"Topic","placeholder":"Provide a concise and clear title or main topic for your post (e.g., \"New Product Launch,\" \"Exciting Company Update\"). This helps the AI accurately capture the focus of your content.","requiredField":true},{"fieldLabel":"Keywords or Hashtags (optional)","placeholder":"Include any specific keywords or hashtags you'd like the AI to incorporate into the post. This ensures the content aligns with your branding and campaign objectives.","requiredField":"={{ false }}"},{"fieldLabel":"Link (optional)","placeholder":"=Provide the URL of any product, service, form, support page, or other resource. This link will be included in the generated post to direct your audience to the relevant content.\n"}]},"responseMode":"lastNode","formDescription":"=Welcome to the workflows.diy AI-Powered Assistant!\n\nThis tool is designed to streamline and enhance your social media content creation process.\n\nSimply provide key inputs like a topic or title and an optional image, and our intelligent agent will generate engaging, platform-specific post descriptions tailored to your audience. \n\nWhether you're a marketer, business owner, or influencer, this assistant saves you time while delivering professional-quality content optimized for maximum impact.\n\n"},"typeVersion":2.2},{"id":"1955b762-b9c4-4704-955b-093686e827bd","name":"Merge Results","type":"n8n-nodes-base.merge","onError":"continueRegularOutput","position":[2340,780],"parameters":{"numberInputs":4},"typeVersion":3,"alwaysOutputData":true},{"id":"6dc47749-eb49-4351-89aa-50f2b6c035bb","name":"Social Media Content Factory","type":"@n8n/n8n-nodes-langchain.agent","position":[300,-740],"parameters":{"text":"=You are a **content creation AI** for workflows.diy, a leading creator of **n8n workflow automation solutions and AI Agentic workflows**.\n\nYour goal is to craft **engaging, platform-specific content** for LinkedIn, Instagram, Facebook, Twitter (X), TikTok, Threads, and YouTube Shorts. Each post must align with the platform’s audience preferences, tone, and style while reflecting workflows.diy's expertise. The content should provide **value-driven insights**, tutorials, reviews, and discussions that resonate with tech professionals, automation enthusiasts, businesses, and n8n users.\n\n### Key Objectives:\n1. **Platform Optimization**: Tailor content format, tone, and hashtags to suit each platform’s algorithm and audience engagement patterns.\n2. **SEO & Hashtags**: Use a mix of general automation hashtags and trending platform-specific hashtags to maximize reach.\n3. **Engagement Focus**: Create content that sparks interaction through tutorials, comparisons, reviews, or thought-provoking discussions.\n4. **Consistency**: Maintain a professional yet approachable tone across all platforms while adapting to audience needs.\n5. **Data-Driven Strategy**: Analyze trends and performance data to refine content strategy and hashtag usage.\n\n### General Hashtags:\n#workflowsdiy #n8n #automation #AIWorkflows #WorkflowAutomation #TechSolutions\n\n---\n\n### Platform-Specific Guidelines:\n\n#### 1. LinkedIn\n   - **Style**: Professional and insightful.\n   - **Tone**: Business-oriented; focus on automation use cases, industry insights, and community impact.\n   - **Content Length**: 3-4 sentences; concise but detailed.\n   - **Hashtags**: #Innovation #Automation #WorkflowSolutions #DigitalTransformation #Leadership\n   - **Call to Action (CTA)**: Encourage comments or visits to workflows.diy’s website for more insights.\n\n#### 2. Instagram\n   - **Style**: Visual storytelling with creative captions.\n   - **Tone**: Inspirational and engaging; use emojis for relatability.\n   - **Content Length**: 2-3 sentences paired with eye-catching visuals (e.g., infographics or workflow demos).\n   - **Visuals**: Showcase milestones (e.g., new workflow launches), tutorials, or product highlights.\n   - **CTA**: Use phrases like \"Swipe to learn more,\" \"Tag your team,\" or \"Check out the link below!\"\n   - **Link Placement**: Add the provided link before hashtags; if no link is provided, use \"Visit our website: https://workflows.diy.\"\n   - **Hashtags**: #AutomationLife #TechInnovation #WorkflowTips #Programming #Engineering\n\n#### 3. Facebook\n   - **Style**: Friendly and community-focused.\n   - **Tone**: Relatable; highlight user success stories or company achievements in automation.\n   - **Content Length**: 2-3 sentences; conversational yet professional.\n   - **Hashtags**: #SmallBusinessAutomation #Entrepreneurship #Leadership #WorkflowInnovation\n   - **CTA**: Encourage likes, shares, comments (e.g., “What’s your favorite automation tip?”).\n\n#### 4. Twitter (X)\n   - **Style**: Concise and impactful.\n   - **Tone**: Crisp and engaging; spark curiosity in 150 characters or less.\n   - **Hashtags**: #WorkflowTrends #AIWorkflows #AutomationTips #NoCodeSolutions\n   - **CTA**: Drive quick engagement through retweets or replies (e.g., “What’s your go-to n8n workflow?”).\n\n#### 5. TikTok\n   - **Style**: Short-form video content with trending audio or effects.\n   - **Tone**: Fun yet informative; focus on quick workflow demos or automation tips.\n   - **Content Length**: 15-60 seconds with captions summarizing the key message.\n   - **Hashtags**: Use trending tech-related hashtags relevant to TikTok’s audience (e.g., #n8nTips).\n   - **CTA**: Encourage viewers to follow workflows.diy for more automation hacks.\n\n#### 6. Threads\n   - **Style**: Conversational and community-driven posts.\n   - **Tone**: Casual yet informative; encourage discussions around automation trends or innovations.\n   - **Content Length**: 1-2 short paragraphs with a question or thought-provoking statement at the end.\n   - **Hashtags**: Similar to Instagram but tailored for trending Threads topics related to automation.\n\n#### 7. YouTube Shorts\n   - **Style**: Short-form video content showcasing quick workflow tutorials or use cases.\n   - **Tone**: Authoritative yet approachable; establish workflows.diy as a leader in n8n automation solutions.\n   - Content Length:\n     - Tutorials/Reviews (long-form): 5-10 minutes\n     - Shorts/Highlights (short-form): Under 1 minute\n   - CTA:** Encourage subscriptions**, likes, comments (e.g., “Subscribe for more workflow tips!”).\n\n---\n\n### Content Creation Workflow:\nFor every post:\n1. Use the following input fields:\n    - Topic/About the Post: {{ $json.Topic }}\n    - Keywords/Focus Areas: {{ $json.formMode }}\n    - Link (optional): {{ $json['Link (optional)'] }}\n2. Adapt the tone/style based on the platform guidelines above.\n\nEnsure every post reflects workflows.diy's mission of delivering high-quality automation insights while maximizing engagement across platforms.\n\nFollow the provided JSON schema for your reponse.\n","options":{"systemMessage":"=Use the provided tools to research the topic based on latest information.  Todays date is {{ $now }}"},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.7},{"id":"88c548bf-40e5-4b89-aef0-9233c3f5bc9c","name":"Prepare Content Review Email","type":"@n8n/n8n-nodes-langchain.agent","position":[1440,-740],"parameters":{"text":"=Generate clean, modern HTML email content from the provided JSON data with these requirements:\n- Use table-based layout with inline CSS for email compatibility\n- Create card sections for each platform containing:\n  • Title header (20px) \n  • Post content (16px) \n  • Video/image suggestions (italic 14px)\n  • Hashtag list (inline-block with # prefix)\n  • Emoji preservation where present\n  • Call-to-action (bold 14px)\n- Structure using:\n  • 600px max-width container\n  • 20px padding between cards\n  • Left-aligned text hierarchy\n  • Arial/sans-serif font stack\n  • Email-safe colors (#333 text, #555 secondary)\n- Include all platform-specific elements:\n  ▶ Video/image suggestions in italic\n  ▶ Hashtags as linked search terms\n  ▶ Emojis in original positions\n  ▶ Character limits for Twitter\n  ▶ Platform-specific CTAs\n  ▶ Visual quality reminders\n- Format hashtags as:\n  #tag\n\nInput data: {{ $json.output.toJsonString() }}\n\nRemove ALL code blocks and comments. Output ONLY the raw HTML with:\n- Platform cards in JSON order\n- All data elements represented\n- Mobile-responsive tables\n- W3C-valid markup\n\n## Example HTML:\n
\n\t\t

\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

LinkedIn

Discover why n8n stands out as the premier workflow automation tool. Its flexibility and open-source nature empower businesses to create custom solutions that drive efficiency and innovation.

Video/Image suggestion pending

#Innovation#Automation#<wbr>WorkflowSolutions#<wbr>DigitalTransformation#<wbr>Leadership#workflowsdiy#n8n#<wbr>AIWorkflows#WorkflowAutomation<wbr>#TechSolutions

Visit workflows.diy to explore how n8n can transform your business processes!

Instagram

Eye-catching infographic comparing n8n to other automation tools, highlighting its unique features.

n8n: The ultimate workflow automation tool!  Unlock limitless possibilities with its open-source platform. Boost your productivity and streamline your processes.

#AutomationLife#TechInnovation<wbr>#WorkflowTips#Programming#<wbr>Engineering#workflowsdiy#n8n#<wbr>AIWorkflows#WorkflowAutomation<wbr>#TechSolutions

Visit our website: https://n8n.io/ #AutomationLife #TechInnovation #WorkflowTips #Programming #Engineering

Facebook

See why businesses are choosing n8n for their workflow automation needs. From its user-friendly interface to its powerful customization options, n8n is revolutionizing how companies approach automation.

A visually appealing graphic showcasing n8n's key features and benefits.

#SmallBusinessAutomation#<wbr>Entrepreneurship#Leadership#<wbr>WorkflowInnovation#<wbr>workflowsdiy#n8n#AIWorkflows#<wbr>WorkflowAutomation#<wbr>TechSolutions

What's your favorite automation tip? Share in the comments!

Twitter

n8n: The best #WorkflowAutomation tool! Open-source, customizable, and powerful. Transform your business processes today!

#WorkflowTrends#AIWorkflows#<wbr>AutomationTips#NoCodeSolutions<wbr>#workflowsdiy#n8n#<wbr>TechSolutions

TikTok

Quick demo showcasing how n8n simplifies complex workflows with its intuitive interface.

n8n: Your go-to for effortless workflow automation!

#n8nTips#workflowsdiy#n8n#<wbr>AIWorkflows#WorkflowAutomation<wbr>#TechSolutions

Follow workflows.diy for more automation hacks!

Threads

n8n is transforming the automation landscape. Its open-source nature and extensive integrations make it a top choice for businesses of all sizes. What are your thoughts on the future of workflow automation?

#workflowsdiy#n8n#AIWorkflows#<wbr>WorkflowAutomation#<wbr>TechSolutions

Share your insights below!

YouTube Shorts

Short tutorial demonstrating how to build a simple automation workflow in n8n.

Learn why n8n is the top choice for workflow automation. Its open-source platform and powerful features make it a game-changer for businesses.

#n8n#automation#<wbr>workflowautomation#nocode#<wbr>workflowsdiy#AIWorkflows#<wbr>TechSolutions

Subscribe for more workflow tips!

\n\t\t\t\t\t\t	\n\t\t\t\t\t
\n\t\t\t\t
\n
\n","agent":"conversationalAgent","options":{},"promptType":"define"},"typeVersion":1.7},{"id":"3b074887-262f-47ab-b69c-c51b3a513993","name":"Prepare Results Email","type":"@n8n/n8n-nodes-langchain.agent","position":[0,380],"parameters":{"text":"=Parse the social media post results and generate a modern single line HTML table showing platform statuses. For each entry:\n\n-Extract platform name from the JSON key\n-Identify status (Success/Error) based on statusCode or error presence\n-Capture error message if present\n-Format as responsive HTML table with professional styling\n-Ensure email client compatibility with inline CSS\n-Include error handling for invalid JSON formats\n-Remove all line breaks and \\n from response.\n-Avoid any preamble or further explanation and remove all ``` and ```html from response.\n\n## Implementation Example:\nThis solution uses the parsed results from your workflow to generate:\n
\n
\n
\n            Platform	\n            Status	\n            Details	\n
\n
\n
\n
\n            Instagram	\n            ✗ Error	\n            Unsupported post request. Object with ID '[your-unique-id]' does not exist, cannot be loaded due to missing permissions.	\n
\n
\n            X (Twitter)	\n            ✗ Error	\n            Unable to sign without access token	\n
\n
\n            Facebook	\n            ✗ Error	\n            Unsupported post request. Object with ID '[your-unique-id]' does not exist, cannot be loaded due to missing permissions.	\n
\n
\n            LinkedIn	\n            ✗ Error	\n            Unable to sign without access token	\n
\n
\n
\n\n\nThis is the social media post results: \n{{ $json.data.toJsonString() }}\n","agent":"conversationalAgent","options":{},"promptType":"define"},"typeVersion":1.7},{"id":"abb3994f-bf23-43f8-9c46-28795cfd2017","name":"Prepare Results Message","type":"@n8n/n8n-nodes-langchain.agent","position":[0,660],"parameters":{"text":"=Parse the social media post results and generate a brief summary of the results.\n\nThis is the social media post results: \n{{ $json.data.toJsonString() }}\n\n## Example Response:\nThe social media post results indicate multiple errors when attempting to access or post content on various platforms. \n\n1. Instagram: The response shows a 400 status code with an error message indicating that the specific post request is unsupported due to missing permissions or an invalid object ID. \n\n2. X Post: Success\n\n3. Facebook: Success \n\n4. LinkedIn: Also returned an 'Unable to sign without access token' error. \n\nOverall, access token issues and unsupported requests are frequent problems across these social media platforms.\n","agent":"conversationalAgent","options":{},"promptType":"define"},"typeVersion":1.7},{"id":"b4a4838a-83b0-4f28-a9f3-dea915228325","name":"Image Choice","type":"n8n-nodes-base.form","disabled":true,"position":[-620,-120],"webhookId":"0dc811ef-b2e0-4213-a0c9-e9b5fb9fcbf1","parameters":{"options":{"formTitle":"Generate Post Image","buttonLabel":"Submit"},"formFields":{"values":[{"fieldType":"file","fieldLabel":"Upload Image (optional)","multipleFiles":false,"acceptFileTypes":".jpg, .png, .jpeg"},{"fieldType":"dropdown","fieldLabel":"Generate Custom Image using AI Image Generator","fieldOptions":{"values":[{"option":"Yes"},{"option":"No"}]},"requiredField":true}]}},"typeVersion":1},{"id":"1cf97c10-e60f-4584-b069-3d4506868d8e","name":"Gmail Results","type":"n8n-nodes-base.gmail","position":[360,380],"webhookId":"0a81b95a-cd82-465d-8450-cf38518a4cbb","parameters":{"sendTo":"={{ $env.EMAIL_ADDRESS_JOE }} ","message":"={{ $json.output }}","options":{"appendAttribution":false},"subject":"🔥RESULTS🔥 Social Media Factory"},"typeVersion":2.1},{"id":"c845ae46-9d37-472b-ae0f-49fc6940e685","name":"Telegram Results","type":"n8n-nodes-base.telegram","position":[360,660],"webhookId":"bb40ede7-03cf-493d-b051-196b96725925","parameters":{"text":"={{ $json.output }}","chatId":"={{ $env.TELEGRAM_CHAT_ID }}","additionalFields":{"appendAttribution":false}},"typeVersion":1.2},{"id":"643b94c6-4535-4876-9660-d82ff69cbcf6","name":"Is Content Approved?","type":"n8n-nodes-base.if","position":[-240,-20],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e32d270f-f258-4522-94e1-2cb7ee4e8d2a","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.data.approved }}","rightValue":""}]}},"typeVersion":2.2},{"id":"fb7108e2-21cf-4df4-ab20-fe75b15b0a24","name":"Set Default True 2","type":"n8n-nodes-base.set","position":[980,20],"parameters":{"options":{},"assignments":{"assignments":[{"id":"f150aa79-2d20-4869-b60a-350d49a215a5","name":"data","type":"object","value":"={\n  \"approved\": true\n}"}]}},"typeVersion":3.4},{"id":"0a10bca0-c3a8-496b-a22e-120928ad7736","name":"SerpAPI","type":"@n8n/n8n-nodes-langchain.toolSerpApi","position":[460,-540],"parameters":{"options":{}},"typeVersion":1},{"id":"b21f527c-5674-49d0-a114-866d669e7ad6","name":"Rename Binary File","type":"n8n-nodes-base.code","position":[-620,120],"parameters":{"jsCode":"$input.first().binary.data = $input.first().binary.Upload_Image__optional_\ndelete $input.first().binary.Upload_Image__optional_\nreturn $input.first()"},"typeVersion":2,"alwaysOutputData":true}],"active":false,"settings":{"executionOrder":"v1"},"connections":{"Merge":{"main":[[{"node":"Set Default True 2","type":"main","index":0}]]},"Merge1":{"main":[[{"node":"Instagram Image","type":"main","index":0}]]},"Merge2":{"main":[[{"node":"Facebook Post","type":"main","index":0},{"node":"LinkedIn Post","type":"main","index":0}]]},"OpenAI":{"main":[[{"node":"Save Image to imgbb.com3","type":"main","index":0},{"node":"Merge","type":"main","index":1},{"node":"Merge2","type":"main","index":1}]]},"X Post":{"main":[[{"node":"X Result","type":"main","index":0}],[]]},"SerpAPI":{"ai_tool":[[{"node":"Social Media Content Factory","type":"ai_tool","index":0}]]},"X Result":{"main":[[{"node":"Merge Results","type":"main","index":1}]]},"Aggregate":{"main":[[{"node":"Prepare Results Email","type":"main","index":0},{"node":"Prepare Results Message","type":"main","index":0}]]},"gpt-4o LLM":{"ai_languageModel":[[{"node":"Social Media Content Factory","type":"ai_languageModel","index":0}]]},"gpt-4o-mini":{"ai_languageModel":[[{"node":"Prepare Content Review Email","type":"ai_languageModel","index":0}]]},"Image Choice":{"main":[[{"node":"Rename Binary File","type":"main","index":0}]]},"Is Approved?":{"main":[[{"node":"X Post","type":"main","index":0},{"node":"Merge1","type":"main","index":1},{"node":"Merge2","type":"main","index":0}],[]]},"gpt-4o-mini1":{"ai_languageModel":[[{"node":"Prepare Results Email","type":"ai_languageModel","index":0}]]},"gpt-4o-mini2":{"ai_languageModel":[[{"node":"Prepare Results Message","type":"ai_languageModel","index":0}]]},"Facebook Post":{"main":[[{"node":"Facebook Result","type":"main","index":0}],[]]},"LinkedIn Post":{"main":[[{"node":"LinkedIn Result","type":"main","index":0}],[]]},"Merge Results":{"main":[[{"node":"Aggregate","type":"main","index":0}]]},"Facebook Result":{"main":[[{"node":"Merge Results","type":"main","index":2}]]},"Instagram Image":{"main":[[{"node":"Instragram Post","type":"main","index":0}]]},"Instragram Post":{"main":[[{"node":"Instagram Result","type":"main","index":0}],[]]},"LinkedIn Result":{"main":[[{"node":"Merge Results","type":"main","index":3}]]},"pollinations.ai":{"main":[[]]},"Instagram Result":{"main":[[{"node":"Merge Results","type":"main","index":0}]]},"Google Gemini LLM":{"ai_languageModel":[[]]},"Set Default True 2":{"main":[[{"node":"Is Approved?","type":"main","index":0}]]},"Is Content Approved?":{"main":[[{"node":"OpenAI","type":"main","index":0}]]},"Social Media Content":{"ai_outputParser":[[{"node":"Social Media Content Factory","type":"ai_outputParser","index":0}]]},"Prepare Results Email":{"main":[[{"node":"Gmail Results","type":"main","index":0}]]},"Gmail User for Approval":{"main":[[{"node":"Is Content Approved?","type":"main","index":0}]]},"Prepare Results Message":{"main":[[{"node":"Telegram Results","type":"main","index":0}]]},"Save Image to imgbb.com3":{"main":[[{"node":"Merge","type":"main","index":0},{"node":"Merge1","type":"main","index":0}]]},"Approve Final Post Content":{"main":[[]]},"Submit Social Post Details":{"main":[[{"node":"Social Media Content Factory","type":"main","index":0}]]},"Prepare Content Review Email":{"main":[[{"node":"Gmail User for Approval","type":"main","index":0}]]},"Social Media Content Factory":{"main":[[{"node":"Prepare Content Review Email","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: 📌 Overview Description: This powerful workflow automates your sales quotation process by connecting Pipedrive with DottedSign. When a deal is moved to a specific stage in Pipedrive, this template automatically generates a professional PDF quotation, uploads it back to the deal, and sends it out for e-signature via DottedSign service, saving your sales team valuable time and eliminating manual work. What it does When a Pipedrive deal moves to a designated stage (e.g., "Quotation Stage"), this workflow triggers and performs the following actions: Gathers Data: It collects all relevant information, including deal details, client contacts, organization info, and associated products from Pipedrive. Generates PDF Quote: It populates a customizable HTML template with the collected data and uses a

[Assistant]
<thinking>
**Analyse du besoin**: 📌 Overview

Description:

This powerful workflow automates your sales quotation process by connecting Pipedrive with DottedSign. When a deal is moved to a specific stage in Pipedrive, this template au...

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

**Architecture**: 0 nodes utilisant nodes natifs.
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>

{"id":"8LJ5mlndFypZh1VS","meta":{"instanceId":"cf9804b12ee62314911ec55daa0c998a73f201da1917bd31262722d206bf0f27","templateCredsSetupCompleted":true},"name":"QuotationAutomation template","tags":[],"nodes":[{"id":"2e87b077-c9bf-49c9-9d03-955bdc6615c3","name":"Pipedrive Trigger","type":"n8n-nodes-base.pipedriveTrigger","position":[-16,176],"webhookId":"988adb20-acfa-4668-858e-f89825b8bf6a","parameters":{"action":"change","entity":"deal"},"credentials":{"pipedriveApi":{"id":"M0Osgaz0uW0e047E","name":"Pipedrive account Sandbox"}},"typeVersion":1.1},{"id":"a0076d48-fc1b-4b1c-937e-9dacb05fa9a9","name":"Get a deal","type":"n8n-nodes-base.pipedrive","position":[1104,-112],"parameters":{"dealId":"={{ $json.data.id }}","operation":"get"},"credentials":{"pipedriveApi":{"id":"M0Osgaz0uW0e047E","name":"Pipedrive account Sandbox"}},"typeVersion":1},{"id":"351d5e24-33ba-4d98-82c4-e76c8ea7edce","name":"editFlag=True","type":"n8n-nodes-base.filter","position":[880,-304],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"01e341f6-05e7-4521-8b8e-dcba0a5e818c","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.edit_flag }}","rightValue":""}]}},"typeVersion":2.2},{"id":"b9f38e9c-428e-4ea2-a503-c927419bcf2d","name":"Get many deal products","type":"n8n-nodes-base.pipedrive","position":[880,80],"parameters":{"dealId":"={{ $json.meta.entity_id }}","resource":"dealProduct","operation":"getAll","returnAll":true},"credentials":{"pipedriveApi":{"id":"M0Osgaz0uW0e047E","name":"Pipedrive account Sandbox"}},"typeVersion":1},{"id":"609f3763-2ce6-479c-b35d-a67da0edda07","name":"setProductRows","type":"n8n-nodes-base.code","position":[2000,176],"parameters":{"jsCode":"// n8n Code Node (or similar Javascript environment)\n\nconst items = $input.first().json.deal_products;\nlet htmlRows = '';\n\nfor (const item of items) {\n  // 修正後的版本：100% 匹配您的原版範本的結構和 CSS Class\n  let singleRowHtml = `\n
\n        \n
\n                ${item.name}\n
\n        	\n        \n
\n                ${item.quantity}\n
\n        	\n        \n
\n                ${item.currency} ${parseFloat(item.item_price).toFixed(2)}\n
\n        	\n        \n
\n                ${item.discount}%\n
\n        	\n        \n
\n                ${item.currency} ${parseFloat(item.sum).toFixed(2)}\n
\n        	\n
\n  `;\n  // 清理換行和多餘空格，確保 HTML 乾淨\n  htmlRows += singleRowHtml.replace(/\\n\\s*/g, '');\n}\n\nreturn { table_rows_html: htmlRows };"},"typeVersion":2},{"id":"8667563a-03d9-4d64-aff0-8d76deb7c853","name":"Get a person","type":"n8n-nodes-base.pipedrive","position":[1104,272],"parameters":{"personId":"={{ $json.data.person_id }}","resource":"person","operation":"get"},"credentials":{"pipedriveApi":{"id":"M0Osgaz0uW0e047E","name":"Pipedrive account Sandbox"}},"typeVersion":1},{"id":"ee372227-55b8-40cc-800a-d9e5aa1d3d37","name":"field_mappings","type":"n8n-nodes-base.set","position":[1328,-304],"parameters":{"options":{},"assignments":{"assignments":[{"id":"6b1137c7-df7e-41be-8555-9860db142e74","name":"field_mappings","type":"object","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"0cd3669f-1e1f-4d8e-a9a2-35b39f61d132","name":"deal_details","type":"n8n-nodes-base.set","position":[1328,-112],"parameters":{"options":{},"assignments":{"assignments":[{"id":"72ee9f3f-178c-457b-981a-09ae60fca3ea","name":"deal_details","type":"object","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"8b6c48fa-451e-45d6-b86f-4a15782d60af","name":"person_details","type":"n8n-nodes-base.set","position":[1328,272],"parameters":{"options":{},"assignments":{"assignments":[{"id":"b779769c-f9b4-48a1-8bfe-7827baf990b1","name":"person_details","type":"object","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"1c0268a7-490b-4b3f-a7db-458bace5c6d1","name":"deal_products","type":"n8n-nodes-base.set","position":[1328,80],"parameters":{"options":{},"assignments":{"assignments":[{"id":"13d41759-702c-4639-a184-615096f89a02","name":"deal_products","type":"object","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"e37cb8c9-fc54-4cad-973c-921fd1f7392c","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[1104,-304],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1},{"id":"74ff239d-aff4-462f-96b6-57ebf65df4c4","name":"Aggregate1","type":"n8n-nodes-base.aggregate","position":[1104,80],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1},{"id":"9465410d-f738-4d0d-bbf5-7132a440c21e","name":"Get an organization","type":"n8n-nodes-base.pipedrive","position":[1104,464],"parameters":{"resource":"organization","operation":"get","organizationId":"={{ $json.data.org_id }}"},"credentials":{"pipedriveApi":{"id":"M0Osgaz0uW0e047E","name":"Pipedrive account Sandbox"}},"typeVersion":1},{"id":"a11a4440-9c19-4d22-bdc9-09cc26a7ab74","name":"org_details","type":"n8n-nodes-base.set","position":[1328,464],"parameters":{"options":{},"assignments":{"assignments":[{"id":"baad2fc7-b3e8-45af-a45f-1bebf88dbf79","name":"org_details","type":"object","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"14ba18cc-36cd-41f8-8c2d-42c263c7364a","name":"Convert to HTML","type":"n8n-nodes-base.convertToFile","position":[2448,176],"parameters":{"options":{"encoding":"utf8","fileName":"index.html","mimeType":"text/html","dataIsBase64":false},"operation":"toBinary","sourceProperty":"html"},"typeVersion":1},{"id":"b1005793-6c53-429c-afac-c957994391f5","name":"Create a file","type":"n8n-nodes-base.pipedrive","position":[3120,272],"parameters":{"resource":"file","additionalFields":{"deal_id":"={{ $('Clean & Map Data').item.json.id }}","activity_id":"={{ $('Create an activity').item.json.id }}"},"binaryPropertyName":"=data"},"credentials":{"pipedriveApi":{"id":"M0Osgaz0uW0e047E","name":"Pipedrive account Sandbox"}},"typeVersion":1},{"id":"25e7bbe7-3bd6-4968-aff5-92e1a2c48876","name":"Create an activity","type":"n8n-nodes-base.pipedrive","position":[1104,656],"parameters":{"type":"Quoatation","subject":"=Quotation/ {{ $json.data.id }}/{{ $json.data.update_time.toDateTime().format('yyyyMMdd') }}","resource":"activity","additionalFields":{"deal_id":"={{ $json.data.id }}"}},"credentials":{"pipedriveApi":{"id":"M0Osgaz0uW0e047E","name":"Pipedrive account Sandbox"}},"typeVersion":1},{"id":"276e0728-344b-4ef3-bf31-16b6aeacc898","name":"activity_details","type":"n8n-nodes-base.set","position":[1328,656],"parameters":{"options":{},"assignments":{"assignments":[{"id":"baad2fc7-b3e8-45af-a45f-1bebf88dbf79","name":"activity_details","type":"object","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"ab6a37ee-a249-46ea-b335-3b9c20bcc8ab","name":"DottedSign-CreateTask","type":"n8n-nodes-base.httpRequest","position":[3792,176],"parameters":{"url":"https://api.sandbox.dottedsign.com/v1/sign_tasks","method":"POST","options":{},"jsonBody":"={\n    \"has_order\": false,\n    \"start\": true,\n    \"stages\": [\n        {\n            \"field_settings\": [\n                {\n                    \"field_type\": \"signature\",\n                    \"coord\": [92.0, 237.0, 353.0, 274.0],\n                    \"options\": { \"placeholder\": \"signhere\" },\n                    \"page\": 1\n                }\n            ],\n            \"stage_setting\": {\n                \"informable\": true,\n                \"reviewed_skip_confirm\": true\n            },\n            \"name\": \"{{ $('Clean & Map Data').item.json.person_details.name }}\",\n            \"email\": \"{{ $('Clean & Map Data').item.json.person_details.email[0].value }}\",\n            \"stage_type\": \"sign\"\n        }\n    ],\n    \"task_setting\": {\n        \"cc_infos\": [\n            {\n                \"email\": \"{{ $('Clean & Map Data').item.json.person_details.owner_id.email }}\",\n                \"name\": \"{{ $('Clean & Map Data').item.json.person_details.owner_id.name }}\" }],\n        \"receiver_lang\": \"en\",\n        \"owner_informable\": true\n    },\n    \"base64_file\": \"{{ $json.data }}\",\n    \"file_name\": \"{{ $('Clean & Map Data').item.json.title.replace(/[\\\"*:<>\\?\\/\\\\|~#%&{}]/g, '_') }}.pdf\"\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"accept","value":"application/json"},{"name":"Authorization","value":"=Bearer {{ $json.access_token }}"},{"name":"content-type","value":"application/json"}]}},"typeVersion":4.2},{"id":"60cc6b34-70f4-4900-a7cb-0a16ee987344","name":"Extract from File","type":"n8n-nodes-base.extractFromFile","position":[3344,80],"parameters":{"options":{},"operation":"binaryToPropery"},"typeVersion":1,"alwaysOutputData":true},{"id":"de55a7d7-c151-4270-b356-ff6600ced25a","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1200,-560],"parameters":{"width":1056,"height":752,"content":"## 📌 Overview\n**Title:** `Automate Quotation Generation from Pipedrive to DottedSign`\n**Description:**\nThis powerful workflow automates your sales quotation process by connecting Pipedrive with DottedSign. When a deal is moved to a specific stage in Pipedrive, this template automatically generates a professional PDF quotation, uploads it back to the deal, and sends it out for e-signature via DottedSign service, saving your sales team valuable time and eliminating manual work.\n## What it does\nWhen a Pipedrive deal moves to a designated stage (e.g., \"Quotation Stage\"), this workflow triggers and performs the following actions:\n1.  **Gathers Data:** It collects all relevant information, including deal details, client contacts, organization info, and associated products from Pipedrive.\n2.  **Generates PDF Quote:** It populates a customizable HTML template with the collected data and uses a PDF generation service (Gotenberg) to create a polished PDF document.\n3.  **Uploads to Pipedrive:** The generated PDF quote is automatically uploaded to the \"Files\" section of the corresponding Pipedrive deal for record-keeping.\n4.  **Sends for E-Signature:** It creates a new signing task in DottedSign, sending the quotation to the client for their electronic signature.\n## Requirements\n-   A Pipedrive account with admin permissions.\n-   A DottedSign developer account to obtain API credentials.\n-   A self-hosted instance of [Gotenberg](https://gotenberg.dev/docs/getting-started/installation) for HTML to PDF conversion.\n## How to set up\n1.  **Pipedrive Trigger Stage:** In the `If` node, change the stage ID `7` to the ID of the pipeline stage you want to use as the trigger.\n2.  **PDF Conversion Service:** In the `Gotenberg to PDF` (HTTP Request) node, replace the placeholder URL with the endpoint of your running Gotenberg instance.\n3.  **DottedSign Credentials:** In the `Get DottedSign Access Token` node, enter your `client_id` and `client_secret` in the request body.\n4.  **DottedSign Signature Field:** In the `Create DottedSign Task` node, you **must** adjust the `page` and `coord` values under `field_settings` to match the desired signature location on your PDF template.\n## How to customize the workflow\n-   **Quotation Template:** Edit the `Generate Quotation HTML` node to modify the quote's appearance, text, company logo, and terms. The `{{ ... }}` expressions are placeholders that are filled with Pipedrive data.\n-   **Trigger:** Replace the Pipedrive Trigger with another trigger, such as a webhook or a form submission, to adapt the workflow to different needs.\n-   **Notifications:** Add a Slack or email node at the end of the workflow to notify the sales team once the quotation has been sent."},"typeVersion":1},{"id":"cc8f8665-c85f-4e05-bdba-fcd560a7aba0","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-48,-560],"parameters":{"color":3,"width":1504,"height":1504,"content":"## **STEP 1: Trigger & Data Collection**\n\n*   **Pipedrive Trigger**: Watches for any change in a Pipedrive deal.\n*   **If**: Checks if the deal was moved to Specific Stage . The workflow will start execute.\n*   **Data Collection**: If the condition is true, it fetches all necessary data: Deal details, Person, Organization, Products, and Custom Field definitions (Optional)."},"typeVersion":1},{"id":"ffe36349-2631-4001-94cb-33068ef48be8","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1520,-144],"parameters":{"width":640,"height":752,"content":"## **STEP 2: Data Processing** \n\n*   **Set Nodes**: Rename different data streams for clarity (e.g., `deal_details`, `person_details`).\n*   **Merge**: Combines all the separate data into a single object.\n*   **Code (Main)** It cleans up the data and converts technical customfieldIDs mapping with string text."},"typeVersion":1},{"id":"bfb48e6f-0b00-438b-a5e1-ec79d703508f","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[2176,-32],"parameters":{"color":4,"width":848,"height":464,"content":"## **STEP 3: PDF Generation**\n\n*   **setProductRows**: This Code node dynamically creates the HTML table rows for the product list.\n*   **HTML**: This is the main template. It takes the processed data and fills it into the HTML layout.\n*   **Convert to HTML -> convert to PDF**: Turns the final HTML into a binary file, then sends it to the Gotenberg service to create the PDF."},"typeVersion":1},{"id":"02b99292-f1df-4343-a2d6-e29b7d96b147","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[3072,-128],"parameters":{"width":944,"height":688,"content":"## **STEP 4: Final Actions**\n\n*   **Create a file**: Uploads the newly created PDF to the Pipedrive deal's \"Files\" section.\n*   **Extract from File**: Converts the PDF into Base64 format, which is required by the DottedSign API.\n*   **DottedSign-GetAccessToken**: Gets a temporary API token from DottedSign.\n*   **DottedSign-CreateTask**: Sends the PDF and signer info to DottedSign to start the e-signature process."},"typeVersion":1},{"id":"891f3d99-0b53-468c-a95e-ea84fa420ef9","name":"MergeAllData","type":"n8n-nodes-base.merge","position":[1552,112],"parameters":{"mode":"combine","options":{"includeUnpaired":true},"combineBy":"combineByPosition","numberInputs":6},"typeVersion":3.2},{"id":"6a653173-a497-4fa0-88ae-ffdee6cb14ed","name":"MergeForDS","type":"n8n-nodes-base.merge","position":[3568,176],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2,"alwaysOutputData":true},{"id":"647168e9-bd89-4cfb-b314-2375f9123d18","name":"Clean & Map Data","type":"n8n-nodes-base.code","position":[1776,176],"parameters":{"jsCode":"\nconst inputData = $input.item.json;\n\n\nconst dealData = inputData.deal_details;\nconst personData = inputData.person_details;\nconst orgData = inputData.org_details;\n// 從聚合後的物件中提取陣列\nconst dealProducts = inputData.deal_products?.data || [];\nconst fieldMappingsArray = inputData.field_mappings?.data || [];\n\n\nif (!dealData) {\n    throw new Error(\"Deal data (deal_details) is missing from the input. Check the Merge node and its inputs.\");\n}\n\n\nconst fieldMapping = {};\nfor (const field of fieldMappingsArray) {\n    if (field.key && field.name) {\n        fieldMapping[field.key] = field.name;\n\n        if ((field.field_type === 'enum' || field.field_type === 'set') && field.options) {\n            fieldMapping[field.key + '_options'] = field.options;\n        }\n    }\n}\n\n\nconst cleanedDeal = {};\n\n\nfor (const key in dealData) {\n    if (dealData.hasOwnProperty(key)) {\n        let value = dealData[key];\n\n\n        if (fieldMapping[key]) {\n            const fieldName = fieldMapping[key];\n            const options = fieldMapping[key + '_options'];\n\n\n            if (options && (typeof value === 'string' || typeof value === 'number')) {\n                const valueArray = String(value).split(',').map(s => s.trim());\n                const labels = valueArray.map(val => {\n                    const option = options.find(opt => String(opt.id) === val);\n                    return option ? option.label : val; \n                });\n                cleanedDeal[fieldName] = (valueArray.length > 1) ? labels : labels[0];\n            } else if (value && typeof value === 'object' && value !== null && value.name !== undefined) {\n                cleanedDeal[fieldName] = value.name;\n            } else if (value && typeof value === 'object' && value !== null && value.value !== undefined) {\n                cleanedDeal[fieldName] = value.value;\n            } else {\n                cleanedDeal[fieldName] = value;\n            }\n\n        } else if (key.endsWith('_id') && typeof value === 'object' && value !== null && value.name !== undefined) {\n            cleanedDeal[key.replace('_id', '_name')] = value.name;\n\n        } else {\n            cleanedDeal[key] = value;\n        }\n    }\n}\n\n\nif (personData) {\n    cleanedDeal.person_details = personData;\n}\nif (orgData) {\n    cleanedDeal.org_details = orgData;\n}\nif (dealProducts.length > 0) {\n    cleanedDeal.deal_products = dealProducts;\n}\n\n\nreturn [{\n    json: cleanedDeal\n}];"},"typeVersion":2},{"id":"c7724bac-4f45-4d31-96ab-78e09e9604e5","name":"Generate Quote HTML","type":"n8n-nodes-base.html","position":[2224,176],"parameters":{"html":"<meta content=\"text/html; charset=UTF-8\" http-equiv=\"content-type\">
YOUR COMPANY NAME.

YOUR COMPANY ADDRESS,

YOUR COMPANY ADDRESS

Phone: YOUR COMPANY PHONE

YOUR COMPANY WEBSITE

Contact Person： n8n-user_name:{{ $('Clean & Map Data').item.json.user_name }}

QUOTATION

QUO-NO # n8n-deal_id:{{ $('Clean & Map Data').item.json.id }}

DATE： n8n-date:{{ $('Clean & Map Data').item.json.update_time.toDateTime().format('yyyy-MM-dd') }}

Quote To：_____n8n-org_name:{{ $('Clean & Map Data').item.json.org_name }}______(“You”or “Your”)

Description

Quantity

Unit Price

Discount

Amount

{{ $('setProductRows').item.json.table_rows_html }}

Sub Total

{{ $('Clean & Map Data').item.json.currency }} {{ $('Clean & Map Data').item.json.value }}

Shipping

{{ $('Clean & Map Data').item.json.currency }}

Tax (5%)

{{ $('Clean & Map Data').item.json.currency }}

Total

{{ $('Clean & Map Data').item.json.currency }} {{ $('Clean & Map Data').item.json.value }}

Note:

This quotation takes effect when You have completed the signing and return the electronic files (including scanned files or PDFs) of the quotation by facsimile or electronic transmission or other means to Kdan Mobile Software Ltd (“we”,”us”, or”our”). Upon the effective date of this quotation, if You would like to postpone the activation date of the service license(s) or adjust the number of activated licenses within the licensed quantity due to Your internal considerations or other reasons not attributable to us, You shall notify us in writing or by email and obtain our consent. However, You understand and agree that under such circumstances, the Licensed Period stipulated in this Quotation shall remain unaffected. If there are any licenses that remain unactivated upon the expiration of the Licensed Period, You acknowledge and agree that we shall no longer activate such remaining licenses and shall not provide any refund or extension. You shall not assert any claim against us in this regard. The foregoing shall not affect Your payment obligations under this Quotation, and You shall still make full payment in accordance with the relevant provisions herein.

If neither party raises any objections 30 days prior to the expiration of DottedSign licensing period, this quotation will be automatically renewed for one year under the same terms and conditions."

When You use DottedSign, You agree to comply with the “Terms of Use” (https://www.dottedsign.com/terms_of_service) in our official website.

Unless otherwise specified in this quotation, you have the right to terminate the quotation without any reason within the period, which starting fromMM/DD/YYYY to 30 days after the date of account activation by us (the “Termination Period”). Once You terminate the quotation within the Termination Period, You should provide notice in writing or electronically to us and You must pay equal to 20% of the total License Fee to us(the “Termination Fee”); however, if You terminate the quotation before the date of account activation, the Termination Fee would be deducted to equal to 15% of the total License Fee. After the Termination Period, You are not entitled to terminate the quotation.

The quotation terminate from the date we receive Your termination notice (the” termination day”). We have the right to deduct the Termination fee, the subscription fee incurred by You in accessing our service before the termination date(Less than one day, shall be calculate as one day), and any other damages from the refund. All refunds are not eligible for interest.

Payment instructions: we must received full amount of the payment, You agree to pay all charges incurred by the transaction.

Within thirty(30) days after You sign and return the quotation to us, You must pay the total amount to the payment link designated by us by credit card. Under the condition that "to pay the service fee within a specified period after the issuance of the invoice," if the payment is not made within the agreed period, we reserves the right to calculate late payment interest at an annual rate of 5%, temporarily suspend the provision of services, and, if deemed necessary, unilaterally terminate this quotation. Under the other condition that "to prepay the service fee before the issuance of the invoice," if the payment is not made within the agreed period, we reserves the right to withhold the account activation and unilaterally terminate this quotation.

You hereby grant to us as well as the subsidiaries and affiliates of us( hereinafter collectively referred to as “Kdan Group Companies”) a royalty-free and perpetual license to use Your corporation mark (including trademarks, trade names, and logos ) in marketing, sales, and public relations material to identify You as a Kdan Group Companies’ partner.

Both parties agree that this quotation shall be presented in electronic records. And this quotation could be signed using an electronic signature.

In the event of any conflict or inconsistency between the terms and conditions of this quotation and the terms of contracts agreed by both parties someday, the provisions of those contracts shall prevail.

During the performance of the quotation, both parties agree to enter into written supplementary agreement for any matter not covered by this quotation.

If You do not sign and return the quotation within one month after we send it to You, the quotation will lapse automatically.

This quotation shall be construed in accordance with the laws of the Republic of China (Taiwan). The Parties agree that the conditions set forth hereunder shall be performed in the utmost spirit of goodwill and good faith. In the event of a dispute, the Parties agree that the Taiwan Taipei District Court shall be the court of first instance.

We are committed to protecting the security of Your personal data and information. Any personal data provided by You, as well as any information obtained through the use of our website or services, is managed and protected in accordance with our Privacy Policy and Security Policy. You acknowledge and agree that any information You obtain about others through the use of our website or services will also be subject to the regulations of our Privacy Policy and Security Policy. For more details, please refer to the following link:

Privacy Policy:https://dottedsign.com/privacy_policy

Security Policy:https://dottedsign.com/security

Both parties shall conduct their business activities based on the principles of integrity. Both parties agree that during the process of signing and fulfilling the purpose of this quotation, neither party nor its directors, managers, employees, agents, or persons with substantial control (collectively referred to as "Personnel") shall directly or indirectly offer, promise, give, request, or accept any improper money, gifts, loans, commissions, positions, services, advantages, sponsorships, rewards, bribes, travel fees, hospitality, or any form of benefit. If either party is aware that any Personnel may violate the principles of integrity, they shall immediately notify the other party in writing or by email, provide relevant evidence, and cooperate with the investigation. If either party or its Personnel violates this clause, the other party may unconditionally terminate this quotation at any time and request compensation for damages. The amount of damages may be deducted from any amounts payable under this quotation. If the quotation is terminated under this clause, the provisions of Clause 5 shall not apply.

The service license(s) granted under this quotation shall be effective from【DD/MM/YYYY】to【DD/MM/YYYY】(“Licensed Period”). By singing below, You acknowledge that You have read and agree to be bound by these terms and conditions.

                  DATE:________/_________/_________

Authorized Signatory: n8n-person_name:{{ $('Clean & Map Data').item.json.person_details.name }}

Title: n8n-job title:{{ $('Clean & Map Data').item.json.person_details?.job_title || '' }}

GUI No. [          ]

Address: n8n-address:{{ $('Clean & Map Data').item.json.org_details.address || '' }}

Contact Person: n8n-person_name:{{ $('Clean & Map Data').item.json.person_details.name || '' }}

Tel: n8n-tel:{{ $('Clean & Map Data').item.json.person_details.phone[0].value || ''}}

"},"typeVersion":1.2},{"id":"1c66eeae-b758-4500-8324-d2a6f15f1003","name":"Gotenberg to PDF","type":"n8n-nodes-base.httpRequest","position":[2672,176],"parameters":{"url":"http://gotenberggotenberg.yourhost/forms/chromium/convert/html","method":"POST","options":{"response":{"response":{"responseFormat":"file"}}},"sendBody":true,"contentType":"multipart-form-data","bodyParameters":{"parameters":[{"name":"files","parameterType":"formBinaryData","inputDataFieldName":"data"}]}},"typeVersion":4.2},{"id":"0c56eade-f38e-48f8-87b7-e4f8386803df","name":"Rename PDF","type":"n8n-nodes-base.code","position":[2896,176],"parameters":{"jsCode":"$input.item.binary.data.fileName = 'result.pdf'\n return $input.item;"},"typeVersion":2},{"id":"b7da5d6e-6a44-4b4c-b9e2-bb3aeed78de9","name":"Get Pipedrive Custom Fields","type":"n8n-nodes-base.httpRequest","position":[432,-304],"parameters":{"url":"https://kdanmobile.pipedrive.com/api/v1/dealFields","options":{},"jsonHeaders":"{\n  \"Content-Type\": \"application/json\"\n}","sendHeaders":true,"authentication":"genericCredentialType","specifyHeaders":"json","genericAuthType":"httpQueryAuth"},"credentials":{"httpQueryAuth":{"id":"fQptBLiBdOmeIEzd","name":"Pipedrive API token"}},"typeVersion":4.2},{"id":"9fc8335e-a975-4326-a416-345669ca90d5","name":"Split Out Custom Fields","type":"n8n-nodes-base.splitOut","position":[656,-304],"parameters":{"options":{},"fieldToSplitOut":"data"},"typeVersion":1},{"id":"e1e9f24e-9093-45ce-a928-bbd73d43ad82","name":"If Stage is 'Quotation'","type":"n8n-nodes-base.if","position":[208,176],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"f6710bca-9bff-4c8d-8cea-ab9b8a517437","operator":{"type":"number","operation":"equals"},"leftValue":"={{ $json.data.stage_id }}","rightValue":7},{"id":"6a9b26ee-fd35-441f-9826-665fe8373992","operator":{"type":"number","operation":"lt"},"leftValue":"={{ $json.previous.stage_id }}","rightValue":7}]}},"typeVersion":2.2},{"id":"5d15907b-19f3-4d45-9320-b5404685c541","name":"Get DottedSign Access Token","type":"n8n-nodes-base.httpRequest","position":[3344,272],"parameters":{"url":"https://api.sandbox.dottedsign.com/v1/oauth/token","method":"POST","options":{},"sendBody":true,"sendQuery":true,"sendHeaders":true,"bodyParameters":{"parameters":[{"name":"grant_type","value":"client_credentials"},{"name":"client_id"},{"name":"client_secret"},{"name":"code"}]},"queryParameters":{"parameters":[{}]},"headerParameters":{"parameters":[{"name":"accept","value":"application/json"},{"name":"content-type","value":"application/json"}]}},"typeVersion":4.2}],"active":false,"pinData":{"Pipedrive Trigger":[{"json":{"data":{"id":1102,"title":"Deal 1","value":1950,"org_id":1214,"origin":"ManuallyCreated","status":"open","channel":null,"add_time":"2025-10-20T06:21:54Z","currency":"TWD","owner_id":5674782,"stage_id":7,"won_time":null,"label_ids":[],"lost_time":null,"origin_id":null,"person_id":1222,"channel_id":null,"close_time":null,"visible_to":"3","is_archived":false,"lost_reason":null,"pipeline_id":1,"probability":null,"update_time":"2025-10-21T02:29:56Z","archive_time":null,"custom_fields":{"085376a710a76b86622293222b048cc9c8b5809f":null,"10b0419f6153971fb927c1bc1e33004d37248377":null,"1631567a12a8c9848f7a38039ea59058711c9c81":{"id":21,"type":"enum"},"36444d22ff7c91a05ad6b13002169d7552bbce68":null,"3a1c7b49c503c0a07cd4bbc1cce0832259b1848d":{"type":"double","value":20},"3ecef3e85ac838325cacbbce9a6b3543101bb638":null,"4957db5a993971ca8ebdc5a18a4bfbdb95c631bf":{"type":"set","values":[{"id":32},{"id":35},{"id":36},{"id":37},{"id":57}]},"503bc5554fbcf7456ab01388ee8d922d72652b74":null,"631dce0ea3082a5f163572a006f5c5f0f2039b64":{"id":42,"type":"enum"},"85f55b6fcd3367a917675f8d4a33bb27b9d8213c":null,"a1c0492d8e2c34f14bc26e19c1ec9147d195130a":null,"ada6959920cefc4cea5439642d74199a7dc9ddee":{"id":14,"type":"enum"},"e0a4944818826f6ffd2ee931b698d02ff3b755bf":{"type":"set","values":[{"id":31}]},"e1047f3eaffd194e52ae51ff4a9a45247821b2d6":null,"e24d56403c4134cb88b116145de99745e3488c25":null,"ee54481d542236715af422ce8517559d60c814b5":{"id":47,"type":"enum"},"f1a31a7081c7e11be09f04ca262bf10d73970942":null},"first_won_time":null,"creator_user_id":5674782,"stage_change_time":"2025-10-21T02:29:56Z","expected_close_date":null},"meta":{"id":"3758a221-51e4-4d90-8a75-341ab1cbf550","host":"kdanmobilesoftwareltd-sandbox.pipedrive.com","type":"general","action":"change","entity":"deal","attempt":1,"user_id":"5674782","version":"2.0","entity_id":"1102","timestamp":"2025-10-21T02:29:56.276Z","company_id":"7827175","webhook_id":"2104704","is_bulk_edit":false,"change_source":"app","correlation_id":"5d8eaa57-65a7-4a11-8e7f-843500fbd7c4","webhook_owner_id":"23549028","permitted_user_ids":["5674782","11584359","11775123","16932806","22135506","23549028"]},"previous":{"stage_id":6}}}]},"settings":{"executionOrder":"v1"},"versionId":"4e0adb96-9b29-428b-a0e4-4d45a1b430f3","connections":{"Aggregate":{"main":[[{"node":"field_mappings","type":"main","index":0}]]},"Aggregate1":{"main":[[{"node":"deal_products","type":"main","index":0}]]},"Get a deal":{"main":[[{"node":"deal_details","type":"main","index":0}]]},"MergeForDS":{"main":[[{"node":"DottedSign-CreateTask","type":"main","index":0}]]},"Rename PDF":{"main":[[{"node":"Create a file","type":"main","index":0},{"node":"Extract from File","type":"main","index":0}]]},"org_details":{"main":[[{"node":"MergeAllData","type":"main","index":4}]]},"Get a person":{"main":[[{"node":"person_details","type":"main","index":0}]]},"MergeAllData":{"main":[[{"node":"Clean & Map Data","type":"main","index":0}]]},"deal_details":{"main":[[{"node":"MergeAllData","type":"main","index":1}]]},"Create a file":{"main":[[{"node":"Get DottedSign Access Token","type":"main","index":0}]]},"deal_products":{"main":[[{"node":"MergeAllData","type":"main","index":2}]]},"editFlag=True":{"main":[[{"node":"Aggregate","type":"main","index":0}]]},"field_mappings":{"main":[[{"node":"MergeAllData","type":"main","index":0}]]},"person_details":{"main":[[{"node":"MergeAllData","type":"main","index":3}]]},"setProductRows":{"main":[[{"node":"Generate Quote HTML","type":"main","index":0}]]},"Convert to HTML":{"main":[[{"node":"Gotenberg to PDF","type":"main","index":0}]]},"Clean & Map Data":{"main":[[{"node":"setProductRows","type":"main","index":0}]]},"Gotenberg to PDF":{"main":[[{"node":"Rename PDF","type":"main","index":0}]]},"activity_details":{"main":[[{"node":"MergeAllData","type":"main","index":5}]]},"Extract from File":{"main":[[{"node":"MergeForDS","type":"main","index":0}]]},"Pipedrive Trigger":{"main":[[{"node":"If Stage is 'Quotation'","type":"main","index":0}]]},"Create an activity":{"main":[[{"node":"activity_details","type":"main","index":0}]]},"Generate Quote HTML":{"main":[[{"node":"Convert to HTML","type":"main","index":0}]]},"Get an organization":{"main":[[{"node":"org_details","type":"main","index":0}]]},"DottedSign-CreateTask":{"main":[[]]},"Get many deal products":{"main":[[{"node":"Aggregate1","type":"main","index":0}]]},"If Stage is 'Quotation'":{"main":[[{"node":"Get Pipedrive Custom Fields","type":"main","index":0},{"node":"Get a deal","type":"main","index":0},{"node":"Get many deal products","type":"main","index":0},{"node":"Get a person","type":"main","index":0},{"node":"Get an organization","type":"main","index":0},{"node":"Create an activity","type":"main","index":0}]]},"Split Out Custom Fields":{"main":[[{"node":"editFlag=True","type":"main","index":0}]]},"Get DottedSign Access Token":{"main":[[{"node":"MergeForDS","type":"main","index":1}]]},"Get Pipedrive Custom Fields":{"main":[[{"node":"Split Out Custom Fields","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n. Diagnostique et corrige les erreurs dans les workflows.
Utilise <thinking> pour tracer l'origine du problème étape par étape.
Explique clairement la cause et la solution.
Retourne le workflow corrigé.

[User]
Mon workflow ne fonctionne pas.

Workflow:
```json
{"id":"lZbh3p9grft1d8dr","meta":{"instanceId":"2000c64071c20843606b95c63795bb0797c41036047055a6586498e855b96efc"},"name":"Learn Customer Onboarding Automation with n8n","tags":[],"nodes":[{"id":"37703ea3-a8ed-4f05-bb97-dc353311440f","name":"New Customer Webhook","type":"n8n-nodes-base.webhook","position":[-700,380],"webhookId":"customer-onboarding-start","parameters":{"path":"customer-onboarding-start","options":{},"httpMethod":"POST"},"typeVersion":1},{"id":"b0884a2d-7a79-466a-ab6f-59d36837ed81","name":"Create HubSpot Contact","type":"n8n-nodes-base.hubspot","position":[-220,340],"parameters":{"resource":"contact","operation":"create","authentication":"appToken"},"typeVersion":1},{"id":"3251b814-a373-44e5-833f-f801bea6af57","name":"Send Team Notification","type":"n8n-nodes-base.telegram","position":[60,260],"webhookId":"e319793b-83b0-4b4e-8cf5-af921cc0e9ec","parameters":{"operation":"send"},"typeVersion":1},{"id":"d897da64-acd7-4a01-9906-8812f883ff5a","name":"Send Welcome Email","type":"n8n-nodes-base.emailSend","position":[60,460],"parameters":{"options":{},"subject":"Welcome to [Company Name] - Your Journey Starts Here! \ud83c\udf89"},"typeVersion":1},{"id":"325c5909-063b-4dc8-ae2d-186952e09b5d","name":"Wait 2 Hours","type":"n8n-nodes-base.wait","position":[360,360],"webhookId":"ed102052-76a3-4302-a179-f8e09d0f7aed","parameters":{"amount":2},"typeVersion":1},{"id":"aabccc2b-84fd-4d6b-bb5b-b6b09920fc63","name":"Send Onboarding Documents","type":"n8n-nodes-base.emailSend","position":[660,360],"parameters":{"options":{},"subject":"Your Onboarding Documents Are Ready! \ud83d\udccb"},"typeVersion":1},{"id":"51b18819-b308-4b57-8248-2776b0c93dde","name":"Wait 1 Day","type":"n8n-nodes-base.wait","position":[960,360],"webhookId":"c37979cb-b222-4f35-a0f9-b7dff99ccea8","parameters":{"unit":"days"},"typeVersion":1},{"id":"73a825f7-723c-43d3-8366-04a2fb4d21b6","name":"Update CRM Status","type":"n8n-nodes-base.hubspot","position":[1260,260],"parameters":{"resource":"contact","...
```

Erreur: Node 'Wait 1 Day' has no output connection

[Assistant]
<thinking>
**Analyse de l'erreur**: Node 'Wait 1 Day' has no output connection

**Diagnostic**: Trace du flux de données pour identifier l'origine.

**Cause identifiée**: Problème dans la configuration ou les expressions.

**Solution**: Correction appliquée pour résoudre le problème.
</thinking>

**Problème identifié:** Connection manquante après le node 'Wait 1 Day'

**Solution:**
Correction de l'erreur dans le workflow.

**Workflow corrigé:**
{"id":"lZbh3p9grft1d8dr","meta":{"instanceId":"2000c64071c20843606b95c63795bb0797c41036047055a6586498e855b96efc"},"name":"Learn Customer Onboarding Automation with n8n","tags":[],"nodes":[{"id":"37703ea3-a8ed-4f05-bb97-dc353311440f","name":"New Customer Webhook","type":"n8n-nodes-base.webhook","position":[-700,380],"webhookId":"customer-onboarding-start","parameters":{"path":"customer-onboarding-start","options":{},"httpMethod":"POST"},"typeVersion":1},{"id":"b0884a2d-7a79-466a-ab6f-59d36837ed81","name":"Create HubSpot Contact","type":"n8n-nodes-base.hubspot","position":[-220,340],"parameters":{"resource":"contact","operation":"create","authentication":"appToken"},"typeVersion":1},{"id":"3251b814-a373-44e5-833f-f801bea6af57","name":"Send Team Notification","type":"n8n-nodes-base.telegram","position":[60,260],"webhookId":"e319793b-83b0-4b4e-8cf5-af921cc0e9ec","parameters":{"operation":"send"},"typeVersion":1},{"id":"d897da64-acd7-4a01-9906-8812f883ff5a","name":"Send Welcome Email","type":"n8n-nodes-base.emailSend","position":[60,460],"parameters":{"options":{},"subject":"Welcome to [Company Name] - Your Journey Starts Here! 🎉"},"typeVersion":1},{"id":"325c5909-063b-4dc8-ae2d-186952e09b5d","name":"Wait 2 Hours","type":"n8n-nodes-base.wait","position":[360,360],"webhookId":"ed102052-76a3-4302-a179-f8e09d0f7aed","parameters":{"amount":2},"typeVersion":1},{"id":"aabccc2b-84fd-4d6b-bb5b-b6b09920fc63","name":"Send Onboarding Documents","type":"n8n-nodes-base.emailSend","position":[660,360],"parameters":{"options":{},"subject":"Your Onboarding Documents Are Ready! 📋"},"typeVersion":1},{"id":"51b18819-b308-4b57-8248-2776b0c93dde","name":"Wait 1 Day","type":"n8n-nodes-base.wait","position":[960,360],"webhookId":"c37979cb-b222-4f35-a0f9-b7dff99ccea8","parameters":{"unit":"days"},"typeVersion":1},{"id":"73a825f7-723c-43d3-8366-04a2fb4d21b6","name":"Update CRM Status","type":"n8n-nodes-base.hubspot","position":[1260,260],"parameters":{"resource":"contact","operation":"update"},"typeVersion":1},{"id":"becff115-7a2d-4e0b-987a-930063b75e9d","name":"Send Personal Check-in","type":"n8n-nodes-base.emailSend","position":[1260,460],"parameters":{"options":{"replyTo":"success@company.com"},"subject":"How's your first day going? 🌟"},"typeVersion":1},{"id":"f8c6b848-65ff-4fd3-a505-9a9341e46a01","name":"Wait 2 More Days","type":"n8n-nodes-base.wait","position":[1560,360],"webhookId":"4d254f31-2974-4d7b-8669-0f1df857209a","parameters":{"unit":"days","amount":2},"typeVersion":1},{"id":"412cd830-fd51-4fea-a5ed-8df244bcb833","name":"Send Week 1 Success Guide","type":"n8n-nodes-base.emailSend","position":[2120,340],"parameters":{"options":{},"subject":"Your Week 1 Success Guide + Exclusive Training 🎯"},"typeVersion":1},{"id":"82f636c2-678c-4725-83c0-bf56f87ac961","name":"Mark Week 1 Complete","type":"n8n-nodes-base.hubspot","position":[2340,100],"parameters":{"resource":"contact","operation":"update"},"typeVersion":1},{"id":"20bc62f4-b62f-4150-aa63-7b19975fb3b4","name":"Notify Team of Completion","type":"n8n-nodes-base.telegram","position":[2400,540],"webhookId":"00e4a472-30f4-4f63-a96e-8c3deb69c704","parameters":{"operation":"send"},"typeVersion":1},{"id":"7b75ba51-9ea8-450f-b88f-def30185a1cb","name":"Validate Required Fields","type":"n8n-nodes-base.if","position":[-460,380],"parameters":{"options":{},"conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c1f5e1a0-8c2e-4d1f-9b3a-7e6d5c4b3a21","operator":{"type":"string","operation":"notEmpty"},"leftValue":"={{ $json.email }}","rightValue":""},{"id":"d2g6f2b1-9d3f-5e2g-ac4b-8f7e6d5c4b32","operator":{"type":"string","operation":"notEmpty"},"leftValue":"={{ $json.customerName }}","rightValue":""}]}},"typeVersion":2},{"id":"53eb8ff6-22b2-44ac-a2ef-21c46ae403ce","name":"Send Validation Error Alert","type":"n8n-nodes-base.telegram","position":[-380,700],"webhookId":"70027811-eb7c-4092-a728-e161bca136b5","parameters":{"operation":"send"},"typeVersion":1}],"active":false,"settings":{"executionOrder":"v1"},"connections":{"Wait 1 Day":{"main":[[{"node":"Update CRM Status","type":"main","index":0},{"node":"Send Personal Check-in","type":"main","index":0}]]},"Wait 2 Hours":{"main":[[{"node":"Send Onboarding Documents","type":"main","index":0}]]},"Wait 2 More Days":{"main":[[{"node":"Send Week 1 Success Guide","type":"main","index":0}]]},"Send Welcome Email":{"main":[[{"node":"Wait 2 Hours","type":"main","index":0}]]},"New Customer Webhook":{"main":[[{"node":"Validate Required Fields","type":"main","index":0}]]},"Create HubSpot Contact":{"main":[[{"node":"Send Team Notification","type":"main","index":0},{"node":"Send Welcome Email","type":"main","index":0}]]},"Send Personal Check-in":{"main":[[{"node":"Wait 2 More Days","type":"main","index":0}]]},"Validate Required Fields":{"main":[[{"node":"Create HubSpot Contact","type":"main","index":0}],[{"node":"Send Validation Error Alert","type":"main","index":0}]]},"Send Onboarding Documents":{"main":[[{"node":"Wait 1 Day","type":"main","index":0}]]},"Send Week 1 Success Guide":{"main":[[{"node":"Mark Week 1 Complete","type":"main","index":0},{"node":"Notify Team of Completion","type":"main","index":0}]]}}}


[System]
Tu es un expert n8n pédagogue. Explique les workflows de manière claire.
Structure: résumé en une phrase, schéma du flux, détail de chaque node, points d'attention.
Utilise des emojis et du markdown pour la lisibilité.

[Assistant]
## 📋 Résumé
Overview

This comprehensive n8n workflow automatically transforms trending Google search queries into engaging LinkedIn posts using AI. The system runs autonomously, discovering viral topics, researc

## 🔄 Flux de données
```
X1 → Facebook Graph API1 → LinkedIn1 → Google Sheets2 → Split Out → Schedule Trigger → Research Topic- Perplexity → 2 Most Trending → ...
```

## 📦 Détail des nodes

### 1. X1
- **Type**: twitter
- **Fonction**: Configuration du node
### 2. Facebook Graph API1
- **Type**: facebookGraphApi
- **Fonction**: Configuration du node
### 3. LinkedIn1
- **Type**: linkedIn
- **Fonction**: Configuration du node
### 4. Google Sheets2
- **Type**: googleSheets
- **Fonction**: Configuration du node
### 5. Split Out
- **Type**: splitOut
- **Fonction**: Configuration du node
### 6. Schedule Trigger
- **Type**: scheduleTrigger
- **Fonction**: Configuration du node

## ⚠ Points d'attention
- Vérifier que les credentials sont correctement configurés
- Tester avec un petit volume de données d'abord
- Services utilisés: ai, google, http


[System]
Tu es un expert n8n. Diagnostique les problèmes d'exécution.
Utilise <thinking> pour tracer le flux de données étape par étape.
Identifie où et pourquoi les données ne correspondent pas aux attentes.
Propose des solutions concrètes.

[User]
Mon workflow a un problème.

Workflow:
```json
{"meta":{"instanceId":"04ddf1130268840c229f501edc57936c3c131339e8b0cdd696fcf3a7c69e696e","templateId":"2462"},"nodes":[{"id":"c70236ea-91ab-4e47-b6f6-63a70ede5d3c","name":"Google Calendar","type":"n8n-nodes-base.googleCalendarTool","position":[2000,704],"parameters":{"options":{"fields":"=items(summary, start(dateTime))","timeMin":"={{$fromAI(\"date\",\"the date after which to fetch the messages in format YYYY-MM-DDTHH:MM:SS\")}}"},"calendar":{"__rl":true,"mode":"list","value":"derekcheungsa@gmail.com","cachedResultName":"derekcheungsa@gmail.com"},"operation":"getAll"},"typeVersion":1.1},{"id":"d2287bea-de47-4180-8ee6-55d4ab1a89da","name":"Window Buffer Memory","type":"@n8n/n8n-nodes-langchain.memoryBufferWindow","position":[1760,704],"parameters":{"sessionKey":"={{ $('Listen for incoming events').first().json.message.from.id }}","sessionIdType":"customKey"},"typeVersion":1.2},{"id":"fa955731-86f6-4e4d-8604-dab5f52dee87","name":"Get Email","type":"n8n-nodes-base.gmailTool","position":[1872,704],"webhookId":"abf7e707-2eb8-4063-a920-b8ed975b0d70","parameters":{"filters":{"labelIds":["INBOX","UNREAD"],"readStatus":"unread","receivedAfter":"={{$fromAI(\"date\",\"the date after which to fetch the messages in format YYYY-MM-DDTHH:MM:SS\")}}"},"operation":"getAll"},"typeVersion":2.1},{"id":"46511f47-1687-4cbe-ae41-ceb205ed1f11","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1632,704],"parameters":{"options":{}},"typeVersion":1},{"id":"64fe44db-af19-43eb-9ff1-de0a72a9e645","name":"Listen for incoming events","type":"n8n-nodes-base.telegramTrigger","position":[832,384],"webhookId":"322dce18-f93e-4f86-b9b1-3305519b7834","parameters":{"updates":["message"],"additionalFields":{}},"typeVersion":1},{"id":"e35c04ff-a050-4564-8c1b-5b22b556872f","name":"Telegram","type":"n8n-nodes-base.telegram","onError":"continueErrorOutput","position":[2272,384],"webhookId":"e699405e-8e52-4d38-a06b-1fa8edf050bd","parameters":{"text":"={{ $json.output }}","ch...
```

**Symptôme**: Le workflow s'exécute mais n'envoie aucun email
**Attendu**: Email envoyé avec les données
**Réel**: Aucun email reçu

[Assistant]
<thinking>
**Symptôme**: Le workflow ne produit pas le résultat attendu.

**Trace du flux**:
1. Vérification des données en entrée
2. Suivi de la transformation à chaque node
3. Comparaison avec l'output attendu

**Hypothèses**:
- Mauvaise expression d'accès aux données
- Node mal configuré
- Données manquantes en entrée
</thinking>

## 🔍 Diagnostic

**Problème identifié**: Le node précédent retourne un tableau vide car le filtre est trop restrictif

**Analyse du flux**:
1. Vérification des données à chaque étape
2. Le problème se situe dans le traitement des données

**Solutions**:

### Option 1: Corriger l'expression
Vérifier que le chemin d'accès aux données correspond à la structure réelle.

### Option 2: Ajouter du logging
Insérer un node Set ou Code pour inspecter les données à chaque étape.

**Workflow avec corrections suggérées:**
{"meta":{"instanceId":"04ddf1130268840c229f501edc57936c3c131339e8b0cdd696fcf3a7c69e696e","templateId":"2462"},"nodes":[{"id":"c70236ea-91ab-4e47-b6f6-63a70ede5d3c","name":"Google Calendar","type":"n8n-nodes-base.googleCalendarTool","position":[2000,704],"parameters":{"options":{"fields":"=items(summary, start(dateTime))","timeMin":"={{$fromAI(\"date\",\"the date after which to fetch the messages in format YYYY-MM-DDTHH:MM:SS\")}}"},"calendar":{"__rl":true,"mode":"list","value":"derekcheungsa@gmail.com","cachedResultName":"derekcheungsa@gmail.com"},"operation":"getAll"},"typeVersion":1.1},{"id":"d2287bea-de47-4180-8ee6-55d4ab1a89da","name":"Window Buffer Memory","type":"@n8n/n8n-nodes-langchain.memoryBufferWindow","position":[1760,704],"parameters":{"sessionKey":"={{ $('Listen for incoming events').first().json.message.from.id }}","sessionIdType":"customKey"},"typeVersion":1.2},{"id":"fa955731-86f6-4e4d-8604-dab5f52dee87","name":"Get Email","type":"n8n-nodes-base.gmailTool","position":[1872,704],"webhookId":"abf7e707-2eb8-4063-a920-b8ed975b0d70","parameters":{"filters":{"labelIds":["INBOX","UNREAD"],"readStatus":"unread","receivedAfter":"={{$fromAI(\"date\",\"the date after which to fetch the messages in format YYYY-MM-DDTHH:MM:SS\")}}"},"operation":"getAll"},"typeVersion":2.1},{"id":"46511f47-1687-4cbe-ae41-ceb205ed1f11","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1632,704],"parameters":{"options":{}},"typeVersion":1},{"id":"64fe44db-af19-43eb-9ff1-de0a72a9e645","name":"Listen for incoming events","type":"n8n-nodes-base.telegramTrigger","position":[832,384],"webhookId":"322dce18-f93e-4f86-b9b1-3305519b7834","parameters":{"updates":["message"],"additionalFields":{}},"typeVersion":1},{"id":"e35c04ff-a050-4564-8c1b-5b22b556872f","name":"Telegram","type":"n8n-nodes-base.telegram","onError":"continueErrorOutput","position":[2272,384],"webhookId":"e699405e-8e52-4d38-a06b-1fa8edf050bd","parameters":{"text":"={{ $json.output }}","chatId":"={{ $('Listen for incoming events').first().json.message.from.id }}","additionalFields":{"parse_mode":"Markdown","appendAttribution":false}},"typeVersion":1.1},{"id":"e791d4f8-2c19-4c14-a71e-39a04f22e944","name":"If","type":"n8n-nodes-base.if","position":[1200,384],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"a0bf9719-4272-46f6-ab3b-eda6f7b44fd8","operator":{"type":"string","operation":"empty","singleValue":true},"leftValue":"={{ $json.message.text }}","rightValue":""}]}},"typeVersion":2.2},{"id":"5bd1788a-3d08-4eb3-8e03-3ce82f44d2a7","name":"Speech to Text","type":"@n8n/n8n-nodes-langchain.openAi","position":[1616,384],"parameters":{"options":{},"resource":"audio","operation":"transcribe"},"typeVersion":1.3},{"id":"b67a2a93-517b-469e-aaa4-32c422710743","name":"Voice or Text","type":"n8n-nodes-base.set","position":[1040,384],"parameters":{"fields":{"values":[{"name":"text","stringValue":"={{ $json?.message?.text || \"\" }}"}]},"options":{}},"typeVersion":3.2},{"id":"8105c39f-9e87-44c4-9215-b3777f0b4164","name":"Get Voice File","type":"n8n-nodes-base.telegram","position":[1376,384],"webhookId":"24273e7e-6133-415e-8627-a9d6dc0f107c","parameters":{"fileId":"={{ $('Listen for incoming events').item.json.message.voice.file_id }}","resource":"file","additionalFields":{}},"typeVersion":1.1},{"id":"759b975f-d17c-4386-a5b3-12413f0361f4","name":"Angie, AI Assistant 👩🏻🏫","type":"@n8n/n8n-nodes-langchain.agent","position":[1776,384],"parameters":{"text":"={{ $json.text }}","options":{"systemMessage":"=You are a helpful assistant.\n\nToday's date is {{ $now }}.\n\nGuidelines:\n- When fetching emails, filter out any promotional emails. \n- When summarizing emails, include Sender, Message date, subject, and brief summary of email.\n- if the user did not specify a date in the request assume they are asking for today\n- Use baserow tool to answer questions about tasks\n- When answering questions about calendar events, filter out events that don't apply to the question.  For example, the question is about events for today, only reply with events for today. Don't mention future events if it's more than 1 week away"},"promptType":"define"},"typeVersion":1.6},{"id":"40e92679-b47a-4213-bb23-3f8d086459f2","name":"Tasks","type":"n8n-nodes-base.baserowTool","position":[2112,704],"parameters":{"tableId":372174,"databaseId":146496,"additionalOptions":{}},"typeVersion":1},{"id":"570a0647-b571-4ebc-9dfe-40244b5a0b2a","name":"Contacts","type":"n8n-nodes-base.baserowTool","position":[2240,704],"parameters":{"tableId":372177,"databaseId":146496,"descriptionType":"manual","toolDescription":"Useful for getting contact information.  For example emails or phone numbers.","additionalOptions":{}},"typeVersion":1}],"connections":{"If":{"main":[[{"node":"Get Voice File","type":"main","index":0}],[{"node":"Angie, AI Assistant 👩🏻🏫","type":"main","index":0}]]},"Tasks":{"ai_tool":[[{"node":"Angie, AI Assistant 👩🏻🏫","type":"ai_tool","index":0}]]},"Contacts":{"ai_tool":[[{"node":"Angie, AI Assistant 👩🏻🏫","type":"ai_tool","index":0}]]},"Get Email":{"ai_tool":[[{"node":"Angie, AI Assistant 👩🏻🏫","type":"ai_tool","index":0}]]},"Voice or Text":{"main":[[{"node":"If","type":"main","index":0}]]},"Get Voice File":{"main":[[{"node":"Speech to Text","type":"main","index":0}]]},"Speech to Text":{"main":[[{"node":"Angie, AI Assistant 👩🏻🏫","type":"main","index":0}]]},"Google Calendar":{"ai_tool":[[{"node":"Angie, AI Assistant 👩🏻🏫","type":"ai_tool","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"Angie, AI Assistant 👩🏻🏫","type":"ai_languageModel","index":0}]]},"Window Buffer Memory":{"ai_memory":[[{"node":"Angie, AI Assistant 👩🏻🏫","type":"ai_memory","index":0}]]},"Listen for incoming events":{"main":[[{"node":"Voice or Text","type":"main","index":0}]]},"Angie, AI Assistant 👩🏻🏫":{"main":[[{"node":"Telegram","type":"main","index":0}]]}}}

Le workflow s'exécute mais n'envoie aucun email