Sincronización de pedidos Jotform-Telegram (enviado)

Avanzado

Este es unautomatización que contiene 32 nodos.Utiliza principalmente nodos como If, Set, Code, Wait, Switch. Sincronización empresarial JotForm automatizada: confirmación por Telegram e facturación Zoho

Requisitos previos
  • Bot Token de Telegram
  • Credenciales de API de Google Sheets

Categoría

-
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": "zCg4z524oOeWzzH9",
  "meta": {
    "instanceId": "7f1a0694161455be3a7e71f1e0dea04908b0376a1a81e3a0c1e5ac879d48f83a"
  },
  "name": "Jotform-Telegram Order Sync (Submitted)",
  "tags": [],
  "nodes": [
    {
      "id": "5dbd71ce-486c-4abd-9264-8f3d9169d03e",
      "name": "Activador JotForm",
      "type": "n8n-nodes-base.jotFormTrigger",
      "position": [
        -192,
        -176
      ],
      "webhookId": "7973d518-b1c7-4e87-9b02-242bbbef1fd8",
      "parameters": {
        "form": "{{ $form_id_placeholder }}"
      },
      "typeVersion": 1
    },
    {
      "id": "63b71df6-f37c-407d-a022-19733284d757",
      "name": "Enviar mensaje de texto",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2560,
        -208
      ],
      "webhookId": "8f5af583-46c4-4493-91d6-068530d5378f",
      "parameters": {
        "text": "=🧴 {{ $template_order_name }} Order Confirmation\nThank you, {{ $('Organize').item.json.customer.name }}! Your order {{ $('Organize').item.json.orderId }} has been received ✅  \nHere’s your summary:\n\n🛍️ Products: \n{{ $('Edit Fields').item.json.Products }}\n\n💰 Total: {{ $('Organize').item.json.total }} {{ $('Organize').item.json.currency }}\n🚚 Delivery: {{ $template_delivery_time }}  \n📍 Address: {{ $('Organize').item.json.customer.address }}\n\nNeed help? Message us here anytime 💬",
        "chatId": "={{ $('Edit Fields').item.json.ChatId }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "babe8a4d-af6b-49c4-859b-4575238b3e7f",
      "name": "Obtener fila(s) de ChatId",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1392,
        -192
      ],
      "parameters": {
        "operation": "get",
        "returnAll": true,
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "{{ $datatable_id }}",
          "cachedResultUrl": "/projects/{{ $project_id_placeholder }}/datatables/{{ $datatable_id }}",
          "cachedResultName": "JotformTelegram (Placeholder)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "691a0fd1-73f5-45b2-b0f7-25a02474de85",
      "name": "Establecer ChatId y Productos",
      "type": "n8n-nodes-base.set",
      "position": [
        1984,
        -208
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5b508d30-5a49-4ed0-a664-bdb08e86edaf",
              "name": "ChatId",
              "type": "string",
              "value": "={{ $('Get ChatId Row(s)').item.json.MessageChatId }}"
            },
            {
              "id": "27d0c17c-fe7f-4dfa-8ee2-ed8b930a4e6d",
              "name": "Products",
              "type": "string",
              "value": "={{ \n  $('Organize').item.json.products\n  .map(p => `• ${p.name.replace(/([_*[\\]()~`>#+=|{}.!-])/g, '\\\\$1')} x${p.quantity}`)\n  .join('\\n') \n}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "654f6d89-8281-4b83-a95f-88d16a40e178",
      "name": "Organizar y Generar ID de Pedido",
      "type": "n8n-nodes-base.code",
      "position": [
        16,
        -176
      ],
      "parameters": {
        "jsCode": "// Parse incoming Jotform data\nconst data = items[0].json;\n\n// Extract main fields\nconst name = `${data[\"Full Name\"].first} ${data[\"Full Name\"].last}`.trim();\nconst email = data[\"E-mail\"];\nconst phone = data[\"Contact Number\"]?.full || \"\";\nconst billing = data[\"Billing Address\"];\nconst address = [billing.addr_line1, billing.addr_line2, billing.city, billing.state, billing.postal, billing.country]\n  .filter(Boolean)\n  .join(\", \");\n\n// Extract product details\nconst products = (data[\"My Products\"].products || []).map(p => ({\n  name: p.productName,\n  quantity: p.quantity,\n  unitPrice: p.unitPrice,\n  subTotal: p.subTotal,\n  currency: p.currency,\n  options: p.productOptions.join(\", \"),\n}));\n\n// Extract total\nconst totalInfo = data[\"My Products\"].totalInfo || {};\nconst total = totalInfo.totalSum || 0;\nconst currency = totalInfo.currency || \"USD\";\n\n// Generate order ID - use placeholder prefix\nconst orderId = `{{ $order_id_prefix }}-${Math.floor(Date.now() / 1000)}`;\n\n// Escape MarkdownV2 special chars for Telegram\nconst escapeMarkdown = (text) => {\n  return text\n    ?.toString()\n    .replace(/([_*[\\]()~`>#+=|{}.!-])/g, '\\\\$1');\n};\n\n// Prepare final object\nreturn [\n  {\n    json: {\n      orderId,\n      customer: {\n        name,\n        email,\n        phone,\n        address,\n      },\n      products,\n      total,\n      currency,\n      // Pre-generate summary text for other nodes (like Google Sheets)\n      summaryText: `🧴 *{{ $template_order_name }} Order Confirmation* \nThank you, ${escapeMarkdown(name)}\\\\! Your order *#${escapeMarkdown(orderId)}* has been received ✅  \n\n🛍️ *Products:* \n${products.map(p => `\\\\- ${escapeMarkdown(p.name)} x${escapeMarkdown(p.quantity)} \\\\(${escapeMarkdown(p.subTotal)} ${escapeMarkdown(p.currency)}\\\\)`).join('\\n')}\n\n💰 *Total:* ${escapeMarkdown(total)} ${escapeMarkdown(currency)}  \n📍 *Address:* ${escapeMarkdown(address || \"N/A\")}  \n📞 *Phone:* ${escapeMarkdown(phone || \"N/A\")}`,\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "8428985f-6c14-4918-b19e-ff604da17b66",
      "name": "Si se encuentra ChatId",
      "type": "n8n-nodes-base.if",
      "position": [
        1632,
        -192
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "00d797b0-9a4d-498b-a57c-65e3114e5d63",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $('Get ChatId Row(s)').item.json.id }}",
              "rightValue": "={{ Math.max(...$items(\"Get ChatId Row(s)\").map(i => i.json.id)) }}"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "32633847-dcf7-4307-a613-f1a23e3e05b1",
      "name": "Anexar/Actualizar hoja CRM",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2000,
        -464
      ],
      "parameters": {
        "columns": {
          "value": {
            "id": "={{ $('Organize & Generate Order ID').item.json.orderId }}",
            "currency": "={{ $('Organize & Generate Order ID').item.json.currency }}",
            "الفئة": "={{ $('Organize & Generate Order ID').item.json.customer.email }}",
            "النوع": "={{ $('Organize & Generate Order ID').item.json.customer.name }}",
            "الوصف": "={{ $('Organize & Generate Order ID').item.json.summaryText }}",
            "التاريخ": "={{ $('JotForm Trigger').item.json.createdAt || new Date().toISOString() }}",
            "المقدار": "={{ $('Organize & Generate Order ID').item.json.customer.address }}",
            "اسم الموظف": "={{ $('Organize & Generate Order ID').item.json.total }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "التاريخ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "التاريخ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "النوع",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "النوع",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "الفئة",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "الفئة",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "المقدار",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "المقدار",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "currency",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "currency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "اسم الموظف",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "اسم الموظف",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "الوصف",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "الوصف",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "update_id",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "update_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "created_at",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "created_at",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "{{ $google_sheet_gid }}",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{ $google_sheet_document_id }}/edit#gid={{ $google_sheet_gid }}",
          "cachedResultName": "Sheet1 (Placeholder)"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "{{ $google_sheet_document_id }}",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{ $google_sheet_document_id }}/edit?usp=drivesdk",
          "cachedResultName": "CRM (Placeholder)"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "420c37a1-cf4c-4af1-a565-218016fca586",
      "name": "Crear factura Zoho",
      "type": "n8n-nodes-base.zohoCrm",
      "position": [
        2288,
        -208
      ],
      "parameters": {
        "subject": "Form Sale",
        "resource": "invoice",
        "Product_Details": [
          {
            "id": "{{ $zoho_product_id_1 }}",
            "total": "={{ $('Organize & Generate Order ID').item.json.products[0].subTotal }}",
            "quantity": "={{ $('Organize & Generate Order ID').item.json.products[0].quantity }}",
            "unit_price": "={{ $('Organize & Generate Order ID').item.json.products[0].unitPrice }}",
            "product_description": "={{ $('Organize & Generate Order ID').item.json.products[0].options }}"
          }
        ],
        "additionalFields": {
          "Grand_Total": "={{ $('Organize & Generate Order ID').item.json.total }}"
        }
      },
      "executeOnce": false,
      "typeVersion": 1
    },
    {
      "id": "919827cc-6c70-4d27-a5f5-c0a0aebc5730",
      "name": "Activador Telegram (Obtener ChatId)",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -176,
        -432
      ],
      "webhookId": "ee13da0e-595b-4b4a-8f35-912e44059af6",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "c7810f3b-da2a-4dcb-a63e-f02e2c294e04",
      "name": "Insertar datos del pedido",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        224,
        -176
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $json.customer.name }}",
            "email": "={{ $json.customer.email }}",
            "phone": "={{ $json.customer.phone }}",
            "address": "={{ $json.customer.address }}",
            "orderId": "={{ $json.orderId }}",
            "TelegramDate": 0,
            "MessageChatId": ""
          },
          "schema": [
            {
              "id": "MessageChatId",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "MessageChatId",
              "defaultMatch": false
            },
            {
              "id": "TelegramDate",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "TelegramDate",
              "defaultMatch": false
            },
            {
              "id": "orderId",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "orderId",
              "defaultMatch": false
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "email",
              "defaultMatch": false
            },
            {
              "id": "phone",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "phone",
              "defaultMatch": false
            },
            {
              "id": "address",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "address",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "{{ $datatable_id }}",
          "cachedResultUrl": "/projects/{{ $project_id_placeholder }}/datatables/{{ $datatable_id }}",
          "cachedResultName": "JotformTelegram (Placeholder)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8bca615b-5157-4641-ab95-af3548c27293",
      "name": "Obtener filas vacías de ChatId",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        32,
        -432
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "MessageChatId",
              "condition": "isEmpty"
            }
          ]
        },
        "matchType": "allConditions",
        "operation": "get",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "{{ $datatable_id }}",
          "cachedResultUrl": "/projects/{{ $project_id_placeholder }}/datatables/{{ $datatable_id }}",
          "cachedResultName": "JotformTelegram (Placeholder)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "856d1f24-6ea8-419f-b974-88517c06d333",
      "name": "Actualizar ChatId",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        288,
        -432
      ],
      "parameters": {
        "columns": {
          "value": {
            "MessageChatId": "={{ $('Telegram Trigger (Get ChatId)').item.json.message.chat.id }}"
          },
          "schema": [
            {
              "id": "MessageChatId",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "MessageChatId",
              "defaultMatch": false
            },
            {
              "id": "orderId",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "orderId",
              "defaultMatch": false
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "email",
              "defaultMatch": false
            },
            {
              "id": "phone",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "phone",
              "defaultMatch": false
            },
            {
              "id": "address",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "address",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "MessageChatId"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "filters": {
          "conditions": [
            {
              "keyName": "MessageChatId",
              "condition": "isEmpty"
            }
          ]
        },
        "matchType": "allConditions",
        "operation": "update",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "{{ $datatable_id }}",
          "cachedResultUrl": "/projects/{{ $project_id_placeholder }}/datatables/{{ $datatable_id }}",
          "cachedResultName": "JotformTelegram (Placeholder)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e9796f5f-1c75-4db1-8b23-07d36a805221",
      "name": "Obtener fila de pedido para verificar ChatId",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        624,
        -176
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "orderId",
              "keyValue": "={{ $('Insert Order Data').item.json.orderId }}",
              "condition": "equal"
            }
          ]
        },
        "matchType": "allConditions",
        "operation": "get",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "{{ $datatable_id }}",
          "cachedResultUrl": "/projects/{{ $project_id_placeholder }}/datatables/{{ $datatable_id }}",
          "cachedResultName": "JotformTelegram (Placeholder)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3cfda48d-d552-4f64-8305-6fddbbf1d4be",
      "name": "Marcar como en espera",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1120,
        48
      ],
      "parameters": {
        "columns": {
          "value": {
            "waitedOnce": "true"
          },
          "schema": [
            {
              "id": "MessageChatId",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "MessageChatId",
              "defaultMatch": false
            },
            {
              "id": "orderId",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "orderId",
              "defaultMatch": false
            },
            {
              "id": "waitedOnce",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "waitedOnce",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "filters": {
          "conditions": [
            {
              "keyName": "orderId",
              "keyValue": "={{ $json.orderId }}",
              "condition": "equal"
            }
          ]
        },
        "operation": "update",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "{{ $datatable_id }}",
          "cachedResultUrl": "/projects/{{ $project_id_placeholder }}/datatables/{{ $datatable_id }}",
          "cachedResultName": "JotformTelegram (Placeholder)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fd53acd6-7699-421a-84cd-18ce3dd9a6be",
      "name": "Interruptor (Verificación de ChatId)",
      "type": "n8n-nodes-base.switch",
      "position": [
        1104,
        -176
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "e308b538-960e-4a09-b23f-8d252174df38",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.waitedOnce }}",
                    "rightValue": ""
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "409a337d-b3af-4bcf-b316-92de32911dc5",
                    "operator": {
                      "type": "string",
                      "operation": "empty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.MessageChatId }}",
                    "rightValue": ""
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "3306d51c-b1c8-4f36-8648-6701a69b78b9",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        -256
      ],
      "parameters": {
        "color": 3,
        "content": "Starts the workflow when a new order form is submitted on JotForm."
      },
      "typeVersion": 1
    },
    {
      "id": "259d41a0-48a4-4a37-99a0-352e2ca08ad3",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        -256
      ],
      "parameters": {
        "color": 4,
        "width": 192,
        "content": "Parses the form data, structures it, and creates a unique order ID."
      },
      "typeVersion": 1
    },
    {
      "id": "d2312f79-9ca4-4c73-8f6c-4df71acec6d6",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -256
      ],
      "parameters": {
        "color": 5,
        "width": 192,
        "content": "Saves the order details into an n8n Data Table to track its status and Chat ID."
      },
      "typeVersion": 1
    },
    {
      "id": "138ef5db-e274-43a6-8665-327c3a2cd047",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        -496
      ],
      "parameters": {
        "color": 3,
        "width": 256,
        "content": "An independent trigger waiting for any message from a customer to the bot to capture their Chat ID."
      },
      "typeVersion": 1
    },
    {
      "id": "dbb6be07-f740-402a-bd36-2f9187d107ea",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -496
      ],
      "parameters": {
        "color": 5,
        "width": 208,
        "content": "Finds orders in the Data Table that are waiting for a customer's Chat ID."
      },
      "typeVersion": 1
    },
    {
      "id": "5b18035f-c415-4000-9e5c-c2f0d9397745",
      "name": "Nota adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        -496
      ],
      "parameters": {
        "color": 4,
        "content": "Uses the Chat ID from the new Telegram message to update the corresponding pending order row."
      },
      "typeVersion": 1
    },
    {
      "id": "41d16d68-1e62-47ef-b6aa-8f0697e87672",
      "name": "Nota adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        -256
      ],
      "parameters": {
        "color": 4,
        "width": 272,
        "content": " Checks the Data Table immediately after insertion to see if the customer's Chat ID is already available."
      },
      "typeVersion": 1
    },
    {
      "id": "e1c89c28-44b8-4357-8c8f-fda555564cfc",
      "name": "Nota adhesiva7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1008,
        -256
      ],
      "parameters": {
        "color": 2,
        "width": 256,
        "height": 176,
        "content": " Directs the flow to proceed if the Chat ID is found or to wait if it is still missing."
      },
      "typeVersion": 1
    },
    {
      "id": "5f1d726b-3db7-4625-a05f-c87f5000174c",
      "name": "Esperar 5 minutos",
      "type": "n8n-nodes-base.wait",
      "position": [
        832,
        48
      ],
      "webhookId": "b9883ceb-0655-451f-865d-15702bece4c3",
      "parameters": {
        "unit": "minutes",
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "826077be-7a44-48b1-b23d-9061199fc290",
      "name": "Nota adhesiva8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        96
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "content": ".\n\n\n\n\nPauses the workflow briefly to allow a customer time to message the Telegram bot."
      },
      "typeVersion": 1
    },
    {
      "id": "cb339e04-fdbd-458b-841a-f295c7802f9a",
      "name": "Nota adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1024,
        96
      ],
      "parameters": {
        "color": 6,
        "content": "\n.\n\n\n\n\nUpdates the Data Table record to prevent the workflow from entering a perpetual wait loop."
      },
      "typeVersion": 1
    },
    {
      "id": "d8c50d9c-f33b-4490-b25f-b7862d65dd4c",
      "name": "Nota adhesiva10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1312,
        -256
      ],
      "parameters": {
        "color": 5,
        "height": 176,
        "content": "Fetches the final, complete order data row, including the confirmed Chat ID."
      },
      "typeVersion": 1
    },
    {
      "id": "bd70e237-75a9-4bdc-80ef-760a1c027c47",
      "name": "Nota adhesiva11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1936,
        -272
      ],
      "parameters": {
        "color": 4,
        "height": 176,
        "content": "Formats the Chat ID and product list into an easy-to-use structure for the final message."
      },
      "typeVersion": 1
    },
    {
      "id": "5fb92642-5c3d-48c0-8ab8-deb3fef8c264",
      "name": "Nota adhesiva12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1936,
        -544
      ],
      "parameters": {
        "color": 5,
        "content": "Logs the complete order information into a designated Google Sheet (CRM)."
      },
      "typeVersion": 1
    },
    {
      "id": "36ff95d6-b3b4-4388-90f3-95e87e3cb629",
      "name": "Nota adhesiva13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2208,
        -272
      ],
      "parameters": {
        "color": 5,
        "height": 176,
        "content": "Automatically generates an invoice for the new order within Zoho CRM.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "3362d046-225e-4efa-8ea9-3227d35c82f6",
      "name": "Nota adhesiva14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2480,
        -272
      ],
      "parameters": {
        "color": 4,
        "content": "Sends the final, templated order confirmation message to the customer via Telegram."
      },
      "typeVersion": 1
    },
    {
      "id": "0a61c4b5-13fa-476f-a00d-ca693ec60760",
      "name": "Nota adhesiva15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        -1056
      ],
      "parameters": {
        "width": 1024,
        "height": 736,
        "content": "# JotForm Setup Guide\n\n\n## ⚡ Step 1: Link with the Webhook\n\n\n* **1. Log in to your JotForm account, select your Form, and navigate to Settings.**\n\n* **2. Go to Integrations and search for Webhooks.**\n\n* **3. Paste the JotForm Trigger Webhook URL provided by your n8n workflow into the field.**\n\n* **4. Save and activate! Your form is now live!**\n\n## 🔑 Step 2: Unlock File Access (API Key)\n\n* **1.Generate a JotForm API Key in your JotForm account settings.**\n\n* **2.CRITICAL: Set the key permission level to \"Full Access\" (required for file downloads).**\n\n* **3.Go to your n8n workflow and insert this key into:**\n    * **I.The JotForm Trigger node's credential.**\n    * **II.The Fetch All Receipts node's query parameters.**\n\n## ⚙️ Step 3: Configure Your n8n Nodes\n\n* **In the JotForm Trigger node replace the placeholder with your actual JotForm ID.**"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "24b0b0d7-3c2d-4fc6-aa45-344c34171922",
  "connections": {
    "3cfda48d-d552-4f64-8305-6fddbbf1d4be": {
      "main": [
        [
          {
            "node": "e9796f5f-1c75-4db1-8b23-07d36a805221",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5f1d726b-3db7-4625-a05f-c87f5000174c": {
      "main": [
        [
          {
            "node": "3cfda48d-d552-4f64-8305-6fddbbf1d4be",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8428985f-6c14-4918-b19e-ff604da17b66": {
      "main": [
        [
          {
            "node": "691a0fd1-73f5-45b2-b0f7-25a02474de85",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5dbd71ce-486c-4abd-9264-8f3d9169d03e": {
      "main": [
        [
          {
            "node": "654f6d89-8281-4b83-a95f-88d16a40e178",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "babe8a4d-af6b-49c4-859b-4575238b3e7f": {
      "main": [
        [
          {
            "node": "8428985f-6c14-4918-b19e-ff604da17b66",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c7810f3b-da2a-4dcb-a63e-f02e2c294e04": {
      "main": [
        [
          {
            "node": "e9796f5f-1c75-4db1-8b23-07d36a805221",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "420c37a1-cf4c-4af1-a565-218016fca586": {
      "main": [
        [
          {
            "node": "63b71df6-f37c-407d-a022-19733284d757",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8bca615b-5157-4641-ab95-af3548c27293": {
      "main": [
        [
          {
            "node": "856d1f24-6ea8-419f-b974-88517c06d333",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fd53acd6-7699-421a-84cd-18ce3dd9a6be": {
      "main": [
        [
          {
            "node": "babe8a4d-af6b-49c4-859b-4575238b3e7f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "5f1d726b-3db7-4625-a05f-c87f5000174c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "691a0fd1-73f5-45b2-b0f7-25a02474de85": {
      "main": [
        [
          {
            "node": "420c37a1-cf4c-4af1-a565-218016fca586",
            "type": "main",
            "index": 0
          },
          {
            "node": "32633847-dcf7-4307-a613-f1a23e3e05b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "654f6d89-8281-4b83-a95f-88d16a40e178": {
      "main": [
        [
          {
            "node": "c7810f3b-da2a-4dcb-a63e-f02e2c294e04",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e9796f5f-1c75-4db1-8b23-07d36a805221": {
      "main": [
        [
          {
            "node": "fd53acd6-7699-421a-84cd-18ce3dd9a6be",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "919827cc-6c70-4d27-a5f5-c0a0aebc5730": {
      "main": [
        [
          {
            "node": "8bca615b-5157-4641-ab95-af3548c27293",
            "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?

Avanzado

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

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos32
Categoría-
Tipos de nodos12
Descripción de la dificultad

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

Autor
Abdullah Alshiekh

Abdullah Alshiekh

@abdullah01

🚀 Automation pro building AI-powered workflows with n8n. 💼 Special focus on real use cases 🔧 Love clean, flexible, and business-ready automations.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34