Actualización de la etapa de transacción del CRM

Intermedio

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 13 nodos.Utiliza principalmente nodos como Code, SplitOut, HttpRequest, GoogleSheets, ScheduleTrigger. Actualización automatizada de etapas de transacciones de CRM, usando Stripe y Google Sheets

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
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
{
  "id": "kxb2ryCoMzkhmn1Q",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "CRM Deal Stage Update",
  "tags": [],
  "nodes": [
    {
      "id": "e3e73b68-7446-46bc-a841-f57e5c21021d",
      "name": "⏰ Activador Diario",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        96,
        896
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6d75184f-e2b1-43d1-9212-def76a8f144c",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        784
      ],
      "parameters": {
        "width": 398,
        "height": 464,
        "content": "## 🚀 Automation Start\n\n**Purpose:** This automation runs on a schedule to sync paid Stripe invoices with your CRM system.\n\n**What it does:**\n1. Fetches all paid invoices from Stripe\n2. Looks up customer details in Google Sheets\n3. Updates deal status to \"Closed\" for paid customers\n4. Syncs back to your CRM tracking sheet\n\n**💡 Tip:** Adjust the schedule interval based on how often you want to sync data."
      },
      "typeVersion": 1
    },
    {
      "id": "48817707-e147-4d4c-ad97-4f1a1c4a3234",
      "name": "🔍 Buscar Cliente en Hoja CRM",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        816,
        896
      ],
      "parameters": {
        "range": "A:C",
        "options": {},
        "sheetId": "1i0_xNab1dLKkIJ72DLfa1PXvR9VH4d8IssbsphhAAQk",
        "operation": "lookup",
        "lookupValue": "={{ $json.data.customer_email }}",
        "lookupColumn": "Stripe Email",
        "authentication": "oAuth2"
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "s4dP1fNuVZ2gWvs3",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a82686ae-13cd-41bc-a862-de5644646cc2",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        512
      ],
      "parameters": {
        "width": 358,
        "height": 364,
        "content": "## 🔍 Customer Lookup\n\n**What happens here:**\n- Takes each paid invoice email\n- Searches for matching customer in Google Sheets\n- Returns CRM details like HubSpot/Pipedrive Deal IDs\n\n**Sheet Structure Expected:**\n- Column A: Stripe Email\n- Column B: HubSpot Deal ID  \n- Column C: Pipedrive Deal ID\n\n**⚠️ Important:** Make sure your sheet has these exact column headers!"
      },
      "typeVersion": 1
    },
    {
      "id": "d66985e5-229b-4a76-a60e-1a2098d0a5da",
      "name": "💳 Obtener Facturas Pagadas de Stripe",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        336,
        896
      ],
      "parameters": {
        "url": "https://api.stripe.com/v1/invoices",
        "options": {},
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "status",
              "value": "paid"
            }
          ]
        },
        "nodeCredentialType": "stripeApi"
      },
      "credentials": {
        "stripeApi": {
          "id": "DV4tPpxjbOUkGfAx",
          "name": "Stripe account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7ffbdab4-3601-40b9-8db2-93d5f802b0ae",
      "name": "Nota Adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        544
      ],
      "parameters": {
        "width": 318,
        "height": 320,
        "content": "## 💳 Stripe API Call\n\n**Purpose:** Fetches all invoices with \"paid\" status from Stripe\n\n**API Endpoint:** /v1/invoices?status=paid\n\n**Returns:** List of paid invoices with customer details\n\n**🔧 Setup Required:**\n- Add your Stripe API credentials\n- Ensure API key has read permissions for invoices"
      },
      "typeVersion": 1
    },
    {
      "id": "5f726010-2a52-4034-9aaf-8c2a788feb93",
      "name": "📋 Dividir Lista de Facturas",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        576,
        896
      ],
      "parameters": {
        "include": "allOtherFields",
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 1
    },
    {
      "id": "6a606041-a880-46aa-89b9-a739c5ec052e",
      "name": "Nota Adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        1088
      ],
      "parameters": {
        "width": 288,
        "height": 296,
        "content": "## 📋 Split Array Data\n\n**Purpose:** Converts the array of invoices into individual items\n\n**Why needed:** Stripe returns invoices as an array in the 'data' field. This node separates each invoice so we can process them individually.\n\n**Result:** Each paid invoice becomes a separate workflow item that can be processed in the next steps."
      },
      "typeVersion": 1
    },
    {
      "id": "d7b8f723-5935-40a9-9e66-ca6b274ddff8",
      "name": "🧹 Limpiar Datos y Marcar como Cerrado",
      "type": "n8n-nodes-base.code",
      "position": [
        1024,
        896
      ],
      "parameters": {
        "jsCode": "return items\n  .filter((item, index, self) => {\n    return (\n      Object.keys(item.json).length > 0 &&\n      index === self.findIndex(t => t.json[\"Stripe Email\"] === item.json[\"Stripe Email\"])\n    );\n  })\n  .map(item => {\n    return {\n      json: {\n        ...item.json,\n        Deal: \"Closed\"\n      }\n    };\n  });\n"
      },
      "typeVersion": 2
    },
    {
      "id": "ef040dd8-67d2-4bfb-82aa-7d30289e3682",
      "name": "Nota Adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        1104
      ],
      "parameters": {
        "width": 358,
        "height": 424,
        "content": "## 🧹 Data Processing Logic\n\n**What this code does:**\n1. **Removes duplicates** - If same email appears multiple times, keeps only one\n2. **Filters empty records** - Removes any items without data\n3. **Sets deal status** - Adds 'Deal: Closed' to each record\n\n**Why needed:** \n- Prevents duplicate updates in your CRM\n- Ensures only valid records are processed\n- Automatically marks deals as won/closed since payment was received\n\n**💡 Customization:** Change 'Closed' to match your CRM's deal stage naming (e.g., 'Won', 'Closed-Won', etc.)"
      },
      "typeVersion": 1
    },
    {
      "id": "c7bd8e45-0fd1-4d66-9ce6-25a9a858b267",
      "name": "✅ Actualizar Hoja CRM con Acuerdos Cerrados",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1232,
        896
      ],
      "parameters": {
        "columns": {
          "value": {
            "Deal": "={{ $json.Deal }}",
            "Stripe Email": "={{ $json[\"Stripe Email\"] }}",
            "HubSpot Deal ID": "={{ $json[\"HubSpot Deal ID\"] }}",
            "Pipedrive Deal ID": "={{ $json[\"Pipedrive Deal ID\"] }}"
          },
          "schema": [
            {
              "id": "Stripe Email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Stripe Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "HubSpot Deal ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "HubSpot Deal ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Pipedrive Deal ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Pipedrive Deal ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Deal",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Deal",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Stripe Email"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1552459854,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1i0_xNab1dLKkIJ72DLfa1PXvR9VH4d8IssbsphhAAQk/edit#gid=1552459854",
          "cachedResultName": "CRM"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1i0_xNab1dLKkIJ72DLfa1PXvR9VH4d8IssbsphhAAQk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1i0_xNab1dLKkIJ72DLfa1PXvR9VH4d8IssbsphhAAQk/edit?usp=drivesdk",
          "cachedResultName": "Stripe Invoice store"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "s4dP1fNuVZ2gWvs3",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "59518fac-7bf3-4cad-9dc4-75dfe277b3e4",
      "name": "Nota Adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        448
      ],
      "parameters": {
        "width": 378,
        "height": 424,
        "content": "## ✅ Final Update Step\n\n**Action:** Updates the Google Sheet with closed deal status\n\n**How it works:**\n- **Matches by:** Stripe Email (finds existing rows)\n- **Updates:** Deal status column to 'Closed'\n- **Preserves:** All existing CRM IDs and data\n\n**Column Mapping:**\n- Stripe Email → Stripe Email\n- HubSpot Deal ID → HubSpot Deal ID  \n- Pipedrive Deal ID → Pipedrive Deal ID\n- Deal Status → Deal (set to 'Closed')\n\n**🎯 Result:** Your CRM tracking sheet now shows which deals are closed based on Stripe payments!"
      },
      "typeVersion": 1
    },
    {
      "id": "8d610b5a-0db9-41e9-8380-2719f72e4572",
      "name": "Nota Adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        768
      ],
      "parameters": {
        "width": 398,
        "height": 440,
        "content": "## 🎯 Automation Complete!\n\n**What was accomplished:**\n✅ Fetched all paid Stripe invoices\n✅ Found matching customers in your CRM sheet\n✅ Removed duplicates and cleaned data\n✅ Updated deal status to 'Closed'\n✅ Synced everything back to Google Sheets\n\n**Next Steps:**\n1. Set up your preferred schedule (daily, hourly, etc.)\n2. Test with a few sample records first\n3. Monitor the execution logs for any errors\n4. Customize deal status naming if needed\n\n**🔧 Troubleshooting:**\n- Check Stripe API credentials\n- Verify Google Sheets permissions\n- Ensure sheet column headers match exactly"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "72d572b1-bc10-442e-a0df-09a43c88cb7e",
  "connections": {
    "e3e73b68-7446-46bc-a841-f57e5c21021d": {
      "main": [
        [
          {
            "node": "d66985e5-229b-4a76-a60e-1a2098d0a5da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5f726010-2a52-4034-9aaf-8c2a788feb93": {
      "main": [
        [
          {
            "node": "48817707-e147-4d4c-ad97-4f1a1c4a3234",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "48817707-e147-4d4c-ad97-4f1a1c4a3234": {
      "main": [
        [
          {
            "node": "d7b8f723-5935-40a9-9e66-ca6b274ddff8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d7b8f723-5935-40a9-9e66-ca6b274ddff8": {
      "main": [
        [
          {
            "node": "c7bd8e45-0fd1-4d66-9ce6-25a9a858b267",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d66985e5-229b-4a76-a60e-1a2098d0a5da": {
      "main": [
        [
          {
            "node": "5f726010-2a52-4034-9aaf-8c2a788feb93",
            "type": "main",
            "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?

Intermedio - 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

Pedidos de Airtable a facturas de Stripe (B2B/recaudación manual)
Crear facturas de Stripe desde pedidos de Airtable y registrar usando Google Sheets
If
Code
Stripe
+
If
Code
Stripe
19 NodosRahul Joshi
Creación de contenido
Rastreador de velocidad de canal GoHighLevel y recordatorios de automatización para transacciones estancadas
Usar GoHighLevel, Gmail y Slack para analizar la velocidad del pipeline y alertar sobre transacciones estancadas
If
Code
Gmail
+
If
Code
Gmail
25 NodosRahul Joshi
Creación de contenido
Clasificador de intenciones de prospectos y creador automático de tareas
Clasificación automática de la intención de prospectos de Google Sheets a ClickUp con Azure GPT-4
Set
Switch
Click Up
+
Set
Switch
Click Up
32 NodosRahul Joshi
Creación de contenido
Automatización de la recopilación y procesamiento de respuestas de encuestas NPS con GoHighLevel, Gmail y Notion
Automatizar la recopilación de encuestas NPS y el procesamiento de respuestas con GoHighLevel, Gmail y Notion
If
Code
Gmail
+
If
Code
Gmail
27 NodosRahul Joshi
Creación de contenido
Archivado de recibos de pago con Stripe, Google Drive y Google Sheets
Automatizar el procesamiento de recibos de pago: envío de correos, archivo y seguimiento con Stripe y Google Workspace
If
Gmail
Split Out
+
If
Gmail
Split Out
21 NodosRahul Joshi
Creación de contenido
Resumen de ingresos trimestral/mensual enviado a Slack
Envío automatizado de informes mensuales y trimestrales de ingresos de Stripe a Slack usando insights financieros
Code
Merge
Slack
+
Code
Merge
Slack
18 NodosRahul Joshi
Creación de contenido
Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos13
Categoría2
Tipos de nodos6
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Rahul Joshi

Rahul Joshi

@rahul08

Rahul 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.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34