Solicitudes de ayuda para la incorporación de clientes (Typeform a Gmail y Sheets)
Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 28 nodos.Utiliza principalmente nodos como If, Code, Gmail, Slack, ClickUp. Solicitud de ayuda para el onboarding de clientes (Typeform a Gmail y Sheets)
- •Cuenta de Google y credenciales de API de Gmail
- •Bot Token de Slack o URL de Webhook
- •Credenciales de API de Google Sheets
- •Clave de API de OpenAI
Nodos utilizados (28)
Categoría
{
"id": "dXMSOO4Jr8OLjozm",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Customer Onboarding Help Requests (Typeform to Gmail & Sheets)",
"tags": [],
"nodes": [
{
"id": "9fa1fad1-085e-4a81-b561-1b9bcf13156b",
"name": "Activador Typeform",
"type": "n8n-nodes-base.typeformTrigger",
"position": [
-576,
576
],
"webhookId": "typeform-webhook",
"parameters": {
"formId": "cXaYXrBp"
},
"credentials": {
"typeformApi": {
"id": "BZNYDuO6Ymg0Gql2",
"name": "Typeform account"
}
},
"typeVersion": 1
},
{
"id": "1a77e0ab-86e6-4ef8-8e72-fad93fc4827c",
"name": "Registrar en Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
-352,
576
],
"parameters": {
"columns": {
"value": {
"Urgency": "={{ $json[\"How urgent is this request?\"] }}",
"Full Name": "={{ $json[\"What's your full name?\"] }}",
"Company/Team": "={{ $json[\"Which company or team are you from?\"] }}",
"Email Address": "={{ $json[\"What's your email address?\"] }}",
"Issue Details": "={{ $json[\"Please describe the issue or help you need in detail.\"] }}",
"Product/Service": "={{ $json[\"Which product/service are you getting onboarded to?\"] }}",
"Onboarding Support Needed": "={{ $json[\"What type of onboarding support do you need?\"] }}"
},
"schema": [
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Address",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company/Team",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company/Team",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Product/Service",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Product/Service",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Onboarding Support Needed",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Onboarding Support Needed",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Details",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Issue Details",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Urgency",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Urgency",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZOwioaHTLWKltq6UbxzZh02UEBKfypdv_GOhcPu4fHg/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1ZOwioaHTLWKltq6UbxzZh02UEBKfypdv_GOhcPu4fHg",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZOwioaHTLWKltq6UbxzZh02UEBKfypdv_GOhcPu4fHg/edit?usp=drivesdk",
"cachedResultName": "onboarding requests"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "kpPEOLCGn963qpoh",
"name": "automations@techdome.ai"
}
},
"typeVersion": 4
},
{
"id": "cd2d4992-4229-4081-8ab3-e757e4e3d896",
"name": "Verificar si el Correo Existe",
"type": "n8n-nodes-base.if",
"position": [
-128,
576
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "email-check",
"operator": {
"type": "string",
"operation": "isNotEmpty"
},
"leftValue": "={{ $json.email }}",
"rightValue": ""
},
{
"id": "2c03e600-6592-4611-ba67-d68e7e610290",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.Email }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "acb6dc41-37e1-4b4d-b850-a3b34ec43359",
"name": "Enviar Correo de Bienvenida",
"type": "n8n-nodes-base.gmail",
"position": [
432,
480
],
"webhookId": "f5b7a5e6-aa6a-46db-8115-a62f0784bb41",
"parameters": {
"sendTo": "={{ $json.email }}",
"message": "={{ $json.html }}",
"options": {},
"subject": "Welcome to [Your Company]! Here are your onboarding resources"
},
"credentials": {
"gmailOAuth2": {
"id": "gEIaWCTvGfYjMSb3",
"name": "Gmail credentials"
}
},
"typeVersion": 2
},
{
"id": "0631a301-2647-4ff4-af72-4cea1b6d4a58",
"name": "Generar HTML para Correo Profesional",
"type": "n8n-nodes-base.code",
"position": [
96,
480
],
"parameters": {
"jsCode": "// Generate professional email HTML format\nlet htmlOutput = '';\n\nfor (const item of $input.all()) {\n // Professional email template\n htmlOutput += `\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <style>\n body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 20px; }\n .email-container { max-width: 600px; margin: 0 auto; background: #ffffff; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; }\n .header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px 20px; text-align: center; }\n .header h1 { margin: 0; font-size: 24px; font-weight: 300; }\n .content { padding: 30px; }\n .greeting { font-size: 16px; margin-bottom: 20px; }\n .info-section { background: #f8f9fa; border-radius: 6px; padding: 20px; margin: 20px 0; }\n .info-title { font-size: 18px; font-weight: 600; color: #495057; margin-bottom: 15px; border-bottom: 2px solid #dee2e6; padding-bottom: 8px; }\n .info-row { display: flex; margin: 12px 0; padding: 8px 0; border-bottom: 1px solid #e9ecef; }\n .info-row:last-child { border-bottom: none; }\n .info-label { font-weight: 600; color: #6c757d; min-width: 180px; }\n .info-value { color: #495057; flex: 1; }\n .footer { background: #f8f9fa; padding: 20px; text-align: center; font-size: 14px; color: #6c757d; border-top: 1px solid #e0e0e0; }\n .signature { margin-top: 30px; padding-top: 20px; border-top: 1px solid #dee2e6; }\n </style>\n</head>\n<body>\n <div class=\"email-container\">\n <div class=\"header\">\n <h1>New Customer Inquiry</h1>\n </div>\n \n <div class=\"content\">\n <div class=\"greeting\">\n Dear Team,\n </div>\n \n <p>We have received a new customer inquiry through our contact form. Please find the details below and ensure appropriate follow-up action is taken.</p>\n \n <div class=\"info-section\">\n <div class=\"info-title\">Customer Details</div>`;\n \n // Loop through each key-value pair in the JSON object\n for (const [key, value] of Object.entries(item.json)) {\n htmlOutput += `\n <div class=\"info-row\">\n <div class=\"info-label\">${key}:</div>\n <div class=\"info-value\">${value}</div>\n </div>`;\n }\n \n htmlOutput += `\n </div>\n \n <p><strong>Next Steps:</strong></p>\n <ul>\n <li>Acknowledge receipt within 2 business hours</li>\n <li>Assign to appropriate team member based on product/service inquiry</li>\n <li>Schedule follow-up call if urgency is high</li>\n <li>Update CRM system with customer information</li>\n </ul>\n \n <div class=\"signature\">\n <p>Best regards,<br>\n <strong>Customer Service Team</strong><br>\n Email: support@company.com<br>\n Phone: +1 (555) 123-4567</p>\n </div>\n </div>\n \n <div class=\"footer\">\n <p>This is an automated notification. Please do not reply to this email.</p>\n <p>© 2024 Your Company Name. All rights reserved.</p>\n </div>\n </div>\n</body>\n</html>`;\n}\n\n// Return the professional email HTML\nreturn [{ \n json: {\n html: htmlOutput,\n htmlContent: htmlOutput,\n itemCount: $input.all().length,\n emailSubject: \"New Customer Inquiry - Action Required\"\n }\n}];"
},
"typeVersion": 2
},
{
"id": "6a89013b-35e3-440b-aad2-14b6c9d693ad",
"name": "Nota Adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-848,
320
],
"parameters": {
"height": 256,
"content": "🎯 **STEP 1: Form Capture**\n\nTriggers when someone submits your Typeform with onboarding help request.\n\n**Setup:**\n- Add your Typeform ID\n- Connect Typeform credentials\n- Webhook automatically configured"
},
"typeVersion": 1
},
{
"id": "cbed5a83-dbff-4c41-ad1b-ec06102acb76",
"name": "Nota Adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
336
],
"parameters": {
"height": 224,
"content": "📊 **STEP 2: Data Logging**\n\nAppends all form data to Google Sheets for tracking and analytics.\n\n**Setup:**\n- Replace with your Sheet ID\n- Map form fields to columns\n- Ensure headers match"
},
"typeVersion": 1
},
{
"id": "5c451fdb-d1c9-4315-bc77-4aa4bcbba11c",
"name": "Nota Adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-192,
608
],
"parameters": {
"height": 256,
"content": "✅ **STEP 3: Email Validation**\n\nChecks if valid email exists before sending welcome message.\n\n**Logic:**\n- TRUE: Proceed to email generation\n- FALSE: Log error and skip email"
},
"typeVersion": 1
},
{
"id": "a89bd006-d4a5-4980-bef9-a34e5a9b2ab9",
"name": "Nota Adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
176
],
"parameters": {
"height": 296,
"content": "🎨 **STEP 4: Email Template**\n\nGenerates professional HTML email with:\n- Company branding\n- Customer details\n- Next steps\n- Contact information\n\n**Customize:**\n- Colors and styling\n- Company information\n- Action items"
},
"typeVersion": 1
},
{
"id": "905fb062-da89-4c8c-9ffc-9ccc8b3a323d",
"name": "Nota Adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
208
],
"parameters": {
"height": 240,
"content": "📧 **STEP 5: Send Email**\n\nDelivers welcome email using Gmail.\n\n**Important:**\n- Update sender email address\n- Test with internal emails first\n- Monitor delivery rates"
},
"typeVersion": 1
},
{
"id": "22f3915e-ceff-4489-9c43-8b6e814e6155",
"name": "Nota Adhesiva6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-288,
976
],
"parameters": {
"height": 252,
"content": "⚠️ **Error Handler**\n\nLogs submissions without valid email addresses for manual follow-up.\n\n**Use case:**\n- Incomplete form submissions\n- Invalid email formats\n- Manual review needed"
},
"typeVersion": 1
},
{
"id": "fe9be2b3-c57f-4fec-a525-5f067f72b0ca",
"name": "Añadir o actualizar fila en la hoja",
"type": "n8n-nodes-base.googleSheets",
"position": [
832,
672
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "Task ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Task ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Task Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Task Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Description",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status Color",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Status Color",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Priority",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Priority",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date Created",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date Created",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date Updated",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date Updated",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date Closed",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date Closed",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date Done",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date Done",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Due Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Due Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Start Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Start Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Creator",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Creator",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Creator Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Creator Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Assignees",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Assignees",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Watchers",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Watchers",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "List Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "List Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "List ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "List ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Project Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Project Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Project ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Project ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Folder Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Folder Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Space ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Space ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Team ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Team ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Points",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Points",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Time Estimate (Hours)",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Time Estimate (Hours)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Time Spent (Hours)",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Time Spent (Hours)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Order Index",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Order Index",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Archived",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Archived",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Tags",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Tags",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Custom Fields",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Custom Fields",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Has Dependencies",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Has Dependencies",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Has Linked Tasks",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Has Linked Tasks",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Has Checklists",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Has Checklists",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Task URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Task URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Public Sharing",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Public Sharing",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Permission Level",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Permission Level",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Data Processed At",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Data Processed At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Processing Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Processing Status",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_aMeJ3avtD48dLkQxmgTtjDgbvhWp8a5v5wzgzIDd3o/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1_aMeJ3avtD48dLkQxmgTtjDgbvhWp8a5v5wzgzIDd3o",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_aMeJ3avtD48dLkQxmgTtjDgbvhWp8a5v5wzgzIDd3o/edit?usp=drivesdk",
"cachedResultName": "TypeForm Form Data"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "kpPEOLCGn963qpoh",
"name": "automations@techdome.ai"
}
},
"typeVersion": 4.6
},
{
"id": "d7875033-c362-4d0e-9fb2-9c62d866dabe",
"name": "Azure OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
256,
1120
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "4868a1af-06d1-4fe0-aa3f-9f1dca28163b",
"name": "Simple Memory1",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
400,
1136
],
"parameters": {
"sessionKey": "\"json_review\"",
"sessionIdType": "customKey",
"contextWindowLength": 7
},
"typeVersion": 1.3
},
{
"id": "031c5052-83c7-43ee-87d8-e9be9b23fd11",
"name": "Agente de IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
288,
896
],
"parameters": {
"text": "={{ $json[\"First name\"] }}{{ $json[\"Last name\"] }}{{ $json[\"Phone number\"] }}{{ $json.Email }}{{ $json.Company }}{{ $json[\"Which tutorial did you complete?\"] }}{{ $json[\"How would you rate the clarity of the tutorial content?\"] }}{{ $json[\"How helpful was the tutorial in improving your development skills?\"] }}{{ $json[\"What topics would you like to see covered in future tutorials?\"] }}{{ $json[\"Did you encounter any issues or difficulties while following the tutorial?\"] }}{{ $json[\"If yes, please describe the issues or difficulties you faced.\"] }}{{ $json[\"Any additional comments or suggestions to improve our tutorials?\"] }}{{ $json[\"Would you recommend these tutorials to other developers?\"] }}",
"options": {
"systemMessage": "=You are an AI assistant that processes raw form submissions from surveys or onboarding forms. \nYour job is to read all the answers and generate a structured, professional summary. \n\nRules:\n- Always produce output as clean JSON (no free text).\n- Keep \"summary\" concise (2–3 sentences).\n- In \"insights\", list key observations or potential issues as bullet points (max 5).\n- In \"callToAction\", give one short, actionable recommendation for the internal team.\n- If answers are irrelevant, empty, or missing, clearly state \"Not provided\" instead of skipping.\n- Do not repeat raw text verbatim; rephrase into professional insights.\n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.1
},
{
"id": "0d20f7f1-6c5a-4608-a22b-4c24800e5af4",
"name": "Analizador de Salida Estructurada",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
512,
1152
],
"parameters": {
"jsonSchemaExample": "{\n \"output\": {\n \"summary\": \"…\",\n \"insights\": [ \"…\", \"…\" ],\n \"callToAction\": \"…\"\n }\n}\n"
},
"typeVersion": 1.3
},
{
"id": "46b1e8b2-4f27-4f90-bc3f-f04b9023d416",
"name": "Enviar un mensaje",
"type": "n8n-nodes-base.slack",
"position": [
640,
896
],
"webhookId": "16544571-1b96-4e02-80fb-eccd5d588aa8",
"parameters": {
"text": "=Summary: {{ $json.output.summary }} \n\nInsight: {{ $json.output.insights }} \n\nAction: {{ $json.output.callToAction }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09H21LK9BJ",
"cachedResultName": "reply-needed"
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.3
},
{
"id": "8ff6854e-2aa2-4ee4-92f1-6d2062e8430a",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
640
],
"parameters": {
"height": 240,
"content": "📌 **Create ClickUp Task**\n\nAutomatically creates a task in ClickUp for every valid submission.\n\n**Setup:**\n- Task name = tutorial completed\n- Assignee = customer name (or adjust to team member)\n"
},
"typeVersion": 1
},
{
"id": "b2ceca60-90b7-4fd3-b813-e517c21b80e9",
"name": "Nota Adhesiva7",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
656
],
"parameters": {
"height": 240,
"content": "📊 **Save Task Data**\n\nAppends or updates ClickUp task details into a second Google Sheet.\n\n**Purpose:**\n- Maintain enriched task dataset\n- Easy reporting on support/onboarding requests\n"
},
"typeVersion": 1
},
{
"id": "3428b6c8-7cdd-4cb5-80b9-4d2cdcdcb8f7",
"name": "Nota Adhesiva8",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
928
],
"parameters": {
"height": 272,
"content": "🤖 **AI Summarizer**\n\nReads full form submission and produces a clean structured JSON with:\n- Summary (2–3 sentences)\n- Insights (bullet points)\n- Call To Action (one next step)\n\nEnsures raw text is turned into actionable insights.\n"
},
"typeVersion": 1
},
{
"id": "8b837ce3-bad7-4746-853e-bf4e8a3da588",
"name": "Nota Adhesiva9",
"type": "n8n-nodes-base.stickyNote",
"position": [
544,
624
],
"parameters": {
"height": 256,
"content": "🛠️ **Format ClickUp Data**\n\nCleans and structures task data from ClickUp before logging it into Google Sheets.\n\n**Includes:**\n- Dates (created, due, closed)\n- Assignees, watchers, tags\n- Priority, status, custom fields\n- Task URL and metadata\n"
},
"typeVersion": 1
},
{
"id": "52bd38b8-6b2a-453c-8c37-b0b2dc8c3119",
"name": "Nota Adhesiva10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
1248
],
"parameters": {
"height": 224,
"content": "🧠 **Language Model**\n\nPowers the AI Agent by providing GPT-4o capabilities from Azure OpenAI.\n\n**Setup:**\n- Connected with your Azure credentials\n- Model: gpt-4o\n"
},
"typeVersion": 1
},
{
"id": "33dedf53-430f-477c-8baa-fbe014630da2",
"name": "Nota Adhesiva11",
"type": "n8n-nodes-base.stickyNote",
"position": [
288,
1296
],
"parameters": {
"height": 224,
"content": "🗂️ **Conversation Memory**\n\nProvides short-term memory to the AI Agent for context handling.\n\n**Config:**\n- Keeps last 7 turns\n- Session key = json_review\n"
},
"typeVersion": 1
},
{
"id": "34eafdd1-7527-46ab-8ac3-4992887b92d8",
"name": "Nota Adhesiva12",
"type": "n8n-nodes-base.stickyNote",
"position": [
576,
1248
],
"parameters": {
"height": 224,
"content": "📦 **Structured Parser**\n\nValidates and enforces AI output into the required JSON format.\n\n**Schema:**\n- summary: string\n- insights: array of strings\n- callToAction: string\n"
},
"typeVersion": 1
},
{
"id": "f43e42ee-3424-4745-a405-edbf37bedcc6",
"name": "Nota Adhesiva13",
"type": "n8n-nodes-base.stickyNote",
"position": [
768,
976
],
"parameters": {
"height": 224,
"content": "💬 **Slack Notification**\n\nPosts AI-generated summary, insights, and action items to a Slack channel.\n\n**Setup:**\n- Channel: reply-needed\n- Format: summary + insights + call to action\n"
},
"typeVersion": 1
},
{
"id": "351fd454-e8eb-450c-b6fe-f0ab1fa68962",
"name": "Formatear Datos del Cliente para Sheets",
"type": "n8n-nodes-base.code",
"position": [
560,
656
],
"parameters": {
"jsCode": "// ClickUp Data Formatter for Google Sheets\n// This code formats ClickUp task data into a structured format for spreadsheet logging\n\nconst inputData = $input.all();\nconst formattedData = [];\n\nfor (const item of inputData) {\n const taskData = item.json;\n \n // Format dates for better readability\n const formatDate = (timestamp) => {\n if (!timestamp) return '';\n return new Date(parseInt(timestamp)).toLocaleString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n timeZone: 'UTC'\n });\n };\n \n // Extract assignee names\n const getAssignees = (assignees) => {\n if (!assignees || assignees.length === 0) return 'Unassigned';\n return assignees.map(assignee => assignee.username).join(', ');\n };\n \n // Extract watcher names\n const getWatchers = (watchers) => {\n if (!watchers || watchers.length === 0) return '';\n return watchers.map(watcher => watcher.username).join(', ');\n };\n \n // Extract tags\n const getTags = (tags) => {\n if (!tags || tags.length === 0) return '';\n return tags.map(tag => tag.name).join(', ');\n };\n \n // Extract custom fields\n const getCustomFields = (customFields) => {\n if (!customFields || customFields.length === 0) return '';\n return customFields.map(field => `${field.name}: ${field.value}`).join(' | ');\n };\n \n // Format priority\n const getPriority = (priority) => {\n if (!priority) return 'None';\n return priority.priority || 'None';\n };\n \n // Calculate time estimates and spent in hours\n const formatTime = (timeInMs) => {\n if (!timeInMs || timeInMs === 0) return '0';\n return (timeInMs / (1000 * 60 * 60)).toFixed(2); // Convert to hours\n };\n \n // Format the data for Google Sheets\n const formattedItem = {\n // Basic Task Information\n 'Task ID': taskData.id || '',\n 'Task Name': taskData.name || '',\n 'Description': taskData.description || taskData.text_content || '',\n 'Status': taskData.status?.status || '',\n 'Status Color': taskData.status?.color || '',\n 'Priority': getPriority(taskData.priority),\n \n // Dates\n 'Date Created': formatDate(taskData.date_created),\n 'Date Updated': formatDate(taskData.date_updated),\n 'Date Closed': formatDate(taskData.date_closed),\n 'Date Done': formatDate(taskData.date_done),\n 'Due Date': formatDate(taskData.due_date),\n 'Start Date': formatDate(taskData.start_date),\n \n // People\n 'Creator': taskData.creator?.username || '',\n 'Creator Email': taskData.creator?.email || '',\n 'Assignees': getAssignees(taskData.assignees),\n 'Watchers': getWatchers(taskData.watchers),\n \n // Organization\n 'List Name': taskData.list?.name || '',\n 'List ID': taskData.list?.id || '',\n 'Project Name': taskData.project?.name || '',\n 'Project ID': taskData.project?.id || '',\n 'Folder Name': taskData.folder?.name || '',\n 'Space ID': taskData.space?.id || '',\n 'Team ID': taskData.team_id || '',\n \n // Task Details\n 'Points': taskData.points || 0,\n 'Time Estimate (Hours)': formatTime(taskData.time_estimate),\n 'Time Spent (Hours)': formatTime(taskData.time_spent),\n 'Order Index': taskData.orderindex || '',\n 'Archived': taskData.archived ? 'Yes' : 'No',\n \n // Additional Information\n 'Tags': getTags(taskData.tags),\n 'Custom Fields': getCustomFields(taskData.custom_fields),\n 'Has Dependencies': taskData.dependencies && taskData.dependencies.length > 0 ? 'Yes' : 'No',\n 'Has Linked Tasks': taskData.linked_tasks && taskData.linked_tasks.length > 0 ? 'Yes' : 'No',\n 'Has Checklists': taskData.checklists && taskData.checklists.length > 0 ? 'Yes' : 'No',\n \n // URLs and Sharing\n 'Task URL': taskData.url || '',\n 'Public Sharing': taskData.sharing?.public ? 'Yes' : 'No',\n 'Permission Level': taskData.permission_level || '',\n \n // Metadata\n 'Data Processed At': new Date().toISOString(),\n 'Processing Status': 'Success'\n };\n \n formattedData.push({\n json: formattedItem,\n pairedItem: item.pairedItem\n });\n}\n\n// Return the formatted data\nreturn formattedData;"
},
"typeVersion": 2
},
{
"id": "ad96b89c-c380-44d6-a0ad-6a4504e79b35",
"name": "Crear Tarea de Incorporación en ClickUp",
"type": "n8n-nodes-base.clickUp",
"position": [
320,
656
],
"parameters": {
"list": "901411336526",
"name": "={{ $('Log to Google Sheets').item.json[\"Which tutorial did you complete?\"] }}",
"team": "9014871666",
"space": "90143681766",
"folderless": true,
"additionalFields": {
"assignees": "={{ $('Log to Google Sheets').item.json[\"First name\"] }}"
}
},
"credentials": {
"clickUpApi": {
"id": "gDQJASsbW56RbLoy",
"name": "ClickUp account vivek"
}
},
"typeVersion": 1
},
{
"id": "3f90bc74-ed0d-42f7-9761-644ee7cf7185",
"name": "Manejar Correo Faltante y registrar error",
"type": "n8n-nodes-base.function",
"position": [
-96,
816
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "3e2c977e-4bfb-48da-bc5b-6248e2d719e4",
"connections": {
"031c5052-83c7-43ee-87d8-e9be9b23fd11": {
"main": [
[
{
"node": "46b1e8b2-4f27-4f90-bc3f-f04b9023d416",
"type": "main",
"index": 0
}
]
]
},
"4868a1af-06d1-4fe0-aa3f-9f1dca28163b": {
"ai_memory": [
[
{
"node": "031c5052-83c7-43ee-87d8-e9be9b23fd11",
"type": "ai_memory",
"index": 0
}
]
]
},
"9fa1fad1-085e-4a81-b561-1b9bcf13156b": {
"main": [
[
{
"node": "1a77e0ab-86e6-4ef8-8e72-fad93fc4827c",
"type": "main",
"index": 0
}
]
]
},
"cd2d4992-4229-4081-8ab3-e757e4e3d896": {
"main": [
[
{
"node": "0631a301-2647-4ff4-af72-4cea1b6d4a58",
"type": "main",
"index": 0
},
{
"node": "ad96b89c-c380-44d6-a0ad-6a4504e79b35",
"type": "main",
"index": 0
},
{
"node": "031c5052-83c7-43ee-87d8-e9be9b23fd11",
"type": "main",
"index": 0
}
],
[
{
"node": "3f90bc74-ed0d-42f7-9761-644ee7cf7185",
"type": "main",
"index": 0
}
]
]
},
"1a77e0ab-86e6-4ef8-8e72-fad93fc4827c": {
"main": [
[
{
"node": "cd2d4992-4229-4081-8ab3-e757e4e3d896",
"type": "main",
"index": 0
}
]
]
},
"d7875033-c362-4d0e-9fb2-9c62d866dabe": {
"ai_languageModel": [
[
{
"node": "031c5052-83c7-43ee-87d8-e9be9b23fd11",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"0d20f7f1-6c5a-4608-a22b-4c24800e5af4": {
"ai_outputParser": [
[
{
"node": "031c5052-83c7-43ee-87d8-e9be9b23fd11",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"ad96b89c-c380-44d6-a0ad-6a4504e79b35": {
"main": [
[
{
"node": "351fd454-e8eb-450c-b6fe-f0ab1fa68962",
"type": "main",
"index": 0
}
]
]
},
"351fd454-e8eb-450c-b6fe-f0ab1fa68962": {
"main": [
[
{
"node": "fe9be2b3-c57f-4fec-a525-5f067f72b0ca",
"type": "main",
"index": 0
}
]
]
},
"0631a301-2647-4ff4-af72-4cea1b6d4a58": {
"main": [
[
{
"node": "acb6dc41-37e1-4b4d-b850-a3b34ec43359",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Creación de contenido, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
Compartir este flujo de trabajo