This workflow corresponds to n8n.io template #9526 — we link there as the canonical source.
This workflow follows the Google Sheets → Telegram recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "zCg4z524oOeWzzH9",
"name": "Jotform-Telegram Order Sync (Submitted)",
"tags": [],
"nodes": [
{
"id": "5dbd71ce-486c-4abd-9264-8f3d9169d03e",
"name": "JotForm Trigger",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-192,
-176
],
"parameters": {
"form": "{{ $form_id_placeholder }}"
},
"typeVersion": 1
},
{
"id": "63b71df6-f37c-407d-a022-19733284d757",
"name": "Send a text message",
"type": "n8n-nodes-base.telegram",
"position": [
2560,
-208
],
"parameters": {
"text": "=\ud83e\uddf4 {{ $template_order_name }} Order Confirmation\nThank you, {{ $('Organize').item.json.customer.name }}! Your order {{ $('Organize').item.json.orderId }} has been received \u2705 \nHere\u2019s your summary:\n\n\ud83d\udecd\ufe0f Products: \n{{ $('Edit Fields').item.json.Products }}\n\n\ud83d\udcb0 Total: {{ $('Organize').item.json.total }} {{ $('Organize').item.json.currency }}\n\ud83d\ude9a Delivery: {{ $template_delivery_time }} \n\ud83d\udccd Address: {{ $('Organize').item.json.customer.address }}\n\nNeed help? Message us here anytime \ud83d\udcac",
"chatId": "={{ $('Edit Fields').item.json.ChatId }}",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "babe8a4d-af6b-49c4-859b-4575238b3e7f",
"name": "Get ChatId Row(s)",
"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": "Set ChatId and Products",
"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 => `\u2022 ${p.name.replace(/([_*[\\]()~`>#+=|{}.!-])/g, '\\\\$1')} x${p.quantity}`)\n .join('\\n') \n}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "654f6d89-8281-4b83-a95f-88d16a40e178",
"name": "Organize & Generate Order ID",
"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: `\ud83e\uddf4 *{{ $template_order_name }} Order Confirmation* \nThank you, ${escapeMarkdown(name)}\\\\! Your order *#${escapeMarkdown(orderId)}* has been received \u2705 \n\n\ud83d\udecd\ufe0f *Products:* \n${products.map(p => `\\\\- ${escapeMarkdown(p.name)} x${escapeMarkdown(p.quantity)} \\\\(${escapeMarkdown(p.subTotal)} ${escapeMarkdown(p.currency)}\\\\)`).join('\\n')}\n\n\ud83d\udcb0 *Total:* ${escapeMarkdown(total)} ${escapeMarkdown(currency)} \n\ud83d\udccd *Address:* ${escapeMarkdown(address || \"N/A\")} \n\ud83d\udcde *Phone:* ${escapeMarkdown(phone || \"N/A\")}`,\n },\n },\n];\n"
},
"typeVersion": 2
},
{
"id": "8428985f-6c14-4918-b19e-ff604da17b66",
"name": "If ChatId Found",
"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": "Append/Update CRM Sheet",
"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 }}",
"\u0627\u0644\u0641\u0626\u0629": "={{ $('Organize & Generate Order ID').item.json.customer.email }}",
"\u0627\u0644\u0646\u0648\u0639": "={{ $('Organize & Generate Order ID').item.json.customer.name }}",
"\u0627\u0644\u0648\u0635\u0641": "={{ $('Organize & Generate Order ID').item.json.summaryText }}",
"\u0627\u0644\u062a\u0627\u0631\u064a\u062e": "={{ $('JotForm Trigger').item.json.createdAt || new Date().toISOString() }}",
"\u0627\u0644\u0645\u0642\u062f\u0627\u0631": "={{ $('Organize & Generate Order ID').item.json.customer.address }}",
"\u0627\u0633\u0645 \u0627\u0644\u0645\u0648\u0638\u0641": "={{ $('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": "\u0627\u0644\u062a\u0627\u0631\u064a\u062e",
"type": "string",
"display": true,
"required": false,
"displayName": "\u0627\u0644\u062a\u0627\u0631\u064a\u062e",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "\u0627\u0644\u0646\u0648\u0639",
"type": "string",
"display": true,
"required": false,
"displayName": "\u0627\u0644\u0646\u0648\u0639",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "\u0627\u0644\u0641\u0626\u0629",
"type": "string",
"display": true,
"required": false,
"displayName": "\u0627\u0644\u0641\u0626\u0629",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "\u0627\u0644\u0645\u0642\u062f\u0627\u0631",
"type": "string",
"display": true,
"required": false,
"displayName": "\u0627\u0644\u0645\u0642\u062f\u0627\u0631",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "currency",
"type": "string",
"display": true,
"required": false,
"displayName": "currency",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "\u0627\u0633\u0645 \u0627\u0644\u0645\u0648\u0638\u0641",
"type": "string",
"display": true,
"required": false,
"displayName": "\u0627\u0633\u0645 \u0627\u0644\u0645\u0648\u0638\u0641",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "\u0627\u0644\u0648\u0635\u0641",
"type": "string",
"display": true,
"required": false,
"displayName": "\u0627\u0644\u0648\u0635\u0641",
"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": "Create Zoho Invoice",
"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": "Telegram Trigger (Get ChatId)",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-176,
-432
],
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "c7810f3b-da2a-4dcb-a63e-f02e2c294e04",
"name": "Insert Order Data",
"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": "Get Empty ChatId Rows",
"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": "Update 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": "Get Order Row to Check 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": "Mark as Waited",
"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": "Switch (ChatId Check)",
"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": "Sticky Note",
"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": "Sticky Note1",
"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": "Sticky Note2",
"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": "Sticky Note3",
"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": "Sticky Note4",
"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": "Sticky Note5",
"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": "Sticky Note6",
"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": "Sticky Note7",
"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": "Wait 5 Minutes",
"type": "n8n-nodes-base.wait",
"position": [
832,
48
],
"parameters": {
"unit": "minutes",
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "826077be-7a44-48b1-b23d-9061199fc290",
"name": "Sticky Note8",
"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": "Sticky Note9",
"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": "Sticky Note10",
"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": "Sticky Note11",
"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": "Sticky Note12",
"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": "Sticky Note13",
"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": "Sticky Note14",
"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": "Sticky Note15",
"type": "n8n-nodes-base.stickyNote",
"position": [
544,
-1056
],
"parameters": {
"width": 1024,
"height": 736,
"content": "# JotForm Setup Guide\n\n\n## \u26a1 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## \ud83d\udd11 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## \u2699\ufe0f 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,
"settings": {
"executionOrder": "v1"
},
"versionId": "24b0b0d7-3c2d-4fc6-aa45-344c34171922",
"connections": {
"Mark as Waited": {
"main": [
[
{
"node": "Get Order Row to Check ChatId",
"type": "main",
"index": 0
}
]
]
},
"Wait 5 Minutes": {
"main": [
[
{
"node": "Mark as Waited",
"type": "main",
"index": 0
}
]
]
},
"If ChatId Found": {
"main": [
[
{
"node": "Set ChatId and Products",
"type": "main",
"index": 0
}
]
]
},
"JotForm Trigger": {
"main": [
[
{
"node": "Organize & Generate Order ID",
"type": "main",
"index": 0
}
]
]
},
"Get ChatId Row(s)": {
"main": [
[
{
"node": "If ChatId Found",
"type": "main",
"index": 0
}
]
]
},
"Insert Order Data": {
"main": [
[
{
"node": "Get Order Row to Check ChatId",
"type": "main",
"index": 0
}
]
]
},
"Create Zoho Invoice": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
]
]
},
"Get Empty ChatId Rows": {
"main": [
[
{
"node": "Update ChatId",
"type": "main",
"index": 0
}
]
]
},
"Switch (ChatId Check)": {
"main": [
[
{
"node": "Get ChatId Row(s)",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait 5 Minutes",
"type": "main",
"index": 0
}
]
]
},
"Set ChatId and Products": {
"main": [
[
{
"node": "Create Zoho Invoice",
"type": "main",
"index": 0
},
{
"node": "Append/Update CRM Sheet",
"type": "main",
"index": 0
}
]
]
},
"Organize & Generate Order ID": {
"main": [
[
{
"node": "Insert Order Data",
"type": "main",
"index": 0
}
]
]
},
"Get Order Row to Check ChatId": {
"main": [
[
{
"node": "Switch (ChatId Check)",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger (Get ChatId)": {
"main": [
[
{
"node": "Get Empty ChatId Rows",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is designed to automate your e-commerce order processing by instantly syncing new Jotform submissions with your internal systems and immediately notifying the customer on Telegram.
Source: https://n8n.io/workflows/9526/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
N8N Complete Final. Uses telegramTrigger, dataTable, telegram, mqtt. Event-driven trigger; 58 nodes.
TextMain. Uses telegramTrigger, stopAndError, telegram, httpRequest. Event-driven trigger; 56 nodes.
This workflow provides a complete solution for handling Telegram Stars payments, invoicing and refunds using n8n. It automates the process of sending invoices, managing pre-checkout approvals, recordi
clients kept booking meetings during my prayer times. i'd either miss a prayer or scramble to reschedule. the problem wasn't the clients — it was that my calendar had no blocked windows for salah. i n
This workflow is a powerful reputation management tool designed to proactively filter customer reviews. It helps you encourage positive reviews on Google while capturing negative feedback privately be