GPT-4o: Integración con Twilio y funciones de seguimiento automático

Avanzado

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 21 nodos.Utiliza principalmente nodos como If, Code, Wait, Merge, Slack. GPT-4o: integración con Twilio y funciones de seguimiento automático

Requisitos previos
  • Bot Token de Slack o URL de Webhook
  • Clave de API de Airtable
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "d23ca638a83fba54c06ee57ee6430730afe25e4177b234d2a702bd83cbe8f349"
  },
  "nodes": [
    {
      "id": "5f0e216a-ea69-4674-af22-3fe170cbd766",
      "name": "Combinar Resultados",
      "type": "n8n-nodes-base.merge",
      "position": [
        22416,
        16208
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "b7116aa4-8d06-4ff4-8d74-da1b030a62f2",
      "name": "Registrar Resultados",
      "type": "n8n-nodes-base.code",
      "position": [
        22640,
        16208
      ],
      "parameters": {
        "jsCode": "// Track which channels were used\nconst items = $input.all();\n\n// Check if SMS was sent (will have twilio response)\nconst smsSent = items.some(item => item.json.sid || item.json.messageSid);\n\n// Check if Email was sent (will have email response)\nconst emailSent = items.some(item => item.json.accepted || item.json.messageId);\n\n// Get customer data from Prepare Messages node\nconst customerData = $('Prepare Messages2').first().json;\n\nreturn {\n  json: {\n    ...customerData,\n    sms_sent: smsSent,\n    email_sent: emailSent,\n    messages_sent_at: new Date().toISOString()\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "58a9ef5a-8fb0-4781-8eb0-b4dd3eeb6ad0",
      "name": "Nota Adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        19280,
        15872
      ],
      "parameters": {
        "width": 928,
        "height": 1392,
        "content": "## 📞 Missed Call Revenue Recovery Bot\n\n### 📋 Setup Instructions\n\n**Step 1: Configure Twilio**\n• Add Twilio credential (Account SID + Auth Token)\n• Replace `+15551234567` with your Twilio phone number (2 SMS nodes)\n• Webhook auto-configures when workflow activates\n\n**Step 2: Configure Integrations**\n🔹 **Slack Channel**\n   • Channel → View details → Copy Channel ID\n   • Replace `REPLACE_WITH_SLACK_SALES_CHANNEL_ID`\n\n🔹 **Airtable**\n   • Base ID from URL → `appXXXXXXXXXXXXXX`\n   • Table ID from URL → `tblYYYYYYYYYYYY`\n   • Columns: Caller_Number, Customer_Name, Call_Time, Priority, SMS_Sent, Email_Sent, Booking_Link, Status, Urgency_Score, Follow_Up_Date\n\n🔹 **Business Details**\n   • Booking URL: Replace `https://cal.com/your-business`\n   • Email: Replace `your-business@example.com`\n   • Follow-up SMS: Replace `+1-555-0100` and `Your Business Name`\n\n**Step 3: Optional CRM**\n• Replace `https://your-crm-api.com` with your CRM endpoints\n• Add HTTP Header Auth credential\n• Or disable \"Check Existing Contact\" + \"Check if Booked\" nodes\n\n**Step 4: Credentials**\n✓ Twilio API ✓ OpenAI (GPT-4o) ✓ Slack OAuth2\n✓ Airtable Token ✓ SMTP ✓ CRM API (optional)\n\n---\n\n### ⚙️ Workflow\n**Missed Call** → **Analyze Context** → **CRM Lookup** → **AI Response** → **SMS/Email** → **Merge Results** → **Track Sent** → **Log Airtable** → **Slack Notify** → **24h Wait** → **Check Booking** → **Follow-up SMS**\n\n• AI personalizes based on time/customer status\n• Tracks SMS/Email delivery automatically\n• 24h auto-follow-up if no booking detected"
      },
      "typeVersion": 1
    },
    {
      "id": "f62d032e-17c4-498c-988a-434e2288a21c",
      "name": "Llamada Perdida Detectada2",
      "type": "n8n-nodes-base.twilioTrigger",
      "position": [
        20352,
        16208
      ],
      "webhookId": "twilio-missed-call",
      "parameters": {
        "updates": [
          "com.twilio.voice.insights.call-summary.complete"
        ]
      },
      "credentials": {
        "twilioApi": {
          "id": "vDXzBZzToDaIu6Nn",
          "name": "Twilio account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fe521a57-2f91-45f5-a09d-efd7fd3cae9f",
      "name": "Analizar Contexto de Llamada2",
      "type": "n8n-nodes-base.code",
      "position": [
        20576,
        16208
      ],
      "parameters": {
        "jsCode": "// Extract and analyze call data\nconst callData = $input.first().json;\n\n// Twilio Call Status values:\n// 'completed' = answered and ended normally\n// 'no-answer' = no answer or rejected\n// 'busy' = busy signal\n// 'canceled' = hung up while queued/ringing\n// 'failed' = invalid number or error\n\n// Check if call was answered (CallDuration > 0 means conversation happened)\nconst callDuration = parseInt(callData.CallDuration) || 0;\nconst callStatus = callData.CallStatus || '';\n\n// Skip answered calls (completed with duration > 0)\nconst wasAnswered = callStatus === 'completed' && callDuration > 0;\n\nif (wasAnswered) {\n  return []; // Don't process answered calls\n}\n\n// Extract caller information (handle both camelCase and PascalCase)\nconst callerNumber = callData.From || callData.from || '';\nconst receiverNumber = callData.To || callData.to || '';\nconst timestamp = callData.Timestamp || callData.timestamp || new Date().toISOString();\nconst callTime = new Date(timestamp);\nconst currentHour = callTime.getHours();\n\n// Determine business context\nconst isBusinessHours = currentHour >= 9 && currentHour < 17;\nconst dayOfWeek = callTime.getDay();\nconst isWeekend = dayOfWeek === 0 || dayOfWeek === 6;\n\nreturn {\n  json: {\n    caller_number: callerNumber,\n    receiver_number: receiverNumber,\n    call_time: callTime.toISOString(),\n    call_time_local: callTime.toLocaleString(),\n    call_status: callStatus,\n    call_duration: callDuration,\n    is_business_hours: isBusinessHours,\n    is_weekend: isWeekend,\n    call_sid: callData.CallSid || callData.callSid || '',\n    urgency_score: !isBusinessHours ? 8 : 5, // Higher urgency for after-hours calls\n    context: {\n      time_of_day: currentHour < 12 ? 'morning' : currentHour < 17 ? 'afternoon' : 'evening',\n      day_type: isWeekend ? 'weekend' : 'weekday'\n    }\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "e7a1c806-c63b-45f8-8bf5-51ffc12486d0",
      "name": "Verificar Contacto Existente2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        20800,
        16208
      ],
      "parameters": {
        "url": "=https://your-crm-api.com/contacts/search?phone={{ $json.caller_number }}",
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.1
    },
    {
      "id": "10faf764-b0e6-486b-92c7-8b08663af3ed",
      "name": "Combinar Datos del Cliente2",
      "type": "n8n-nodes-base.code",
      "position": [
        21024,
        16208
      ],
      "parameters": {
        "jsCode": "// Merge call data with CRM history\nconst callData = $('Analyze Call Context2').first().json;\nconst crmData = $input.first().json;\n\nconst hasHistory = crmData && crmData.contact;\nconst contact = crmData?.contact || {};\n\nreturn {\n  json: {\n    ...callData,\n    \n    // CRM Information\n    is_existing_customer: hasHistory,\n    customer_name: contact.name || 'Unknown',\n    customer_email: contact.email || null,\n    last_contact_date: contact.last_contact || null,\n    customer_status: contact.status || 'new',\n    previous_purchases: contact.purchase_count || 0,\n    lifetime_value: contact.lifetime_value || 0,\n    notes: contact.notes || '',\n    \n    // Prioritization\n    priority_level: hasHistory && contact.lifetime_value > 1000 ? 'high' : hasHistory ? 'medium' : 'new',\n    follow_up_urgency: hasHistory ? 'immediate' : 'standard'\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "be1b553a-725b-4a80-b901-1d469794bdaa",
      "name": "Generar Respuesta de IA2",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        21280,
        16208
      ],
      "parameters": {
        "text": "=Generate a personalized missed call response for the following situation:\n\nCustomer Information:\n- Name: {{ $json.customer_name }}\n- Status: {{ $json.is_existing_customer ? 'Existing Customer' : 'New Prospect' }}\n- Priority: {{ $json.priority_level }}\n- Previous Purchases: {{ $json.previous_purchases }}\n\nCall Context:\n- Time: {{ $json.context.time_of_day }} on a {{ $json.context.day_type }}\n- Business Hours: {{ $json.is_business_hours ? 'Yes' : 'No (After Hours)' }}\n- Phone: {{ $json.caller_number }}\n\nCreate TWO versions:\n\n1. SMS_MESSAGE (160 chars max): Friendly, apologetic, includes booking link placeholder\n2. EMAIL_MESSAGE (200 words): Professional, personalized, multiple contact options\n\nReturn JSON with:\n- sms: Brief apologetic message\n- email_subject: Personalized subject line\n- email_body: Professional email with [BOOKING_LINK] placeholder\n- tone: warm/professional/urgent\n- recommended_channel: sms/email/both\n\nTone should be:\n- Warm and apologetic\n- Acknowledge their attempt to reach us\n- Offer immediate booking option\n- Personalize based on customer status",
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.4
    },
    {
      "id": "27649586-1171-4e61-8cf7-d1239ab8ce89",
      "name": "OpenAI Chat Model8",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        21248,
        16432
      ],
      "parameters": {
        "model": "gpt-4o",
        "options": {
          "maxTokens": 500,
          "temperature": 0.7
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d4e13bed-0f1b-41ea-a450-81b4e9ac5550",
      "name": "Structured Output Parser8",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        21376,
        16432
      ],
      "parameters": {
        "autoFix": true,
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"sms\": {\n      \"type\": \"string\",\n      \"description\": \"SMS message (160 chars max)\"\n    },\n    \"email_subject\": {\n      \"type\": \"string\",\n      \"description\": \"Email subject line\"\n    },\n    \"email_body\": {\n      \"type\": \"string\",\n      \"description\": \"Email body with [BOOKING_LINK] placeholder\"\n    },\n    \"tone\": {\n      \"type\": \"string\",\n      \"enum\": [\"warm\", \"professional\", \"urgent\"],\n      \"description\": \"Message tone\"\n    },\n    \"recommended_channel\": {\n      \"type\": \"string\",\n      \"enum\": [\"sms\", \"email\", \"both\"],\n      \"description\": \"Recommended communication channel\"\n    }\n  },\n  \"required\": [\"sms\", \"email_subject\", \"email_body\", \"tone\", \"recommended_channel\"]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "e16ca74e-3796-4f9f-8279-5aab98395133",
      "name": "Preparar Mensajes2",
      "type": "n8n-nodes-base.code",
      "position": [
        21744,
        16208
      ],
      "parameters": {
        "jsCode": "// Parse AI response and prepare messages\nconst aiResponse = $input.first().json;\nconst customerData = $('Merge Customer Data2').first().json;\n\n// Generate booking link (Cal.com or Calendly)\nconst bookingUrl = 'https://cal.com/your-business'; // Replace with your booking link\nconst bookingLink = `${bookingUrl}?name=${encodeURIComponent(customerData.customer_name)}&phone=${encodeURIComponent(customerData.caller_number)}`;\n\n// Add booking link to messages\nconst smsWithLink = `${aiResponse.sms}\\n\\nBook instantly: ${bookingLink}`;\nconst emailWithLink = aiResponse.email_body.replace('[BOOKING_LINK]', bookingLink);\n\nreturn {\n  json: {\n    ...customerData,\n    \n    // AI-generated messages\n    sms_message: smsWithLink,\n    email_subject: aiResponse.email_subject,\n    email_body: emailWithLink,\n    message_tone: aiResponse.tone,\n    recommended_channel: aiResponse.recommended_channel,\n    \n    // Booking information\n    booking_link: bookingLink,\n    \n    // Metadata\n    response_generated_at: new Date().toISOString()\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "10884b30-701c-4c5f-8d92-abc00f9228a8",
      "name": "¿Enviar SMS?2",
      "type": "n8n-nodes-base.if",
      "position": [
        21968,
        16112
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "sms-channel",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.recommended_channel }}",
              "rightValue": "sms"
            },
            {
              "id": "both-channels",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.recommended_channel }}",
              "rightValue": "both"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "52dce42a-1e0b-4389-bd9a-422b3dc04cba",
      "name": "Enviar SMS2",
      "type": "n8n-nodes-base.twilio",
      "position": [
        22192,
        16112
      ],
      "parameters": {
        "to": "={{ $json.caller_number }}",
        "from": "+15551234567",
        "message": "={{ $json.sms_message }}",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "5c68f5ef-2058-4d58-a257-b6779488f3cb",
      "name": "¿Enviar Correo?2",
      "type": "n8n-nodes-base.if",
      "position": [
        21968,
        16304
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "has-email",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $json.customer_email }}",
              "rightValue": ""
            },
            {
              "id": "email-channel",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.recommended_channel }}",
              "rightValue": "email"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a76db0f7-5e55-4be4-947f-dc9921779442",
      "name": "Enviar Correo2",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        22192,
        16304
      ],
      "webhookId": "b3c6d8bc-0f42-4cbe-a05c-1d026f0d1c63",
      "parameters": {
        "options": {},
        "subject": "={{ $json.email_subject }}",
        "toEmail": "={{ $json.customer_email }}",
        "fromEmail": "your-business@example.com"
      },
      "credentials": {
        "smtp": {
          "id": "qmhzTud0RSbKigGt",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "1ca48805-f52b-4e18-93f1-c79290d328a3",
      "name": "Registrar en CRM2",
      "type": "n8n-nodes-base.airtable",
      "position": [
        22864,
        16208
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "REPLACE_WITH_AIRTABLE_BASE_ID"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "REPLACE_WITH_AIRTABLE_TABLE_ID"
        },
        "columns": {
          "value": {
            "Status": "Pending Response",
            "Priority": "={{ $json.priority_level }}",
            "SMS_Sent": "={{ $json.sms_sent ? 'Yes' : 'No' }}",
            "Call_Time": "={{ $json.call_time }}",
            "Email_Sent": "={{ $json.email_sent ? 'Yes' : 'No' }}",
            "Booking_Link": "={{ $json.booking_link }}",
            "Caller_Number": "={{ $json.caller_number }}",
            "Customer_Name": "={{ $json.customer_name }}",
            "Urgency_Score": "={{ $json.urgency_score }}",
            "Follow_Up_Date": "={{ new Date(Date.now() + 86400000).toISOString() }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "upsert"
      },
      "typeVersion": 2
    },
    {
      "id": "da785def-5222-4e81-a0ed-8b9ef698732d",
      "name": "Notificar al Equipo de Ventas3",
      "type": "n8n-nodes-base.slack",
      "position": [
        23088,
        16208
      ],
      "webhookId": "3ad339ab-392a-44ad-b967-aa02e04de2af",
      "parameters": {
        "text": "=📞 *Missed Call Alert*\n\n*Customer:* {{ $json.customer_name }}{{ $json.is_existing_customer ? ' (Existing Customer 🌟)' : ' (New Prospect)' }}\n*Phone:* {{ $json.caller_number }}\n*Time:* {{ $json.call_time_local }}\n*Priority:* {{ $json.priority_level.toUpperCase() }}\n\n*Context:*\n• Call during: {{ $json.is_business_hours ? 'Business Hours' : 'After Hours ⚠️' }}\n• Customer Status: {{ $json.customer_status }}\n{{ $json.previous_purchases > 0 ? '• Previous Purchases: ' + $json.previous_purchases : '' }}\n{{ $json.lifetime_value > 0 ? '• Lifetime Value: $' + $json.lifetime_value : '' }}\n\n*Auto-Response Sent:*\n{{ $json.sms_sent ? '✅ SMS' : '❌ SMS' }} | {{ $json.email_sent ? '✅ Email' : '❌ Email' }}\n\n*Booking Link:* {{ $json.booking_link }}\n\n🎯 *Action Required:* {{ $json.follow_up_urgency === 'immediate' ? 'Call back ASAP!' : 'Follow up within 24 hours' }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "REPLACE_WITH_SLACK_SALES_CHANNEL_ID"
        },
        "otherOptions": {
          "includeLinkToWorkflow": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "a162a326-8ad2-499a-b6a1-5d004683570f",
      "name": "Esperar 24 Horas2",
      "type": "n8n-nodes-base.wait",
      "position": [
        23312,
        16208
      ],
      "webhookId": "8c3d23ad-f82f-4e2f-b4af-fb1b19e5b790",
      "parameters": {
        "unit": "hours",
        "amount": 24
      },
      "typeVersion": 1.1
    },
    {
      "id": "ed555f98-119d-4d52-822f-88730c1324e8",
      "name": "Verificar si Agendó2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        23536,
        16208
      ],
      "parameters": {
        "url": "=https://your-crm-api.com/contacts/{{ $json.caller_number }}/bookings",
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "exVxOWDpxBu7XVql",
          "name": "nithichote.com header auth key"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "0433e538-eef4-48d8-9511-668bfe41fc27",
      "name": "¿Sin Respuesta?2",
      "type": "n8n-nodes-base.if",
      "position": [
        23760,
        16208
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "no-booking",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.booking_count || 0 }}",
              "rightValue": 0
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5a1e4e37-abf8-4979-b90b-7ba2da1f05e7",
      "name": "Enviar SMS de Seguimiento2",
      "type": "n8n-nodes-base.twilio",
      "position": [
        23984,
        16208
      ],
      "parameters": {
        "to": "={{ $json.caller_number }}",
        "from": "+15551234567",
        "message": "=Hi {{ $json.customer_name }},\n\nWe tried reaching you yesterday. Still interested in scheduling?\n\nBook now: {{ $json.booking_link }}\n\nOr call us: +1-555-0100\n\nThanks!\nYour Business Name",
        "options": {}
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "52dce42a-1e0b-4389-bd9a-422b3dc04cba": {
      "main": [
        [
          {
            "node": "5f0e216a-ea69-4674-af22-3fe170cbd766",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "10884b30-701c-4c5f-8d92-abc00f9228a8": {
      "main": [
        [
          {
            "node": "52dce42a-1e0b-4389-bd9a-422b3dc04cba",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1ca48805-f52b-4e18-93f1-c79290d328a3": {
      "main": [
        [
          {
            "node": "da785def-5222-4e81-a0ed-8b9ef698732d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a76db0f7-5e55-4be4-947f-dc9921779442": {
      "main": [
        [
          {
            "node": "5f0e216a-ea69-4674-af22-3fe170cbd766",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "5c68f5ef-2058-4d58-a257-b6779488f3cb": {
      "main": [
        [
          {
            "node": "a76db0f7-5e55-4be4-947f-dc9921779442",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5f0e216a-ea69-4674-af22-3fe170cbd766": {
      "main": [
        [
          {
            "node": "b7116aa4-8d06-4ff4-8d74-da1b030a62f2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0433e538-eef4-48d8-9511-668bfe41fc27": {
      "main": [
        [
          {
            "node": "5a1e4e37-abf8-4979-b90b-7ba2da1f05e7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b7116aa4-8d06-4ff4-8d74-da1b030a62f2": {
      "main": [
        [
          {
            "node": "1ca48805-f52b-4e18-93f1-c79290d328a3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a162a326-8ad2-499a-b6a1-5d004683570f": {
      "main": [
        [
          {
            "node": "ed555f98-119d-4d52-822f-88730c1324e8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ed555f98-119d-4d52-822f-88730c1324e8": {
      "main": [
        [
          {
            "node": "0433e538-eef4-48d8-9511-668bfe41fc27",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e16ca74e-3796-4f9f-8279-5aab98395133": {
      "main": [
        [
          {
            "node": "10884b30-701c-4c5f-8d92-abc00f9228a8",
            "type": "main",
            "index": 0
          },
          {
            "node": "5c68f5ef-2058-4d58-a257-b6779488f3cb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da785def-5222-4e81-a0ed-8b9ef698732d": {
      "main": [
        [
          {
            "node": "a162a326-8ad2-499a-b6a1-5d004683570f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "27649586-1171-4e61-8cf7-d1239ab8ce89": {
      "ai_languageModel": [
        [
          {
            "node": "be1b553a-725b-4a80-b901-1d469794bdaa",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "d4e13bed-0f1b-41ea-a450-81b4e9ac5550",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "10faf764-b0e6-486b-92c7-8b08663af3ed": {
      "main": [
        [
          {
            "node": "be1b553a-725b-4a80-b901-1d469794bdaa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fe521a57-2f91-45f5-a09d-efd7fd3cae9f": {
      "main": [
        [
          {
            "node": "e7a1c806-c63b-45f8-8bf5-51ffc12486d0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "be1b553a-725b-4a80-b901-1d469794bdaa": {
      "main": [
        [
          {
            "node": "e16ca74e-3796-4f9f-8279-5aab98395133",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f62d032e-17c4-498c-988a-434e2288a21c": {
      "main": [
        [
          {
            "node": "fe521a57-2f91-45f5-a09d-efd7fd3cae9f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e7a1c806-c63b-45f8-8bf5-51ffc12486d0": {
      "main": [
        [
          {
            "node": "10faf764-b0e6-486b-92c7-8b08663af3ed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d4e13bed-0f1b-41ea-a450-81b4e9ac5550": {
      "ai_outputParser": [
        [
          {
            "node": "be1b553a-725b-4a80-b901-1d469794bdaa",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿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

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos21
Categoría2
Tipos de nodos14
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Greypillar

Greypillar

@greypillar

We design AI systems that fix hidden revenue leaks in service businesses. Every engagement starts with one guaranteed win in 30 days — no risk, just results.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34