This workflow follows the Agent → Gmail 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 →
{
"name": "Xmind Sales Email v2",
"nodes": [
{
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"simple": false,
"filters": {
"labelIds": [
"INBOX"
],
"readStatus": "unread"
},
"options": {}
},
"type": "n8n-nodes-base.gmailTrigger",
"typeVersion": 1.3,
"position": [
6224,
7280
],
"id": "0ad6ab53-810d-41ef-a6b1-e74b9cd273ed",
"name": "\u6293\u53d6inbox\u90ae\u4ef6",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"value": "315e0b5e-b78c-80b9-85be-cdffbfd93509",
"mode": "list",
"cachedResultName": "Business Sales - Leads",
"cachedResultUrl": "https://www.notion.so/315e0b5eb78c80b985becdffbfd93509"
},
"returnAll": true,
"simple": false,
"filterType": "manual",
"matchType": "allFilters",
"filters": {
"conditions": [
{
"key": "Primary Email|email",
"condition": "equals",
"emailValue": "={{ $json.to.value[1].address }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
6448,
7280
],
"id": "82257bb2-53f8-40b3-9fb1-131e1aca99a6",
"name": "\u548cNotion\u4e2d\u7684email\u5339\u914d",
"alwaysOutputData": true,
"credentials": {
"notionApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 1
},
"conditions": [
{
"id": "94b31a13-fbe5-4dfd-a6b9-f88895e4c01c",
"leftValue": "={{ $json.name }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Not found"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 1
},
"conditions": [
{
"id": "dfe0950b-294a-4a98-83df-97085685e7a4",
"leftValue": "={{ $json.properties.Status.select.name }}",
"rightValue": "Follow Up",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Found"
}
]
},
"options": {
"fallbackOutput": 3
}
},
"id": "d2c73017-a2ad-453a-b1b1-c0303ef55791",
"name": "Notion\u67e5\u627eemail\u5339\u914d\u9879",
"type": "n8n-nodes-base.switch",
"typeVersion": 3,
"position": [
6656,
7280
],
"alwaysOutputData": true
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg",
"mode": "list",
"cachedResultName": "contact-sales-enterprise",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Enterprise",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg/edit#gid=0"
},
"filtersUI": {
"values": [
{
"lookupColumn": "Work Email",
"lookupValue": "={{ $('\u6293\u53d6inbox\u90ae\u4ef6').item.json.from.value[0].address.toLowerCase() }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [
6944,
7088
],
"id": "e70344b2-cb4c-4e07-9214-acc0699935d9",
"name": "google sheet\u67e5\u627e\u5339\u914d\u9879",
"alwaysOutputData": true,
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 3
},
"conditions": [
{
"id": "06d0aa01-7614-48b8-9053-306fefd50360",
"leftValue": "={{ $json.row_number }}",
"rightValue": true,
"operator": {
"type": "number",
"operation": "exists",
"singleValue": true
}
}
],
"combinator": "or"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.3,
"position": [
7136,
7088
],
"id": "9ccff574-1ca2-468b-9e74-58d27bf0a8ec",
"name": "\u786e\u8ba4\u5c5e\u4e8eleads"
},
{
"parameters": {
"jsCode": "const input = $('\u6293\u53d6inbox\u90ae\u4ef6').first().json.text || \"\";\n\n// =========================\n// Step 1: Extract ONLY the latest message\n// =========================\nfunction cleanText(str) {\n if (!str) return \"\";\n return str\n .replace(/\\r/g, \"\")\n .replace(/[ \\t]+\\n/g, \"\\n\")\n .replace(/\\n[ \\t]+/g, \"\\n\")\n .replace(/\\n{3,}/g, \"\\n\\n\")\n .trim();\n}\n\nconst text = cleanText(input);\n\nif (!text) {\n return [{ json: { error: \"No text content found\", user_prompt: \"\", latest_content: \"\" } }];\n}\n\n// Find the FIRST quote boundary \u2014 everything before it is the latest message\nconst quotePatterns = [\n /^On\\s+.+?\\s+at\\s+\\d{1,2}:\\d{2}\\s*[APMapm]{2}\\s+.+?\\s+wrote:\\s*$/m, // Gmail: \"On ... wrote:\"\n /^From:\\s+.+$/m, // Outlook: \"From: ...\"\n /^-{3,}\\s*Original Message\\s*-{3,}/mi, // \"--- Original Message ---\"\n /^>{1,}\\s/m, // Quoted lines \"> ...\"\n];\n\nlet cutIndex = text.length;\nfor (const pattern of quotePatterns) {\n const match = text.match(pattern);\n if (match && match.index < cutIndex) {\n cutIndex = match.index;\n }\n}\n\nlet latestMessage = text.slice(0, cutIndex).trim();\n\n// =========================\n// Step 2: Strip signature from the latest message\n// =========================\nconst sigPatterns = [\n /\\n--\\s*\\n[\\s\\S]*/, // Standard sig separator\n /\\nRegards,[\\s\\S]*/i, // \"Regards,\" and everything after\n /\\nBest regards,[\\s\\S]*/i, // \"Best regards,\"\n /\\nKind regards,[\\s\\S]*/i,\n /\\nCordialement,[\\s\\S]*/i,\n /\\nMit freundlichen Gr\u00fc\u00dfen,[\\s\\S]*/i,\n /\\n\u3088\u308d\u3057\u304f\u304a\u9858\u3044[\\s\\S]*/,\n /\\n\u6b64\u81f4[\\s\\S]*/,\n /\\nCheers,[\\s\\S]*/i,\n /\\nThanks,[\\s\\S]*/i,\n];\n\nfor (const pattern of sigPatterns) {\n const match = latestMessage.match(pattern);\n if (match) {\n // Keep the \"Regards\" line itself but cut the signature block after\n const beforeSig = latestMessage.slice(0, match.index).trim();\n // Only cut if there's actual content before the signature\n if (beforeSig.length > 20) {\n latestMessage = beforeSig;\n }\n break;\n }\n}\n\n// =========================\n// Step 3: Clean noise\n// =========================\nlatestMessage = latestMessage\n .replace(/You don't often get email from .+?important/gi, \"\")\n .replace(/\\[image:[^\\]]*\\]/gi, \"\")\n .replace(/\\n{3,}/g, \"\\n\\n\")\n .trim();\n\n// =========================\n// Step 4: Build CRM context from Notion\n// =========================\nlet crmContext = {};\nlet pageContent = \"\";\n\ntry {\n const notionData = $('\u548cNotion\u4e2d\u7684email\u5339\u914d').first().json;\n const props = notionData.properties || {};\n\n const getSelect = (p) => p?.select?.name || '';\n const getText = (p) => {\n if (p?.rich_text?.[0]?.plain_text) return p.rich_text[0].plain_text;\n if (p?.rich_text?.[0]?.text?.content) return p.rich_text[0].text.content;\n return '';\n };\n const getEmail = (p) => p?.email || '';\n const getNumber = (p) => p?.number != null ? p.number : '';\n const getTitle = (p) => p?.title?.[0]?.plain_text || '';\n const getDate = (p) => p?.date?.start || '';\n\n crmContext = {\n company: getTitle(props.Company) || notionData.name || '',\n name: getText(props.Name),\n primary_email: getEmail(props['Primary Email']),\n admin_account: getEmail(props['Admin account']),\n country: getSelect(props.Country),\n currency: getSelect(props.Currency),\n plan: getSelect(props.Plan),\n quantity: getNumber(props.Quantity),\n duration: getNumber(props.Duration),\n unit_price: getNumber(props['Unit Price']),\n revenue: getNumber(props.Revenue),\n discount: getText(props.Discount),\n status: getSelect(props.Status),\n customer_type: getSelect(props['Customer Type']),\n payment_method: getSelect(props['Payment Method']),\n next_action: getText(props['Next Action']),\n next_action_date: getDate(props['Next Action Date']),\n reseller_commission: getSelect(props['Reseller Commission']),\n end_user: getText(props['End User']),\n team_id: getText(props['Team id']),\n order_id: getText(props['Order ID']),\n notes: getText(props.Notes),\n department: getText(props.Department)\n };\n\n // Get page content blocks (\u5efa\u8054\u4fe1\u606f + \u5bf9\u8bdd\u7eaa\u8981)\n const blocks = notionData.body?.results || [];\n for (const block of blocks) {\n if (block.type === 'heading_3') {\n pageContent += '\\n### ' + (block.heading_3?.rich_text?.[0]?.plain_text || '') + '\\n';\n } else if (block.type === 'paragraph') {\n pageContent += (block.paragraph?.rich_text?.[0]?.plain_text || '') + '\\n';\n }\n }\n} catch (e) {\n // Notion data not available \u2014 that's ok for the \"Not found\" path\n}\n\n// =========================\n// Step 5: Assemble user_prompt\n// =========================\nconst hasCRM = Object.values(crmContext).some(v => v !== '' && v !== 0);\n\nlet userPrompt = \"\";\n\nif (hasCRM) {\n userPrompt += `## CRM Context\\n${JSON.stringify(crmContext, null, 2)}\\n\\n`;\n}\n\nif (pageContent.trim()) {\n userPrompt += `## Conversation History (from Notion)\\n${pageContent.trim()}\\n\\n`;\n}\n\nuserPrompt += `## Customer's Latest Email\\n${latestMessage}`;\n\nreturn [{\n json: {\n latest_content: latestMessage,\n user_prompt: userPrompt,\n crm_context: crmContext,\n original_length: text.length,\n cleaned_length: latestMessage.length\n }\n}];\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
6976,
7296
],
"id": "f40e0318-2e23-4485-b914-9750118045b2",
"name": "\u6e05\u6d17\u56de\u590d\u90ae\u4ef6\u7684\u5185\u5bb9"
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg",
"mode": "list",
"cachedResultName": "contact-sales-enterprise",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Enterprise",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"\u8bb0\u5f55\u5728Notion": "true"
},
"matchingColumns": [
"\u8bb0\u5f55\u5728Notion"
],
"schema": [
{
"id": "\u8bb0\u5f55\u5728Notion",
"displayName": "\u8bb0\u5f55\u5728Notion",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Stage",
"displayName": "Stage",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "\u5df2\u8bb0\u5f55",
"displayName": "\u5df2\u8bb0\u5f55",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Payment date",
"displayName": "Payment date",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Notes",
"displayName": "Notes",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "User case",
"displayName": "User case",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Rev.",
"displayName": "Rev.",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Qty.",
"displayName": "Qty.",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Product",
"displayName": "Product",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Expiration Date",
"displayName": "Expiration Date",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Admin",
"displayName": "Admin",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Date",
"displayName": "Date",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Name",
"displayName": "Name",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Work Email",
"displayName": "Work Email",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Priority",
"displayName": "Priority",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Phone Number",
"displayName": "Phone Number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Company name",
"displayName": "Company name",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Job Title",
"displayName": "Job Title",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Company size",
"displayName": "Company size",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Details",
"displayName": "Details",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Language",
"displayName": "Language",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Summary",
"displayName": "Summary",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Intent Type",
"displayName": "Intent Type",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_source",
"displayName": "utm_source",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_medium",
"displayName": "utm_medium",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_campaign",
"displayName": "utm_campaign",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "gclid",
"displayName": "gclid",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_content",
"displayName": "utm_content",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_term",
"displayName": "utm_term",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "description",
"displayName": "description",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "comments",
"displayName": "comments",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "company",
"displayName": "company",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "message",
"displayName": "message",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "remarks",
"displayName": "remarks",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "subject",
"displayName": "subject",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "website",
"displayName": "website",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "title",
"displayName": "title",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "feedback",
"displayName": "feedback",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "row_number",
"displayName": "row_number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "number",
"canBeUsedToMatch": true,
"readOnly": true,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "8c8fb81a-0141-4023-be44-1aa4d6f78999",
"name": "\u52fe\u9009Notion\u5df2\u8bb0\u5f55",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
8528,
7296
],
"alwaysOutputData": true,
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"documentId": {
"__rl": true,
"value": "1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg",
"mode": "list",
"cachedResultName": "contact-sales-enterprise",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Enterprise",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg/edit#gid=0"
},
"event": "rowAdded",
"options": {
"valueRender": "FORMATTED_VALUE"
}
},
"id": "eca840f1-079f-4a1f-9cb3-186204cd1a53",
"name": "\u5f53\u51fa\u73b0\u65b0\u7684leads",
"type": "n8n-nodes-base.googleSheetsTrigger",
"typeVersion": 1,
"position": [
6176,
6480
],
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"model": "openai/gpt-5",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"typeVersion": 1,
"position": [
6368,
6640
],
"id": "744b5d61-2cb9-454d-ade7-2f4b3d412eb1",
"name": "OpenRouter Chat Model",
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"numberInputs": 4
},
"id": "a31bbb1b-6c14-4075-aba6-3d0a4f598cc3",
"name": "Merge Post Notion",
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
8080,
6448
]
},
{
"parameters": {
"resource": "draft",
"subject": "=Xmind \u2014 We\u2019ve received your request and will follow up shortly",
"emailType": "html",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\" />\n <title>Support Acknowledgement</title>\n</head>\n<body style=\"margin:0; padding:0; background-color:#f6f8fb; font-family: Arial, Helvetica, sans-serif; color:#1f2937;\">\n <table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"background-color:#f6f8fb; margin:0; padding:24px 0;\">\n <tr>\n <td align=\"center\">\n <table role=\"presentation\" width=\"640\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width:640px; max-width:640px; background-color:#ffffff; border-radius:12px; overflow:hidden; border:1px solid #e5e7eb;\">\n \n <tr>\n <td style=\"padding:32px 40px 20px 40px; background-color:#ffffff;\">\n <h2 style=\"margin:0; font-size:24px; line-height:32px; color:#111827; font-weight:700;\">\n We\u2019ve received your message\n </h2>\n </td>\n </tr>\n\n <tr>\n <td style=\"padding:0 40px 12px 40px;\">\n <p style=\"margin:0 0 16px 0; font-size:15px; line-height:24px; color:#374151;\">\n Hi {{ $('\u5f53\u51fa\u73b0\u65b0\u7684leads').item.json.Name }},\n </p>\n\n <p style=\"margin:0 0 16px 0; font-size:15px; line-height:24px; color:#374151;\">\n Thank you for contacting us.\n </p>\n\n <p style=\"margin:0 0 16px 0; font-size:15px; line-height:24px; color:#374151;\">\n We have received your message, and the Xmind Support team will contact you as soon as possible.\n </p>\n\n <p style=\"margin:0 0 20px 0; font-size:15px; line-height:24px; color:#374151;\">\n For reference, here is the information you submitted:\n </p>\n </td>\n </tr>\n\n <tr>\n <td style=\"padding:0 40px 28px 40px;\">\n <table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"background-color:#f9fafb; border:1px solid #e5e7eb; border-radius:10px;\">\n <tr>\n <td style=\"padding:20px;\">\n <p style=\"margin:0 0 10px 0; font-size:14px; line-height:22px; color:#111827;\">\n <strong>Name:</strong> {{ $('\u5f53\u51fa\u73b0\u65b0\u7684leads').item.json.Name }}\n </p>\n <p style=\"margin:0 0 10px 0; font-size:14px; line-height:22px; color:#111827;\">\n <strong>Email:</strong> {{ $('\u5f53\u51fa\u73b0\u65b0\u7684leads').item.json['Work Email'] }}\n </p>\n <p style=\"margin:0 0 8px 0; font-size:14px; line-height:22px; color:#111827;\">\n <strong>Message:</strong>\n </p>\n <div style=\"font-size:14px; line-height:22px; color:#374151; white-space:pre-wrap; word-break:break-word;\">\n {{ $('\u5f53\u51fa\u73b0\u65b0\u7684leads').item.json.Details }} \n </div>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td style=\"padding:0 40px 32px 40px;\">\n <p style=\"margin:0; font-size:14px; line-height:22px; color:#6b7280;\">\n Best regards,<br />\n Xmind Team\n </p>\n </td>\n </tr>\n\n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>",
"options": {
"ccList": "support@xmind.com",
"sendTo": "={{ $('\u5f53\u51fa\u73b0\u65b0\u7684leads').item.json['Work Email'] }}"
}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
7376,
6640
],
"id": "ca32f90f-0724-49a4-bc32-bd5976da442e",
"name": "\u8f6c\u53d1\u652f\u6301\u90ae\u4ef6",
"alwaysOutputData": true,
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "draft",
"subject": "={{ $json.subject }}",
"emailType": "html",
"message": "={{ $json.body }}",
"options": {
"sendTo": "={{ $('\u5f53\u51fa\u73b0\u65b0\u7684leads').item.json['Work Email'] }}"
}
},
"id": "f70e76bd-7f0a-4d8c-88d8-585b79025bd4",
"name": "\u751f\u6210\u5efa\u8054draft-template",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
7632,
6464
],
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 1
},
"conditions": [
{
"id": "83c400c0-9601-4891-b55f-adb6ef142237",
"leftValue": "={{ $json.output.intent }}",
"rightValue": "custom",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "custom"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 1
},
"conditions": [
{
"leftValue": "={{ $json.output.intent }}",
"rightValue": "template",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "c9270e61-8253-4fb7-9ad5-5c47b65320cb"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "template"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 1
},
"conditions": [
{
"leftValue": "={{ $json.output.intent }}",
"rightValue": "support",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "d927eada-70d1-448c-8120-35c97b15c2e5"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "support"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 1
},
"conditions": [
{
"leftValue": "={{ $json.output.intent }}",
"rightValue": "spam",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "2e89966d-8e80-46b4-b714-61a85b0285b4"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "spam"
}
]
},
"options": {
"fallbackOutput": "none"
}
},
"id": "f6e47d9c-354a-4b1b-b40b-772072498939",
"name": "\u6839\u636eIntent\u5206\u7c7b",
"type": "n8n-nodes-base.switch",
"typeVersion": 3,
"position": [
6672,
6448
]
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg",
"mode": "list",
"cachedResultName": "contact-sales-enterprise",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Enterprise",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ijS9_77IJe2OFPrbhULqgyfW7gxVrXt93kr2b0T6-tg/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Date": "={{ $('\u5f53\u51fa\u73b0\u65b0\u7684leads').item.json.Date }}",
"Intent Type": "={{ $('\u63d0\u53d6Notes\u610f\u56fe\u3001\u8bed\u8a00\u3001\u6458\u8981').item.json.output.intent }}",
"Language": "={{ $('\u63d0\u53d6Notes\u610f\u56fe\u3001\u8bed\u8a00\u3001\u6458\u8981').item.json.output.language }}",
"Summary": "={{ $('\u63d0\u53d6Notes\u610f\u56fe\u3001\u8bed\u8a00\u3001\u6458\u8981').item.json.output.summary }}"
},
"matchingColumns": [
"Date"
],
"schema": [
{
"id": "\u8bb0\u5f55\u5728Notion",
"displayName": "\u8bb0\u5f55\u5728Notion",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Stage",
"displayName": "Stage",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "\u5df2\u8bb0\u5f55",
"displayName": "\u5df2\u8bb0\u5f55",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Payment date",
"displayName": "Payment date",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Notes",
"displayName": "Notes",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "User case",
"displayName": "User case",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Rev.",
"displayName": "Rev.",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Qty.",
"displayName": "Qty.",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Product",
"displayName": "Product",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Expiration Date",
"displayName": "Expiration Date",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Admin",
"displayName": "Admin",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Date",
"displayName": "Date",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Name",
"displayName": "Name",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Work Email",
"displayName": "Work Email",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Priority",
"displayName": "Priority",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Phone Number",
"displayName": "Phone Number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Company name",
"displayName": "Company name",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Job Title",
"displayName": "Job Title",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Company size",
"displayName": "Company size",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Details",
"displayName": "Details",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "Language",
"displayName": "Language",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Summary",
"displayName": "Summary",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Intent Type",
"displayName": "Intent Type",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "utm_source",
"displayName": "utm_source",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_medium",
"displayName": "utm_medium",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_campaign",
"displayName": "utm_campaign",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "gclid",
"displayName": "gclid",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_content",
"displayName": "utm_content",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "utm_term",
"displayName": "utm_term",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "description",
"displayName": "description",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "comments",
"displayName": "comments",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "company",
"displayName": "company",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "message",
"displayName": "message",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "remarks",
"displayName": "remarks",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "subject",
"displayName": "subject",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "website",
"displayName": "website",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "title",
"displayName": "title",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "feedback",
"displayName": "feedback",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "row_number",
"displayName": "row_number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "number",
"canBeUsedToMatch": true,
"readOnly": true,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "47294b51-a653-4691-b8a8-38cadc9dea36",
"name": "\u66f4\u65b0google sheet\u4fe1\u606f",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
8304,
6480
],
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "=You are a lead qualification assistant for a mind mapping software product.\n\nYour task is to analyze a lead note and return:\n1. Intent type\n2. Language\n3. A short Chinese summary\n\n---\n\n## Intent Types Definition\n\nClassify the note into ONE of the following:\n\n### spam\n- Random characters, meaningless text, ads, phishing, or empty content\n- Completely unclear or no interpretable meaning\n\nIMPORTANT:\n- Short text in ANY language is NOT spam if it has meaning\n\n---\n\n### support\n- Questions or issues NOT related to purchasing decisions\n- Includes:\n - login issues\n - bugs\n - usage questions\n - feature help\n - version problems\n - account issues\n - complaints or negative feedback\n - refund requests or threats\n - billing issues AFTER purchase (e.g. double charge, renewal confusion, payment history problems)\n\nIMPORTANT:\n- If the user has already purchased and is facing a problem \u2192 ALWAYS support\n\n---\n\n### template\n- Shows interest but NO clear purchasing details\n- Includes:\n - describing use cases (e.g. study, drawing diagrams, brainstorming)\n - vague interest\n - simple questions without commitment\n- short but meaningful phrases indicating a use case, industry, or context\n\nIMPORTANT:\n- ANY mention of usage scenarios (study, work, diagramming, etc.) = template (NOT spam)\n\n---\n\n### custom\n- Clear purchasing intent BEFORE buying\n\nIncludes:\n- asking about pricing, plans, discounts\n- asking about terms before purchase\n- mentioning personal or team purchase intention\n- providing requirements for a potential purchase\n\nIMPORTANT:\n- ONLY classify as custom if the user has NOT yet purchasedurchase intent appear \u2192 choose custom\n\n---\n\n## Language\n\nDetect the main language of the note.\n\nReturn using abbreviations:\n- English \u2192 En\n- Chinese Simple \u2192 Zh-hans\n- Chinese Traditional \u2192 Zh-hant\n- Japanese \u2192 Jp\n- Spanish \u2192 Es\n- Portuguese \u2192 Pt\n- French \u2192 Fr\n- German \u2192 De\n- Russian \u2192 Ru\n- Vietnamese \u2192 Vi\n- Others \u2192 common 2-letter abbreviation\n\n---\n\n## Summary\n\nWrite ONE concise sentence in Chinese:\n- Capture the core intent\n- No extra explanation\n\n---\n\n## Rules\n\n- Always return valid JSON\n- Do NOT add extra text\n- Never classify meaningful short text as spam\n- Prefer \"template\" over \"spam\" if unsure\n- Prefer \"custom\" over \"template\" if any purchase intent exists\n\n---\n\n## Output Format\n\n{\n \"intent\": \"spam | support | template | custom\",\n \"language\": \"En | Zh | Jp | Es | Pt | Fr | De | Ru | Vi | etc\",\n \"summary\": \"\u4e00\u53e5\u4e2d\u6587\u603b\u7ed3\"\n}\n\n---\n\n## Input\n\"\"\"\n{{$json.Details}}\n\"\"\"",
"hasOutputParser": true,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3,
"position": [
6368,
6480
],
"id": "3c6ef56c-c00f-4041-9197-537f6b3faf7a",
"name": "\u63d0\u53d6Notes\u610f\u56fe\u3001\u8bed\u8a00\u3001\u6458\u8981"
},
{
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"intent\": \"custom\",\n \"language\": \"En\",\n \"summary\": \"\u7528\u6237\u8be2\u95ee\u4f01\u4e1a\u7248\u4ef7\u683c\"\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.3,
"position": [
6512,
6640
],
"id": "ba61f39c-ec54-469e-9cc6-26db5626003c",
"name": "Structured Output Parser"
},
{
"parameters": {
"jsCode": "const item = $input.first().json;\n\n// =========================\n// INPUT\n// =========================\nconst language = $('\u63d0\u53d6Notes\u610f\u56fe\u3001\u8bed\u8a00\u3001\u6458\u8981').first().json.output.language;\nconst name = $('\u5f53\u51fa\u73b0\u65b0\u7684leads').first().json.Name;\n\n// =========================\n// NORMALIZE LANGUAGE\n// Supports:\n// En, Ja, Es, De, Zh-hans, Fr, Vi, Pt, Ru, Ko, Zh-hant\n// =========================\nconst rawLanguage = (language || 'En').toString().trim().toLowerCase();\n\nconst languageMap = {\n 'en': 'En',\n 'ja': 'Ja',\n 'es': 'Es',\n 'de': 'De',\n 'zh-hans': 'Zh-hans',\n 'zh-cn': 'Zh-hans',\n 'zh-sg': 'Zh-hans',\n 'zh': 'Zh-hans',\n 'fr': 'Fr',\n 'vi': 'Vi',\n 'pt': 'Pt',\n 'pt-br': 'Pt',\n 'pt-pt': 'Pt',\n 'ru': 'Ru',\n 'ko': 'Ko',\n 'zh-hant': 'Zh-hant',\n 'zh-tw': 'Zh-hant',\n 'zh-hk': 'Zh-hant',\n 'zh-mo': 'Zh-hant'\n};\n\nconst normalizedLanguage = languageMap[rawLanguage] || 'En';\nconst safeName = (name || 'there').toString().trim();\n\n// =========================\n// SIGNATURE\n// =========================\nconst signature = `\n<br><br>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\n <tr>\n <td align=\"center\" valign=\"middle\" style=\"padding:0; margin:0;\">\n <a href=\"https://xmind.com\" target=\"_blank\" style=\"text-decoration:none;\">\n <img src=\"https://zpsbkj.stripocdn.email/content/guids/CABINET_8e29883f27ed7c9c3e166c8fdb97d6a591abfd3906c9b1d4466f639ea5be08de/images/image_EjF.png\"\n width=\"70\" height=\"70\" alt=\"Xmind Logo\"\n style=\"display:block; border:0; outline:none; text-decoration:none;\">\n </a>\n </td>\n <td width=\"10\" style=\"font-size:0; line-height:0;\"> </td>\n <td width=\"1\" bgcolor=\"#000000\" style=\"font-size:0; line-height:0;\"> </td>\n <td width=\"10\" style=\"font-size:0; line-height:0;\"> </td>\n <td valign=\"top\" style=\"font-family: Arial, Helvetica, sans-serif; color:#333333;\">\n <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\n <tr>\n <td style=\"font-size:15px; font-weight:700; line-height:20px; color:#333333;\">\n Stellar Zhou\n </td>\n </tr>\n <tr>\n <td style=\"height:4px; font-size:0; line-height:0;\"> </td>\n </tr>\n <tr>\n <td style=\"font-size:12px; line-height:16px; color:#777777;\">\n Business Development Manager\n </td>\n </tr>\n <tr>\n <td style=\"font-size:12px; line-height:16px; color:#777777;\">\n Xmind\n </td>\n </tr>\n <tr>\n <td style=\"height:4px; font-size:0; line-height:0;\"> </td>\n </tr>\n <tr>\n <td style=\"font-size:12px; line-height:16px; color:#777777;\">\n <a href=\"https://xmind.com\" target=\"_blank\" style=\"color:#777777; text-decoration:none;\">https://xmind.com</a>\n </td>\n </tr>\n <tr>\n <td style=\"font-size:12px; line-height:16px; color:#777777;\">\n <a href=\"mailto:stellar@xmind.com\" style=\"color:#777777; text-decoration:none;\">stellar@xmind.com</a>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n</table>\n`;\n\n// =========================\n// TEMPLATES (HTML)\n// =========================\nconst templates = {\n En: {\n subject: 'Next Steps on Your Xmind Enterprise Plan',\n body: `Hi ${safeName},<br><br>\nI\u2019m Stellar from the Xmind Team. Thank you for your interest in our Enterprise Plan.<br><br>\nTo best assist you, could you please share:<br><br>\n1. What are your team's primary goals and challenges that you're looking to address with Xmind?<br>\n2. How many users will be utilizing Xmind in your team?<br>\n3. Do you require AI Copilot, team management, project management and the SSO feature?<br>\n4. Any questions you may have?<br><br>\nYour input will help me provide a personalized quote and solution that meets your needs.<br><br>\nBest regards,`\n },\n\n Ja: {\n subject: 'Xmind Enterprise Plan \u306b\u95a2\u3059\u308b\u6b21\u306e\u30b9\u30c6\u30c3\u30d7',\n body: `${safeName}\u69d8<br><br>\nXmind\u30c1\u30fc\u30e0\u306eStellar\u3067\u3059\u3002Enterprise Plan \u306b\u3054\u95a2\u5fc3\u3092\u304a\u5bc4\u305b\u3044\u305f\u3060\u304d\u3001\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002<br><br>\n\u3088\u308a\u9069\u5207\u306b\u3054\u6848\u5185\u3059\u308b\u305f\u3081\u3001\u4ee5\u4e0b\u306e\u5185\u5bb9\u3092\u3054\u5171\u6709\u3044\u305f\u3060\u3051\u307e\u3059\u3067\u3057\u3087\u3046\u304b\u3002<br><br>\n1. Xmind \u3092\u901a\u3058\u3066\u89e3\u6c7a\u3057\u305f\u3044\u3001\u30c1\u30fc\u30e0\u306e\u4e3b\u306a\u76ee\u6a19\u3084\u8ab2\u984c\u306f\u4f55\u3067\u3057\u3087\u3046\u304b\uff1f<br>\n2. \u30c1\u30fc\u30e0\u5185\u3067 Xmind \u3092\u5229\u7528\u3059\u308b\u4e88\u5b9a\u306e\u30e6\u30fc\u30b6\u30fc\u6570\u306f\u4f55\u540d\u3067\u3059\u304b\uff1f<br>\n3. AI Copilot\u3001\u30c1\u30fc\u30e0\u7ba1\u7406\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406\u3001SSO \u6a5f\u80fd\u306f\u5fc5\u8981\u3067\u3057\u3087\u3046\u304b\uff1f<br>\n4. \u305d\u306e\u4ed6\u3001\u3054\u4e0d\u660e\u70b9\u3084\u3054\u8cea\u554f\u306f\u3042\u308a\u307e\u3059\u304b\uff1f<br><br>\n\u3054\u5171\u6709\u3044\u305f\u3060\u3044\u305f\u5185\u5bb9\u3092\u3082\u3068\u306b\u3001\u304a\u5ba2\u69d8\u306e\u30cb\u30fc\u30ba\u306b\u5408\u3063\u305f\u304a\u898b\u7a4d\u3082\u308a\u3068\u3054\u63d0\u6848\u3092\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3059\u3002<br><br>\n\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3044\u305f\u3057\u307e\u3059\u3002`\n },\n\n Es: {\n subject: 'Pr\u00f3ximos pasos para su plan Enterprise de Xmind',\n body: `Hola ${safeName},<br><br>\nSoy Stellar, del equipo de Xmind. Gracias por su inter\u00e9s en nuestro plan Enterprise.<br><br>\nPara poder ayudarle mejor, \u00bfpodr\u00eda compartir la siguiente informaci\u00f3n?<br><br>\n1. \u00bfCu\u00e1les son los principales objetivos y desaf\u00edos de su equipo que desea abordar con Xmind?<br>\n2. \u00bfCu\u00e1ntos usuarios utilizar\u00e1n Xmind en su equipo?<br>\n3.
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2googleSheetsOAuth2ApigoogleSheetsTriggerOAuth2ApinotionApiopenRouterApislackApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Xmind Sales Email v2. Uses gmailTrigger, notion, googleSheets, googleSheetsTrigger. Event-driven trigger; 37 nodes.
Source: https://github.com/Stellar066/b2b-crm-automation/blob/67595af88ee36a14e1865f5863dd3e4491a1feb3/n8n/Xmind_Sales_Email_v2.json — 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.
This workflow turns scattered user feedback into a structured product backlog pipeline. It collects feedback from three channels (Telegram bot, Google Form/Sheets, and Gmail), normalizes it, and sends
This workflow automates end-to-end AI-driven inventory intelligence, transforming Airtable stock data into optimized reorder recommendations, daily operational summaries, and instant Slack alerts. It
This template is perfect for Gumroad creators, solopreneurs, digital product sellers, and freelancers who want to track and thank customers automatically — without spending time on manual work.
"This workflow builds an AI-powered resume screening system inside n8n. It begins with Gmail and Form triggers that capture incoming resumes, then uploads each file to Google Drive for storage. The re
This n8n template demonstrates how to use AI to score the all Resumes by matching it with Job profile