JotForm到Zoho潜在客户自动化(已提交)
中级
这是一个自动化工作流,包含 15 个节点。主要使用 Set, Gmail, ZohoCrm, JotFormTrigger, Agent 等节点。 使用JotForm、Google表格和Gemini AI到Zoho CRM自动化房地产潜在客户匹配
前置要求
- •Google 账号和 Gmail API 凭证
- •Google Sheets API 凭证
- •Google Gemini API Key
使用的节点 (15)
分类
-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "DPZycgH7MnQo6dpN",
"meta": {
"instanceId": "7f1a0694161455be3a7e71f1e0dea04908b0376a1a81e3a0c1e5ac879d48f83a"
},
"name": "JotForm 到 Zoho Lead 自动化(已提交)",
"tags": [],
"nodes": [
{
"id": "95504a3e-0464-4260-b058-011b59b035d9",
"name": "设置:标准化潜在客户",
"type": "n8n-nodes-base.set",
"position": [
-80,
624
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "lead_fullName",
"name": "lead.fullName",
"type": "string",
"value": "={{ $json.name || $json['Name'] || '' }}"
},
{
"id": "lead_email",
"name": "lead.email",
"type": "string",
"value": "={{ $json.email || $json['Email'] || '' }}"
},
{
"id": "lead_phone",
"name": "lead.phone",
"type": "string",
"value": "={{ $json.phone || $json['Cell Phone Number'] || '' }}"
},
{
"id": "lead_moveInDate",
"name": "lead.moveInDate",
"type": "string",
"value": "={{ $json.move_in_date || $json['Desired move in date'] || '' }}"
},
{
"id": "lead_mustHaves",
"name": "lead.mustHaves",
"type": "string",
"value": "={{ ($json.must_haves || $json['Any \\'must haves\\' for your apartment?'] || '').toString().trim() }}"
},
{
"id": "lead_minBedrooms",
"name": "lead.minBedrooms",
"type": "string",
"value": "={{ $json['Minimum # of bedrooms desired'] }}"
},
{
"id": "lead_minBathrooms",
"name": "lead.minBathrooms",
"type": "string",
"value": "={{ $json['Minimum # of bathrooms desired'] }}"
},
{
"id": "lead_needsAssignedParking",
"name": "lead.needsAssignedParking",
"type": "boolean",
"value": "={{ ($json.assigned_parking || $json['Do you need assigned parking?'] || '').toString().toLowerCase() === 'yes' }}"
},
{
"id": "lead_hasPets",
"name": "lead.hasPets",
"type": "boolean",
"value": "={{ ($json.has_pets || $json['Do you have pets?'] || '').toString().toLowerCase().includes('dont') }}"
},
{
"id": "lead_preferredNeighborhoods",
"name": "lead.preferredNeighborhoods",
"type": "array",
"value": "={{ ($json.preferred_neighborhoods || $json['List your preferred neighborhoods'] || '').toString().split(/,|\\n/).map(s => s.trim()).filter(s => s.length > 0) }}"
},
{
"id": "lead_maxMonthlyRent",
"name": "lead.maxMonthlyRent",
"type": "number",
"value": "={{ (() => { const val = ($json.price_range || $json['What is the price range you are considering?'] || '').toString().replace(/[^0-9.]/g, ''); return val ? Number(val) : null; })() }}"
},
{
"id": "lead_submittedAt",
"name": "lead.submittedAt",
"type": "string",
"value": "={{ $now.toISO() }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e4430f1c-e7b6-4360-9826-4717bdceec21",
"name": "JotForm 触发器",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-384,
624
],
"webhookId": "WEBHOOK_ID_PLACEHOLDER",
"parameters": {
"form": "YOUR_JOTFORM_FORM_ID"
},
"typeVersion": 1
},
{
"id": "3eebca56-8295-4c30-91af-a97f35a8b7b3",
"name": "AI 代理",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
176,
624
],
"parameters": {
"text": "={\n \"lead\": {{ JSON.stringify($json.lead) }},\n \"listings\": googleSheets tool node \n}\n",
"options": {
"systemMessage": "=You are a real-estate assistant that receives a customer’s apartment search criteria and finds the best matching listings from a Google Sheet database.\n\nYou have access to the tool \"googleSheets\" which contains all available apartment listings. Each row includes fields such as:\nlisting_id, supplier_name, supplier_type, bedrooms, bathrooms, assigned_parking, rent, pets_allowed, furnished, neighborhoods, available_from, address, contact_email, contact_phone, crm_listing_id, images, sqft, floor, elevator, balcony, supplier_rating.\n\nYour goal:\n1. Search the sheet for apartments that match the user’s criteria.\n2. Return the top 3 matches ranked by overall suitability.\n3. Return your reasoning and summarize why each match fits.\n4. Always output in valid JSON.\n\n### Matching rules\n- Bedrooms ≥ requested minimum.\n- Bathrooms ≥ requested minimum.\n- Assigned parking must be \"Yes\" if the user needs it.\n- Rent ≤ maximum price range (if provided).\n- If user has a pet → only listings where `pets_allowed` = \"Yes\".\n- Preferred neighborhoods → give higher score to exact matches or close alternatives.\n- Consider soonest available dates ≥ requested move-in date.\n- Higher `supplier_rating` is better.\n- Ignore listings that violate hard constraints (e.g. rent too high or parking required but missing).\n\n### Required Output Format\nUse this exact structure (valid JSON only):\n\n{\n \"recommendedListingId\": \"string\",\n \"topMatches\": [\n {\n \"listingId\": \"string\",\n \"score\": number,\n \"reason\": \"string\",\n \"rent\": number,\n \"bedrooms\": number,\n \"bathrooms\": number,\n \"neighborhood\": \"string\",\n \"availableFrom\": \"string\"\n }\n ],\n \"notes\": \"string\"\n}\n\nDo not include explanations or prose outside this JSON.\n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "1b2e69b8-bde7-45d2-bfb0-2886ac2f3997",
"name": "Google Gemini 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
16,
912
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "5e06fdc6-e204-41e1-a3e5-dd0fce8cffd2",
"name": "googleSheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
272,
928
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_SHEET_GID_OR_NAME",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_DOCUMENT_ID/edit#gid=YOUR_SHEET_GID_OR_NAME",
"cachedResultName": "Sheet Name (Template)"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_DOCUMENT_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_DOCUMENT_ID/edit?usp=drivesdk",
"cachedResultName": "Sample Database (Template)"
}
},
"typeVersion": 4.7
},
{
"id": "dfdfbe18-115f-4d97-a75f-915dff0b3e11",
"name": "多表:您可以连接多个表以实现有组织的数据结构",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
512,
896
],
"parameters": {
"jsonSchemaExample": "{\n \"recommendedListingId\": \"string\",\n \"topMatches\": [\n {\n \"listingId\": \"string\",\n \"score\": \"\",\n \"reason\": \"string\",\n \"rent\": \"\",\n \"bedrooms\": \"\",\n \"bathrooms\": \"\",\n \"neighborhood\": \"string\",\n \"availableFrom\": \"string\"\n }\n ],\n \"notes\": \"string\"\n}"
},
"typeVersion": 1.3
},
{
"id": "29e27f69-2060-4058-87dd-1c118acfd4be",
"name": "发送消息",
"type": "n8n-nodes-base.gmail",
"position": [
672,
624
],
"webhookId": "WEBHOOK_ID_PLACEHOLDER",
"parameters": {
"sendTo": "={{ $('JotForm Trigger').item.json.Email }}",
"message": "=Hi {{ $('JotForm Trigger').item.json.Name }},\n\nGreat news! 🎉 Based on your preferences, we’ve found several apartments that closely match what you’re looking for. \n\nWe’d love to discuss these options with you and help you pick the perfect one.\n\nPlease use the link below to book a quick meeting with our property consultant: 👉 YOUR_CALENDLY_LINK\n\nDuring the call, we’ll review the listings, confirm availability, and guide you through the next steps.\n\nThe Real Estate Team — If you’ve already scheduled a call, please disregard this message.\n\nLooking forward to speaking with you soon!\nBest regards,\n",
"options": {},
"subject": "Your apartment search results are ready",
"emailType": "text"
},
"typeVersion": 2.1,
"alwaysOutputData": false
},
{
"id": "e0793c85-9b49-4a34-9b1a-03862379c05f",
"name": "创建潜在客户",
"type": "n8n-nodes-base.zohoCrm",
"position": [
928,
624
],
"parameters": {
"Company": "TEMPLATED_COMPANY_NAME",
"lastName": "={{ $('JotForm Trigger').item.json.Name }}",
"resource": "lead",
"additionalFields": {
"Email": "={{ $('JotForm Trigger').item.json.Email }}",
"Mobile": "={{ $('JotForm Trigger').item.json['Cell Phone Number'] }}",
"Full_Name": "={{ $('JotForm Trigger').item.json.Name }}",
"Description": "=🧭 Apartment Match Summary\n──────────────────────────\nLead Name: {{ $('JotForm Trigger').item.json.Name }}\nEmail: {{ $('JotForm Trigger').item.json.Email }}\nPhone: {{ $('JotForm Trigger').item.json['Cell Phone Number'] }}\nMove-in Date: {{ $('Set: Normalize Lead').item.json.lead.moveInDate }}\nPreferred Neighborhoods: {{ $('Set: Normalize Lead').item.json.lead.preferredNeighborhoods }}\nMax Rent: {{ $('Set: Normalize Lead').item.json.lead.maxMonthlyRent }} EGP\nNeeds Parking: {{ $('Set: Normalize Lead').item.json.lead.needsAssignedParking }}\nHas Pets: {{ $('Set: Normalize Lead').item.json.lead.hasPets }}\n\n──────────────────────────\n🏠 AI Recommended Listing\nRecommended Listing ID: {{ $json.output.recommendedListingId }}\nTop Match Neighborhood: {{ $json.output.topMatches[0].neighborhood }}\nRent: {{ $json.output.topMatches[0].rent }} EGP\nBedrooms/Bathrooms: {{ $json.output.topMatches[0].bedrooms }}/{{ $json.output.topMatches[0].bathrooms }}\nAvailable From: {{ $json.output.topMatches[0].availableFrom }}\n\n──────────────────────────\n🏘️ Other Good Matches\n2️⃣ {{ $json.output.topMatches[1].listingId }} — {{ $json.output.topMatches[1].neighborhood }}\n Rent: {{ $json.output.topMatches[1].rent }} EGP\n\n3️⃣ {{ $json.output.topMatches[2].listingId }} — {{ $json.output.topMatches[2].neighborhood }}\n Rent: {{ $json.output.topMatches[2].rent }} EGP\n\n\n",
"Lead_Source": "JotForm form"
}
},
"typeVersion": 1
},
{
"id": "4ad8beca-d9ad-414f-a0ad-bc56011f0993",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
544
],
"parameters": {
"color": 3,
"content": "当用户提交 JotForm 时启动工作流,捕获原始潜在客户数据。"
},
"typeVersion": 1
},
{
"id": "df77592b-4994-41a5-b47c-59ce7923bb44",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
544
],
"parameters": {
"color": 4,
"content": "将原始表单字段映射到标准化的潜在客户对象,以实现一致的数据使用。"
},
"typeVersion": 1
},
{
"id": "80c58506-ad79-481e-9d5a-24985dbb3cd5",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
112,
528
],
"parameters": {
"color": 6,
"width": 336,
"content": "核心逻辑。使用潜在客户标准和 googleSheets 工具来查找并排名前三个匹配的房源。"
},
"typeVersion": 1
},
{
"id": "4c92a0b0-2f32-4b94-81cf-0b0dd4d842ef",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
976
],
"parameters": {
"color": 5,
"width": 288,
"content": "。"
},
"typeVersion": 1
},
{
"id": "9a308dff-e55f-47fc-b5b6-1319b6e78e52",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
528
],
"parameters": {
"color": 4,
"width": 256,
"content": "自动向潜在客户发送电子邮件,通知他们结果已准备就绪,并提示他们预订后续咨询。"
},
"typeVersion": 1
},
{
"id": "cbe5ea3e-4edc-4a3d-8bbf-ddaaefc9baee",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
864,
528
],
"parameters": {
"color": 5,
"width": 288,
"content": "在 Zoho CRM 中创建一个新的、详细的潜在客户记录,包括客户需求和 AI 的顶级房源推荐。"
},
"typeVersion": 1
},
{
"id": "3873d283-f68d-4bc3-90ae-4ebf61767759",
"name": "便签12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
-224
],
"parameters": {
"width": 1024,
"height": 736,
"content": "# JotForm 设置指南"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "27b5e246-a6bf-40c4-8ddf-52a41aeb2040",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"googleSheets": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Send a message": {
"main": [
[
{
"node": "Create a lead",
"type": "main",
"index": 0
}
]
]
},
"JotForm Trigger": {
"main": [
[
{
"node": "Set: Normalize Lead",
"type": "main",
"index": 0
}
]
]
},
"Set: Normalize Lead": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
JotForm 返现(模板)
使用 JotForm、Gemini 2.5 和 Notion 的自动化返现收据处理
If
Code
Gmail
+8
25 节点Abdullah Alshiekh
候选人评分(已提交)
使用Jotform和Gemini AI自动化候选人分析与排名
If
Gmail
Google Sheets
+4
14 节点Abdullah Alshiekh
AI医疗报告生成器
使用Gemini AI和Google Workspace从电子邮件生成医疗报告
Set
Code
Gmail
+8
21 节点Abdullah Alshiekh
文档提取
通过 WhatsApp 验证、Gemini AI 和 Zoho CRM 筛选 Meta 广告潜在客户
通过 WhatsApp 验证、Gemini AI 和 Zoho CRM 筛选 Meta 广告潜在客户
If
Set
Code
+8
43 节点Abdullah Alshiekh
潜在客户开发
AI驱动的反馈分诊系统:Jotform到Trello、Airtable和Slack,集成Gemini
AI驱动的反馈分诊系统:Jotform到Trello、Airtable和Slack,集成Gemini
If
Set
Gmail
+9
21 节点Atta
市场调研
使用 Jotform、Gemini AI 和 Google Sheets 自动化内部投诉处理
通过 Jotform、Gemini AI 和 Google Sheets 实现内部投诉处理的自动化
If
Gmail
Google Sheets
+7
22 节点iamvaar
工单管理
工作流信息
难度等级
中级
节点数量15
分类-
节点类型9
作者
Abdullah Alshiekh
@abdullah01🚀 Automation pro building AI-powered workflows with n8n. 💼 Special focus on real use cases 🔧 Love clean, flexible, and business-ready automations.
外部链接
在 n8n.io 查看 →
分享此工作流