报价自动化模板
高级
这是一个CRM领域的自动化工作流,包含 35 个节点。主要使用 If, Set, Code, Html, Merge 等节点。 从Pipedrive生成报价PDF并发送至DottedSign进行电子签名
前置要求
- •可能需要目标 API 的认证凭证
使用的节点 (35)
分类
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "8LJ5mlndFypZh1VS",
"meta": {
"instanceId": "cf9804b12ee62314911ec55daa0c998a73f201da1917bd31262722d206bf0f27",
"templateCredsSetupCompleted": true
},
"name": "报价自动化模板",
"tags": [],
"nodes": [
{
"id": "2e87b077-c9bf-49c9-9d03-955bdc6615c3",
"name": "Pipedrive 触发器",
"type": "n8n-nodes-base.pipedriveTrigger",
"position": [
-16,
176
],
"webhookId": "988adb20-acfa-4668-858e-f89825b8bf6a",
"parameters": {
"action": "change",
"entity": "deal"
},
"credentials": {
"pipedriveApi": {
"id": "M0Osgaz0uW0e047E",
"name": "Pipedrive account Sandbox"
}
},
"typeVersion": 1.1
},
{
"id": "a0076d48-fc1b-4b1c-937e-9dacb05fa9a9",
"name": "获取交易",
"type": "n8n-nodes-base.pipedrive",
"position": [
1104,
-112
],
"parameters": {
"dealId": "={{ $json.data.id }}",
"operation": "get"
},
"credentials": {
"pipedriveApi": {
"id": "M0Osgaz0uW0e047E",
"name": "Pipedrive account Sandbox"
}
},
"typeVersion": 1
},
{
"id": "351d5e24-33ba-4d98-82c4-e76c8ea7edce",
"name": "editFlag=True",
"type": "n8n-nodes-base.filter",
"position": [
880,
-304
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "01e341f6-05e7-4521-8b8e-dcba0a5e818c",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.edit_flag }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "b9f38e9c-428e-4ea2-a503-c927419bcf2d",
"name": "获取多个交易产品",
"type": "n8n-nodes-base.pipedrive",
"position": [
880,
80
],
"parameters": {
"dealId": "={{ $json.meta.entity_id }}",
"resource": "dealProduct",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"pipedriveApi": {
"id": "M0Osgaz0uW0e047E",
"name": "Pipedrive account Sandbox"
}
},
"typeVersion": 1
},
{
"id": "609f3763-2ce6-479c-b35d-a67da0edda07",
"name": "setProductRows",
"type": "n8n-nodes-base.code",
"position": [
2000,
176
],
"parameters": {
"jsCode": "// n8n Code Node (or similar Javascript environment)\n\nconst items = $input.first().json.deal_products;\nlet htmlRows = '';\n\nfor (const item of items) {\n // 修正後的版本:100% 匹配您的原版範本的結構和 CSS Class\n let singleRowHtml = `\n <tr class=\"c44\">\n <td class=\"c40\" colspan=\"1\" rowspan=\"1\">\n <p class=\"c10 c28\">\n <span class=\"c34\">${item.name}</span>\n </p>\n </td>\n <td class=\"c30\" colspan=\"1\" rowspan=\"1\">\n <p class=\"c8\">\n <span class=\"c4\">${item.quantity}</span>\n </p>\n </td>\n <td class=\"c1\" colspan=\"1\" rowspan=\"1\">\n <p class=\"c26\">\n <span class=\"c4\">${item.currency} ${parseFloat(item.item_price).toFixed(2)}</span>\n </p>\n </td>\n <td class=\"c15\" colspan=\"1\" rowspan=\"1\">\n <p class=\"c8\">\n <span class=\"c4\">${item.discount}%</span>\n </p>\n </td>\n <td class=\"c7\" colspan=\"1\" rowspan=\"1\">\n <p class=\"c26\">\n <span class=\"c4\">${item.currency} ${parseFloat(item.sum).toFixed(2)}</span>\n </p>\n </td>\n </tr>\n `;\n // 清理換行和多餘空格,確保 HTML 乾淨\n htmlRows += singleRowHtml.replace(/\\n\\s*/g, '');\n}\n\nreturn { table_rows_html: htmlRows };"
},
"typeVersion": 2
},
{
"id": "8667563a-03d9-4d64-aff0-8d76deb7c853",
"name": "获取联系人",
"type": "n8n-nodes-base.pipedrive",
"position": [
1104,
272
],
"parameters": {
"personId": "={{ $json.data.person_id }}",
"resource": "person",
"operation": "get"
},
"credentials": {
"pipedriveApi": {
"id": "M0Osgaz0uW0e047E",
"name": "Pipedrive account Sandbox"
}
},
"typeVersion": 1
},
{
"id": "ee372227-55b8-40cc-800a-d9e5aa1d3d37",
"name": "field_mappings",
"type": "n8n-nodes-base.set",
"position": [
1328,
-304
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6b1137c7-df7e-41be-8555-9860db142e74",
"name": "field_mappings",
"type": "object",
"value": "={{ $json }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0cd3669f-1e1f-4d8e-a9a2-35b39f61d132",
"name": "deal_details",
"type": "n8n-nodes-base.set",
"position": [
1328,
-112
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "72ee9f3f-178c-457b-981a-09ae60fca3ea",
"name": "deal_details",
"type": "object",
"value": "={{ $json }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8b6c48fa-451e-45d6-b86f-4a15782d60af",
"name": "person_details",
"type": "n8n-nodes-base.set",
"position": [
1328,
272
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b779769c-f9b4-48a1-8bfe-7827baf990b1",
"name": "person_details",
"type": "object",
"value": "={{ $json }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1c0268a7-490b-4b3f-a7db-458bace5c6d1",
"name": "deal_products",
"type": "n8n-nodes-base.set",
"position": [
1328,
80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "13d41759-702c-4639-a184-615096f89a02",
"name": "deal_products",
"type": "object",
"value": "={{ $json }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e37cb8c9-fc54-4cad-973c-921fd1f7392c",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
1104,
-304
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "74ff239d-aff4-462f-96b6-57ebf65df4c4",
"name": "聚合1",
"type": "n8n-nodes-base.aggregate",
"position": [
1104,
80
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "9465410d-f738-4d0d-bbf5-7132a440c21e",
"name": "获取组织",
"type": "n8n-nodes-base.pipedrive",
"position": [
1104,
464
],
"parameters": {
"resource": "organization",
"operation": "get",
"organizationId": "={{ $json.data.org_id }}"
},
"credentials": {
"pipedriveApi": {
"id": "M0Osgaz0uW0e047E",
"name": "Pipedrive account Sandbox"
}
},
"typeVersion": 1
},
{
"id": "a11a4440-9c19-4d22-bdc9-09cc26a7ab74",
"name": "org_details",
"type": "n8n-nodes-base.set",
"position": [
1328,
464
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "baad2fc7-b3e8-45af-a45f-1bebf88dbf79",
"name": "org_details",
"type": "object",
"value": "={{ $json }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "14ba18cc-36cd-41f8-8c2d-42c263c7364a",
"name": "转换为 HTML",
"type": "n8n-nodes-base.convertToFile",
"position": [
2448,
176
],
"parameters": {
"options": {
"encoding": "utf8",
"fileName": "index.html",
"mimeType": "text/html",
"dataIsBase64": false
},
"operation": "toBinary",
"sourceProperty": "html"
},
"typeVersion": 1
},
{
"id": "b1005793-6c53-429c-afac-c957994391f5",
"name": "创建文件",
"type": "n8n-nodes-base.pipedrive",
"position": [
3120,
272
],
"parameters": {
"resource": "file",
"additionalFields": {
"deal_id": "={{ $('Clean & Map Data').item.json.id }}",
"activity_id": "={{ $('Create an activity').item.json.id }}"
},
"binaryPropertyName": "=data"
},
"credentials": {
"pipedriveApi": {
"id": "M0Osgaz0uW0e047E",
"name": "Pipedrive account Sandbox"
}
},
"typeVersion": 1
},
{
"id": "25e7bbe7-3bd6-4968-aff5-92e1a2c48876",
"name": "创建活动",
"type": "n8n-nodes-base.pipedrive",
"position": [
1104,
656
],
"parameters": {
"type": "Quoatation",
"subject": "=Quotation/ {{ $json.data.id }}/{{ $json.data.update_time.toDateTime().format('yyyyMMdd') }}",
"resource": "activity",
"additionalFields": {
"deal_id": "={{ $json.data.id }}"
}
},
"credentials": {
"pipedriveApi": {
"id": "M0Osgaz0uW0e047E",
"name": "Pipedrive account Sandbox"
}
},
"typeVersion": 1
},
{
"id": "276e0728-344b-4ef3-bf31-16b6aeacc898",
"name": "activity_details",
"type": "n8n-nodes-base.set",
"position": [
1328,
656
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "baad2fc7-b3e8-45af-a45f-1bebf88dbf79",
"name": "activity_details",
"type": "object",
"value": "={{ $json }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ab6a37ee-a249-46ea-b335-3b9c20bcc8ab",
"name": "DottedSign-创建任务",
"type": "n8n-nodes-base.httpRequest",
"position": [
3792,
176
],
"parameters": {
"url": "https://api.sandbox.dottedsign.com/v1/sign_tasks",
"method": "POST",
"options": {},
"jsonBody": "={\n \"has_order\": false,\n \"start\": true,\n \"stages\": [\n {\n \"field_settings\": [\n {\n \"field_type\": \"signature\",\n \"coord\": [92.0, 237.0, 353.0, 274.0],\n \"options\": { \"placeholder\": \"signhere\" },\n \"page\": 1\n }\n ],\n \"stage_setting\": {\n \"informable\": true,\n \"reviewed_skip_confirm\": true\n },\n \"name\": \"{{ $('Clean & Map Data').item.json.person_details.name }}\",\n \"email\": \"{{ $('Clean & Map Data').item.json.person_details.email[0].value }}\",\n \"stage_type\": \"sign\"\n }\n ],\n \"task_setting\": {\n \"cc_infos\": [\n {\n \"email\": \"{{ $('Clean & Map Data').item.json.person_details.owner_id.email }}\",\n \"name\": \"{{ $('Clean & Map Data').item.json.person_details.owner_id.name }}\" }],\n \"receiver_lang\": \"en\",\n \"owner_informable\": true\n },\n \"base64_file\": \"{{ $json.data }}\",\n \"file_name\": \"{{ $('Clean & Map Data').item.json.title.replace(/[\\\"*:<>\\?\\/\\\\|~#%&{}]/g, '_') }}.pdf\"\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $json.access_token }}"
},
{
"name": "content-type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "60cc6b34-70f4-4900-a7cb-0a16ee987344",
"name": "从文件提取",
"type": "n8n-nodes-base.extractFromFile",
"position": [
3344,
80
],
"parameters": {
"options": {},
"operation": "binaryToPropery"
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "de55a7d7-c151-4270-b356-ff6600ced25a",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1200,
-560
],
"parameters": {
"width": 1056,
"height": 752,
"content": "## 📌 概述"
},
"typeVersion": 1
},
{
"id": "cc8f8665-c85f-4e05-bdba-fcd560a7aba0",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
-560
],
"parameters": {
"color": 3,
"width": 1504,
"height": 1504,
"content": "## **步骤 1:触发与数据收集**"
},
"typeVersion": 1
},
{
"id": "ffe36349-2631-4001-94cb-33068ef48be8",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1520,
-144
],
"parameters": {
"width": 640,
"height": 752,
"content": "## **步骤 2:数据处理**"
},
"typeVersion": 1
},
{
"id": "bfb48e6f-0b00-438b-a5e1-ec79d703508f",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2176,
-32
],
"parameters": {
"color": 4,
"width": 848,
"height": 464,
"content": "## **步骤 3:PDF 生成**"
},
"typeVersion": 1
},
{
"id": "02b99292-f1df-4343-a2d6-e29b7d96b147",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
3072,
-128
],
"parameters": {
"width": 944,
"height": 688,
"content": "## **步骤 4:最终操作**"
},
"typeVersion": 1
},
{
"id": "891f3d99-0b53-468c-a95e-ea84fa420ef9",
"name": "MergeAllData",
"type": "n8n-nodes-base.merge",
"position": [
1552,
112
],
"parameters": {
"mode": "combine",
"options": {
"includeUnpaired": true
},
"combineBy": "combineByPosition",
"numberInputs": 6
},
"typeVersion": 3.2
},
{
"id": "6a653173-a497-4fa0-88ae-ffdee6cb14ed",
"name": "MergeForDS",
"type": "n8n-nodes-base.merge",
"position": [
3568,
176
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2,
"alwaysOutputData": true
},
{
"id": "647168e9-bd89-4cfb-b314-2375f9123d18",
"name": "清理和映射数据",
"type": "n8n-nodes-base.code",
"position": [
1776,
176
],
"parameters": {
"jsCode": "\nconst inputData = $input.item.json;\n\n\nconst dealData = inputData.deal_details;\nconst personData = inputData.person_details;\nconst orgData = inputData.org_details;\n// 從聚合後的物件中提取陣列\nconst dealProducts = inputData.deal_products?.data || [];\nconst fieldMappingsArray = inputData.field_mappings?.data || [];\n\n\nif (!dealData) {\n throw new Error(\"Deal data (deal_details) is missing from the input. Check the Merge node and its inputs.\");\n}\n\n\nconst fieldMapping = {};\nfor (const field of fieldMappingsArray) {\n if (field.key && field.name) {\n fieldMapping[field.key] = field.name;\n\n if ((field.field_type === 'enum' || field.field_type === 'set') && field.options) {\n fieldMapping[field.key + '_options'] = field.options;\n }\n }\n}\n\n\nconst cleanedDeal = {};\n\n\nfor (const key in dealData) {\n if (dealData.hasOwnProperty(key)) {\n let value = dealData[key];\n\n\n if (fieldMapping[key]) {\n const fieldName = fieldMapping[key];\n const options = fieldMapping[key + '_options'];\n\n\n if (options && (typeof value === 'string' || typeof value === 'number')) {\n const valueArray = String(value).split(',').map(s => s.trim());\n const labels = valueArray.map(val => {\n const option = options.find(opt => String(opt.id) === val);\n return option ? option.label : val; \n });\n cleanedDeal[fieldName] = (valueArray.length > 1) ? labels : labels[0];\n } else if (value && typeof value === 'object' && value !== null && value.name !== undefined) {\n cleanedDeal[fieldName] = value.name;\n } else if (value && typeof value === 'object' && value !== null && value.value !== undefined) {\n cleanedDeal[fieldName] = value.value;\n } else {\n cleanedDeal[fieldName] = value;\n }\n\n } else if (key.endsWith('_id') && typeof value === 'object' && value !== null && value.name !== undefined) {\n cleanedDeal[key.replace('_id', '_name')] = value.name;\n\n } else {\n cleanedDeal[key] = value;\n }\n }\n}\n\n\nif (personData) {\n cleanedDeal.person_details = personData;\n}\nif (orgData) {\n cleanedDeal.org_details = orgData;\n}\nif (dealProducts.length > 0) {\n cleanedDeal.deal_products = dealProducts;\n}\n\n\nreturn [{\n json: cleanedDeal\n}];"
},
"typeVersion": 2
},
{
"id": "c7724bac-4f45-4d31-96ab-78e09e9604e5",
"name": "生成报价 HTML",
"type": "n8n-nodes-base.html",
"position": [
2224,
176
],
"parameters": {
"html": "<html><head><meta content=\"text/html; charset=UTF-8\" http-equiv=\"content-type\"><style type=\"text/css\">@import url(https://themes.googleusercontent.com/fonts/css?kit=LludKuljlMT3jFKoCJBb3ZGXRELsXKhls461I330flvOdzB2mwCRHVmoHO5Y1julzmIsy1y9bUj5sDfU2s6azg);ol.lst-kix_list_7-0{list-style-type:none}ul.lst-kix_list_1-0{list-style-type:none}.lst-kix_list_3-0>li:before{content:\"\\0025cf \"}ul.lst-kix_list_5-7{list-style-type:none}ul.lst-kix_list_5-8{list-style-type:none}.lst-kix_list_3-1>li:before{content:\"\\0025a0 \"}.lst-kix_list_3-2>li:before{content:\"\\0025c6 \"}ul.lst-kix_list_5-5{list-style-type:none}ul.lst-kix_list_5-6{list-style-type:none}.lst-kix_list_6-0>li{counter-increment:lst-ctn-kix_list_6-0}.lst-kix_list_7-0>li{counter-increment:lst-ctn-kix_list_7-0}ul.lst-kix_list_1-3{list-style-type:none}.lst-kix_list_3-5>li:before{content:\"\\0025c6 \"}ul.lst-kix_list_5-0{list-style-type:none}ul.lst-kix_list_1-4{list-style-type:none}ul.lst-kix_list_1-1{list-style-type:none}.lst-kix_list_3-4>li:before{content:\"\\0025a0 \"}ul.lst-kix_list_1-2{list-style-type:none}ul.lst-kix_list_5-3{list-style-type:none}ul.lst-kix_list_1-7{list-style-type:none}.lst-kix_list_3-3>li:before{content:\"\\0025cf \"}ul.lst-kix_list_5-4{list-style-type:none}ul.lst-kix_list_1-8{list-style-type:none}ul.lst-kix_list_5-1{list-style-type:none}ul.lst-kix_list_1-5{list-style-type:none}ul.lst-kix_list_5-2{list-style-type:none}ul.lst-kix_list_1-6{list-style-type:none}.lst-kix_list_3-8>li:before{content:\"\\0025c6 \"}.lst-kix_list_3-6>li:before{content:\"\\0025cf \"}.lst-kix_list_3-7>li:before{content:\"\\0025a0 \"}.lst-kix_list_5-0>li:before{content:\"\\0025cf \"}ol.lst-kix_list_6-0{list-style-type:none}.lst-kix_list_4-8>li:before{content:\"\\0025c6 \"}.lst-kix_list_5-3>li:before{content:\"\\0025cf \"}.lst-kix_list_4-7>li:before{content:\"\\0025a0 \"}.lst-kix_list_5-2>li:before{content:\"\\0025c6 \"}.lst-kix_list_5-1>li:before{content:\"\\0025a0 \"}ul.lst-kix_list_4-8{list-style-type:none}.lst-kix_list_5-7>li:before{content:\"\\0025a0 \"}ul.lst-kix_list_4-6{list-style-type:none}.lst-kix_list_5-6>li:before{content:\"\\0025cf \"}.lst-kix_list_5-8>li:before{content:\"\\0025c6 \"}ul.lst-kix_list_4-7{list-style-type:none}ul.lst-kix_list_4-0{list-style-type:none}ul.lst-kix_list_4-1{list-style-type:none}.lst-kix_list_5-4>li:before{content:\"\\0025a0 \"}ul.lst-kix_list_4-4{list-style-type:none}.lst-kix_list_5-5>li:before{content:\"\\0025c6 \"}ul.lst-kix_list_4-5{list-style-type:none}ul.lst-kix_list_4-2{list-style-type:none}ul.lst-kix_list_4-3{list-style-type:none}.lst-kix_list_6-1>li:before{content:\"\\0025a0 \"}.lst-kix_list_6-3>li:before{content:\"\\0025cf \"}.lst-kix_list_6-0>li:before{content:\"\"counter(lst-ctn-kix_list_6-0, decimal) \". \"}.lst-kix_list_6-4>li:before{content:\"\\0025a0 \"}.lst-kix_list_6-2>li:before{content:\"\\0025c6 \"}.lst-kix_list_6-8>li:before{content:\"\\0025c6 \"}.lst-kix_list_6-5>li:before{content:\"\\0025c6 \"}.lst-kix_list_6-7>li:before{content:\"\\0025a0 \"}.lst-kix_list_7-0>li:before{content:\"\"counter(lst-ctn-kix_list_7-0, decimal) \". \"}.lst-kix_list_6-6>li:before{content:\"\\0025cf \"}.lst-kix_list_2-6>li:before{content:\"\\0025cf \"}.lst-kix_list_2-7>li:before{content:\"\\0025a0 \"}.lst-kix_list_7-4>li:before{content:\"\\0025a0 \"}.lst-kix_list_7-6>li:before{content:\"\\0025cf \"}.lst-kix_list_2-4>li:before{content:\"\\0025a0 \"}.lst-kix_list_2-5>li:before{content:\"\\0025c6 \"}.lst-kix_list_2-8>li:before{content:\"\\0025c6 \"}.lst-kix_list_7-1>li:before{content:\"\\0025a0 \"}.lst-kix_list_7-5>li:before{content:\"\\0025c6 \"}.lst-kix_list_7-2>li:before{content:\"\\0025c6 \"}.lst-kix_list_7-3>li:before{content:\"\\0025cf \"}ul.lst-kix_list_7-5{list-style-type:none}ul.lst-kix_list_7-6{list-style-type:none}ul.lst-kix_list_7-3{list-style-type:none}ul.lst-kix_list_3-7{list-style-type:none}ul.lst-kix_list_7-4{list-style-type:none}ul.lst-kix_list_3-8{list-style-type:none}ul.lst-kix_list_7-7{list-style-type:none}ul.lst-kix_list_7-8{list-style-type:none}ul.lst-kix_list_3-1{list-style-type:none}ul.lst-kix_list_3-2{list-style-type:none}.lst-kix_list_7-8>li:before{content:\"\\0025c6 \"}ul.lst-kix_list_3-0{list-style-type:none}ul.lst-kix_list_7-1{list-style-type:none}ul.lst-kix_list_3-5{list-style-type:none}ul.lst-kix_list_7-2{list-style-type:none}ul.lst-kix_list_3-6{list-style-type:none}ul.lst-kix_list_3-3{list-style-type:none}.lst-kix_list_7-7>li:before{content:\"\\0025a0 \"}ul.lst-kix_list_3-4{list-style-type:none}.lst-kix_list_4-0>li:before{content:\"\\0025cf \"}.lst-kix_list_4-1>li:before{content:\"\\0025a0 \"}.lst-kix_list_4-4>li:before{content:\"\\0025a0 \"}.lst-kix_list_4-3>li:before{content:\"\\0025cf \"}.lst-kix_list_4-5>li:before{content:\"\\0025c6 \"}.lst-kix_list_4-2>li:before{content:\"\\0025c6 \"}.lst-kix_list_4-6>li:before{content:\"\\0025cf \"}ol.lst-kix_list_7-0.start{counter-reset:lst-ctn-kix_list_7-0 0}ul.lst-kix_list_6-6{list-style-type:none}ul.lst-kix_list_6-7{list-style-type:none}ul.lst-kix_list_6-4{list-style-type:none}ul.lst-kix_list_2-8{list-style-type:none}ul.lst-kix_list_6-5{list-style-type:none}ul.lst-kix_list_6-8{list-style-type:none}ul.lst-kix_list_2-2{list-style-type:none}.lst-kix_list_1-0>li:before{content:\"\\0025cf \"}ul.lst-kix_list_2-3{list-style-type:none}ul.lst-kix_list_2-0{list-style-type:none}ul.lst-kix_list_2-1{list-style-type:none}ul.lst-kix_list_6-2{list-style-type:none}ul.lst-kix_list_2-6{list-style-type:none}ul.lst-kix_list_6-3{list-style-type:none}.lst-kix_list_1-1>li:before{content:\"\\0025a0 \"}.lst-kix_list_1-2>li:before{content:\"\\0025c6 \"}ul.lst-kix_list_2-7{list-style-type:none}ul.lst-kix_list_2-4{list-style-type:none}ul.lst-kix_list_6-1{list-style-type:none}ul.lst-kix_list_2-5{list-style-type:none}.lst-kix_list_1-3>li:before{content:\"\\0025cf \"}.lst-kix_list_1-4>li:before{content:\"\\0025a0 \"}.lst-kix_list_1-7>li:before{content:\"\\0025a0 \"}.lst-kix_list_1-5>li:before{content:\"\\0025c6 \"}.lst-kix_list_1-6>li:before{content:\"\\0025cf \"}li.li-bullet-0:before{margin-left:-24pt;white-space:nowrap;display:inline-block;min-width:24pt}.lst-kix_list_2-0>li:before{content:\"\\0025cf \"}.lst-kix_list_2-1>li:before{content:\"\\0025a0 \"}ol.lst-kix_list_6-0.start{counter-reset:lst-ctn-kix_list_6-0 0}.lst-kix_list_1-8>li:before{content:\"\\0025c6 \"}.lst-kix_list_2-2>li:before{content:\"\\0025c6 \"}.lst-kix_list_2-3>li:before{content:\"\\0025cf \"}ol{margin:0;padding:0}table td,table th{padding:0}.c0{border-right-style:solid;padding:0 5.4pt 0 5.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:1pt;border-top-style:solid;background-color:#999;border-left-style:solid;border-bottom-width:1pt;width:73.6pt;border-top-color:#000;border-bottom-style:solid}.c25{border-right-style:solid;padding:0 1.4pt 0 1.4pt;border-bottom-color:#000;border-top-width:0;border-right-width:0;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:0;border-top-style:solid;border-left-style:solid;border-bottom-width:0;width:262.2pt;border-top-color:#000;border-bottom-style:solid}.c40{border-right-style:solid;padding:0 5.4pt 0 5.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:184pt;border-top-color:#000;border-bottom-style:solid}.c43{border-right-style:solid;padding:0 5.4pt 0 5.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:495.2pt;border-top-color:#000;border-bottom-style:solid}.c2{border-right-style:solid;padding:0 5.4pt 0 5.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:421.6pt;border-top-color:#000;border-bottom-style:solid}.c7{border-right-style:solid;padding:0 5.4pt 0 5.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:73.6pt;border-top-color:#000;border-bottom-style:solid}.c1{border-right-style:solid;padding:0 5.4pt 0 5.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:86pt;border-top-color:#000;border-bottom-style:solid}.c5{border-right-style:solid;padding:0 1.4pt 0 1.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:0;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:0;border-top-style:solid;border-left-style:solid;border-bottom-width:0;width:262.2pt;border-top-color:#000;border-bottom-style:solid}.c30{border-right-style:solid;padding:0 5.4pt 0 5.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:78pt;border-top-color:#000;border-bottom-style:solid}.c15{border-right-style:solid;padding:0 5.4pt 0 5.4pt;border-bottom-color:#000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000;vertical-align:top;border-right-color:#000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:73.7pt;border-top-color:#000;border-bottom-style:solid}.c20{-webkit-text-decoration-skip:none;color:#00f;font-weight:400;text-decoration:underline;vertical-align:baseline;text-decoration-skip-ink:none;font-size:10pt;font-family:\"Times New Roman\";font-style:normal}.c16{-webkit-text-decoration-skip:none;color:#000;font-weight:700;text-decoration:underline;vertical-align:baseline;text-decoration-skip-ink:none;font-size:12pt;font-family:\"Times New Roman\";font-style:normal}.c14{color:#000;font-weight:700;text-decoration:none;vertical-align:baseline;font-size:10pt;font-family:\"Times New Roman\";font-style:normal}.c38{-webkit-text-decoration-skip:none;color:#00f;font-weight:400;text-decoration:underline;text-decoration-skip-ink:none;font-size:10pt;font-family:\"Times New Roman\"}.c47{color:#000;font-weight:700;text-decoration:none;vertical-align:baseline;font-size:24pt;font-family:\"Book Antiqua\";font-style:normal}.c46{color:#000;font-weight:700;text-decoration:none;vertical-align:baseline;font-size:10pt;font-family:\"Microsoft JhengHei\";font-style:normal}.c17{color:#000;font-weight:700;text-decoration:none;vertical-align:baseline;font-size:12pt;font-family:\"Times New Roman\";font-style:normal}.c9{-webkit-text-decoration-skip:none;color:#000;font-weight:400;text-decoration:underline;text-decoration-skip-ink:none;font-size:10pt;font-family:\"Times New Roman\"}.c41{color:#000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:12pt;font-family:Tahoma;font-style:normal}.c3{color:#000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:12pt;font-family:Cambria;font-style:normal}.c34{color:#000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:9.5pt;font-family:\"Times New Roman\";font-style:normal}.c4{color:#000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:10pt;font-family:\"Times New Roman\";font-style:normal}.c13{padding-top:0;padding-bottom:0;line-height:1.0833333333333333;orphans:2;widows:2;text-align:right}.c23{margin-left:18pt;padding-top:0;padding-bottom:0;line-height:1;padding-left:6pt;text-align:justify}.c8{padding-top:0;padding-bottom:0;line-height:1;text-align:center;height:12pt}.c22{margin-left:24pt;padding-top:0;padding-bottom:0;line-height:1;text-align:justify}.c6{padding-top:0;padding-bottom:0;line-height:1.15;text-align:left;height:12pt}.c27{padding-top:0;padding-bottom:0;line-height:1;text-align:right}.c10{padding-top:0;padding-bottom:0;line-height:1;text-align:left}.c24{border-spacing:0;border-collapse:collapse;margin-right:auto}.c26{padding-top:0;padding-bottom:0;line-height:1;text-align:center}.c33{padding-top:0;padding-bottom:0;line-height:1;text-align:justify}.c36{background-color:#fff;max-width:495.7pt;padding:56.7pt 42.5pt 42.5pt 56.7pt}.c37{font-size:10pt;font-weight:700;font-family:\"Times New Roman\"}.c42{orphans:2;widows:2}.c12{padding:0;margin:0}.c35{margin-left:18pt;padding-left:6pt}.c18{color:inherit;text-decoration:inherit}.c21{margin-left:24pt;height:12pt}.c19{height:12.8pt}.c44{height:21.9pt}.c11{background-color:#999}.c39{height:23.8pt}.c28{height:12pt}.c29{height:20.6pt}.c32{height:13.3pt}.c45{text-indent:26.8pt}.c31{margin-left:24pt}\n.n8n-input { display: none; }\n.title{padding-top:24pt;color:#000;font-weight:700;font-size:36pt;padding-bottom:6pt;font-family:Cambria;line-height:1;page-break-after:avoid;text-align:left}.subtitle{padding-top:18pt;color:#666;font-size:24pt;padding-bottom:4pt;font-family:Georgia;line-height:1;page-break-after:avoid;font-style:italic;text-align:left}li{color:#000;font-size:12pt;font-family:Cambria}p{margin:0;color:#000;font-size:12pt;font-family:Cambria}h1{padding-top:24pt;color:#000;font-weight:700;font-size:24pt;padding-bottom:6pt;font-family:Cambria;line-height:1;page-break-after:avoid;text-align:left}h2{padding-top:18pt;color:#000;font-weight:700;font-size:18pt;padding-bottom:4pt;font-family:Cambria;line-height:1;page-break-after:avoid;text-align:left}h3{padding-top:14pt;color:#000;font-weight:700;font-size:14pt;padding-bottom:4pt;font-family:Cambria;line-height:1;page-break-after:avoid;text-align:left}h4{padding-top:12pt;color:#000;font-weight:700;font-size:12pt;padding-bottom:2pt;font-family:Cambria;line-height:1;page-break-after:avoid;text-align:left}h5{padding-top:11pt;color:#000;font-weight:700;font-size:11pt;padding-bottom:2pt;font-family:Cambria;line-height:1;page-break-after:avoid;text-align:left}h6{padding-top:10pt;color:#000;font-weight:700;font-size:10pt;padding-bottom:2pt;font-family:Cambria;line-height:1;page-break-after:avoid;text-align:left}</style></head><body class=\"c36 doc-content\"><p class=\"c26\"><span class=\"c47\">YOUR COMPANY NAME.</span><span style=\"overflow:hidden;display:inline-block;margin:0 0;border:0 solid #000;transform:rotate(0rad) translateZ(0);-webkit-transform:rotate(0rad) translateZ(0);width:187.47px;height:63px\"></span></p><p class=\"c13\"><span class=\"c4\">YOUR COMPANY ADDRESS,</span></p><p class=\"c13\"><span class=\"c4\">YOUR COMPANY ADDRESS</span></p><p class=\"c13\"><span class=\"c4\">Phone: YOUR COMPANY PHONE</span></p><p class=\"c13\"><span class=\"c38\"><a class=\"c18\" href=\"https://www.google.com\">YOUR COMPANY WEBSITE</a></span><span class=\"c9\"> </span><span> </span></p><p class=\"c27 c42\"><span class=\"c4\">Contact Person: <span class=\"n8n-input\">n8n-user_name:</span>{{ $('Clean & Map Data').item.json.user_name }}</span></p><p class=\"c10 c28\"><span class=\"c17\"></span></p><p class=\"c26\"><span class=\"c16\">QUOTATION</span></p><p class=\"c10\"><span class=\"c37\">QUO-NO # <span class=\"n8n-input\">n8n-deal_id:</span>{{ $('Clean & Map Data').item.json.id }}</span></p><p class=\"c10\"><span class=\"c14\">DATE: <span class=\"n8n-input\">n8n-date:</span>{{ $('Clean & Map Data').item.json.update_time.toDateTime().format('yyyy-MM-dd') }}</span></p><p class=\"c10\"><span class=\"c37\">Quote To:</span><span class=\"c37\">_____<span class=\"n8n-input\">n8n-org_name:</span>{{ $('Clean & Map Data').item.json.org_name }}______</span><span class=\"c14\">(“You”or “Your”)</span></p><table class=\"c24\"><tr class=\"c19\"><td class=\"c40 c11\" colspan=\"1\" rowspan=\"1\"><p class=\"c26 c42\"><span class=\"c17\">Description</span></p></td><td class=\"c30 c11\" colspan=\"1\" rowspan=\"1\"><p class=\"c26\"><span class=\"c17\">Quantity</span></p></td><td class=\"c1 c11\" colspan=\"1\" rowspan=\"1\"><p class=\"c26\"><span class=\"c17\">Unit Price</span></p></td><td class=\"c15 c11\" colspan=\"1\" rowspan=\"1\"><p class=\"c26\"><span class=\"c17\">Discount</span></p></td><td class=\"c0\" colspan=\"1\" rowspan=\"1\"><p class=\"c26\"><span class=\"c17\">Amount</span></p></td></tr>{{ $('setProductRows').item.json.table_rows_html }}<tr class=\"c29\"><td class=\"c2\" colspan=\"4\" rowspan=\"1\"><p class=\"c27\"><span class=\"c4\">Sub Total</span></p></td><td class=\"c7\" colspan=\"1\" rowspan=\"1\"><p class=\"c27 c28\"><span class=\"c4\">{{ $('Clean & Map Data').item.json.currency }} {{ $('Clean & Map Data').item.json.value }}</span></p></td></tr><tr class=\"c29\"><td class=\"c2\" colspan=\"4\" rowspan=\"1\"><p class=\"c27\"><span class=\"c4\">Shipping</span></p></td><td class=\"c7\" colspan=\"1\" rowspan=\"1\"><p class=\"c27\"><span class=\"c4\">{{ $('Clean & Map Data').item.json.currency }}</span></p></td></tr><tr class=\"c29\"><td class=\"c2\" colspan=\"4\" rowspan=\"1\"><p class=\"c27\"><span class=\"c4\">Tax (5%)</span></p></td><td class=\"c7\" colspan=\"1\" rowspan=\"1\"><p class=\"c27\"><span class=\"c4\">{{ $('Clean & Map Data').item.json.currency }}</span></p></td></tr><tr class=\"c29\"><td class=\"c2\" colspan=\"4\" rowspan=\"1\"><p class=\"c27\"><span class=\"c4\">Total</span></p></td><td class=\"c7\" colspan=\"1\" rowspan=\"1\"><p class=\"c27 c28\"><span class=\"c4\">{{ $('Clean & Map Data').item.json.currency }} {{ $('Clean & Map Data').item.json.value }}</span></p></td></tr><tr class=\"c29\"><td class=\"c43\" colspan=\"5\" rowspan=\"1\"><p class=\"c10\"><span class=\"c14\">Note:</span></p><p class=\"c10 c28\"><span class=\"c4\"></span></p></td></tr></table><p class=\"c28 c33\"><span class=\"c14\"></span></p><ol class=\"c12 lst-kix_list_7-0 start\" start=\"1\"><li class=\"c23 li-bullet-0\"><span class=\"c4\">This quotation takes effect when You have completed the signing and return the electronic files (including scanned files or PDFs) of the quotation by facsimile or electronic transmission or other means to Kdan Mobile Software Ltd (“we”,”us”, or”our”). Upon the effective date of this quotation, if You would like to postpone the activation date of the service license(s) or adjust the number of activated licenses within the licensed quantity due to Your internal considerations or other reasons not attributable to us, You shall notify us in writing or by email and obtain our consent. However, You understand and agree that under such circumstances, the Licensed Period stipulated in this Quotation shall remain unaffected. If there are any licenses that remain unactivated upon the expiration of the Licensed Period, You acknowledge and agree that we shall no longer activate such remaining licenses and shall not provide any refund or extension. You shall not assert any claim against us in this regard. The foregoing shall not affect Your payment obligations under this Quotation, and You shall still make full payment in accordance with the relevant provisions herein.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">If neither party raises any objections 30 days prior to the expiration of DottedSign licensing period, this quotation will be automatically renewed for one year under the same terms and conditions."</span></li><li class=\"c10 c35 li-bullet-0\"><span class=\"c4\">When You use DottedSign, You agree to comply with the “Terms of Use” (</span><span class=\"c20\"><a class=\"c18\" href=\"https://www.google.com/url?q=https://www.dottedsign.com/terms_of_service&sa=D&source=editors&ust=1761038891694699&usg=AOvVaw2BKhArsTy3IxMa8XOnI9OB\">https://www.dottedsign.com/terms_of_service</a></span><span class=\"c4\">) in our official website.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">Unless otherwise specified in this quotation, you have the right to terminate the quotation without any reason within the period, which starting from</span><span class=\"c4\">MM/DD/YYYY</span><span class=\"c4\"> to 30 days after the date of account activation by us (the “Termination Period”). Once You terminate the quotation within the Termination Period, You should provide notice in writing or electronically to us and You must pay equal to 20% of the total License Fee to us(the “Termination Fee”); however, if You terminate the quotation before the date of account activation, the Termination Fee would be deducted to equal to 15% of the total License Fee. After the Termination Period, You are not entitled to terminate the quotation.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">The quotation terminate from the date we receive Your termination notice (the” termination day”). We have the right to deduct the Termination fee, the subscription fee incurred by You in accessing our service before the termination date(Less than one day, shall be calculate as one day), and any other damages from the refund.</span><span class=\"c3\"> </span><span class=\"c4\">All refunds are not eligible for interest.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">Payment instructions: we must received full amount of the payment, You agree to pay all charges incurred by the transaction.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">Within thirty(30) days after You sign and return the quotation to us, You must pay the total amount to the payment link designated by us by credit card. Under the condition that "to pay the service fee within a specified period after the issuance of the invoice," if the payment is not made within the agreed period, we reserves the right to calculate late payment interest at an annual rate of 5%, temporarily suspend the provision of services, and, if deemed necessary, unilaterally terminate this quotation. Under the other condition that "to prepay the service fee before the issuance of the invoice," if the payment is not made within the agreed period, we reserves the right to withhold the account activation and unilaterally terminate this quotation.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">You hereby grant to us as well as the subsidiaries and affiliates of us( hereinafter collectively referred to as “Kdan Group Companies”) a royalty-free and perpetual license to use Your corporation mark (including trademarks, trade names, and logos ) in marketing, sales, and public relations material to identify You as a Kdan Group Companies’ partner.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">Both parties agree that this quotation shall be presented in electronic records. And this quotation could be signed using an electronic signature.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">In the event of any conflict or inconsistency between the terms and conditions of this quotation and the terms of contracts agreed by both parties someday, the provisions of those contracts shall prevail.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">During the performance of the quotation, both parties agree to enter into written supplementary agreement for any matter not covered by this quotation.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">If You do not sign and return the quotation within one month after we send it to You, the quotation will lapse automatically.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">This quotation shall be construed in accordance with the laws of the Republic of China (Taiwan).</span><span class=\"c3\"> </span><span class=\"c4\">The Parties agree that the conditions set forth hereunder shall be performed in the utmost spirit of goodwill and good faith. In the event of a dispute, the Parties agree that the Taiwan Taipei District Court shall be the court of first instance.</span></li><li class=\"c23 li-bullet-0\"><span class=\"c4\">We are committed to protecting the security of Your personal data and information. Any personal data provided by You, as well as any information obtained through the use of our website or services, is managed and protected in accordance with our Privacy Policy and Security Policy. You acknowledge and agree that any information You obtain about others through the use of our website or services will also be subject to the regulations of our Privacy Policy and Security Policy. For more details, please refer to the following link:</span></li></ol><p class=\"c22\"><span class=\"c4\">Privacy Policy:</span><span class=\"c20\"><a class=\"c18\" href=\"https://www.google.com/url?q=https://dottedsign.com/privacy_policy&sa=D&source=editors&ust=1761038891698471&usg=AOvVaw3yueAHxUUjHFVTB-jjr9Mm\">https://</a></span><span class=\"c20\"><a class=\"c18\" href=\"https://www.google.com/url?q=https://dottedsign.com/security&sa=D&source=editors&ust=1761038891698562&usg=AOvVaw0PY7wcXFZndAcyLXQaen4s\">dottedsign</a></span><span class=\"c20\"><a class=\"c18\" href=\"https://www.google.com/url?q=https://dottedsign.com/privacy_policy&sa=D&source=editors&ust=1761038891698637&usg=AOvVaw3eO0UVhEkKX3RTfHDKiwZ-\">.com/privacy_policy</a></span></p><p class=\"c22\"><span class=\"c4\">Security Policy:</span><span class=\"c20\"><a class=\"c18\" href=\"https://www.google.com/url?q=https://dottedsign.com/security&sa=D&source=editors&ust=1761038891698766&usg=AOvVaw3AJeUBTDq8i6TfxhVLKb6q\">https://dottedsign.com/security</a></span></p><ol class=\"c12 lst-kix_list_7-0\" start=\"15\"><li class=\"c23 li-bullet-0\"><span class=\"c4\">Both parties shall conduct their business activities based on the principles of integrity. Both parties agree that during the process of signing and fulfilling the purpose of this quotation, neither party nor its directors, managers, employees, agents, or persons with substantial control (collectively referred to as "Personnel") shall directly or indirectly offer, promise, give, request, or accept any improper money, gifts, loans, commissions, positions, services, advantages, sponsorships, rewards, bribes, travel fees, hospitality, or any form of benefit. If either party is aware that any Personnel may violate the principles of integrity, they shall immediately notify the other party in writing or by email, provide relevant evidence, and cooperate with the investigation. If either party or its Personnel violates this clause, the other party may unconditionally terminate this quotation at any time and request compensation for damages. The amount of damages may be deducted from any amounts payable under this quotation. If the quotation is terminated under this clause, the provisions of Clause 5 shall not apply.</span></li></ol><p class=\"c10 c21\"><span class=\"c4\"></span></p><p class=\"c10 c21\"><span class=\"c4\"></span></p><hr style=\"page-break-before:always;display:none\"><p class=\"c10 c42 c28\"><span class=\"c4\"></span></p><p class=\"c22\"><span class=\"c4\">The service license(s) granted under this quotation shall be effective from</span><span class=\"c4\">【DD/MM/YYYY】to【DD/MM/YYYY】</span><span class=\"c4\">(“Licensed Period”). By singing below, You acknowledge that You have read and agree to be bound by these terms and conditions.</span></p><p class=\"c10 c21\"><span class=\"c4\"></span></p><p class=\"c10 c21\"><span class=\"c4\"></span></p><p class=\"c10 c21\"><span class=\"c4\"></span></p><p class=\"c10 c21\"><span class=\"c4\"></span></p><table class=\"c24\"><tr class=\"c32\"><td class=\"c5\" colspan=\"1\" rowspan=\"1\"><p class=\"c10\"><span class=\"c4\"> DATE:</span><span class=\"c4\">________/_________/_________</span></p></td></tr><tr class=\"c32\"><td class=\"c25\" colspan=\"1\" rowspan=\"1\"><p class=\"c10 c31\"><span class=\"c4\">Authorized Signatory: <span class=\"n8n-input\">n8n-person_name:</span>{{ $('Clean & Map Data').item.json.person_details.name }}</span></p><p class=\"c10 c31\"><span class=\"c4\">Title: <span class=\"n8n-input\">n8n-job title:</span>{{ $('Clean & Map Data').item.json.person_details?.job_title || '' }}</span></p><p class=\"c10 c31\"><span class=\"c4\">GUI No. [ ]</span></p><p class=\"c10 c31\"><span class=\"c4\">Address: <span class=\"n8n-input\">n8n-address:</span>{{ $('Clean & Map Data').item.json.org_details.address || '' }}</span></p><p class=\"c10 c31\"><span class=\"c4\">Contact Person: <span class=\"n8n-input\">n8n-person_name:</span>{{ $('Clean & Map Data').item.json.person_details.name || '' }}</span></p><p class=\"c10 c45\"><span class=\"c4\">Tel: <span class=\"n8n-input\">n8n-tel:</span>{{ $('Clean & Map Data').item.json.person_details.phone[0].value || ''}}</span></p></td></tr></table><p class=\"c10 c21\"><span class=\"c4\"></span></p></body></html>"
},
"typeVersion": 1.2
},
{
"id": "1c66eeae-b758-4500-8324-d2a6f15f1003",
"name": "Gotenberg 转 PDF",
"type": "n8n-nodes-base.httpRequest",
"position": [
2672,
176
],
"parameters": {
"url": "http://gotenberggotenberg.yourhost/forms/chromium/convert/html",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "files",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "0c56eade-f38e-48f8-87b7-e4f8386803df",
"name": "重命名 PDF",
"type": "n8n-nodes-base.code",
"position": [
2896,
176
],
"parameters": {
"jsCode": "$input.item.binary.data.fileName = 'result.pdf'\n return $input.item;"
},
"typeVersion": 2
},
{
"id": "b7da5d6e-6a44-4b4c-b9e2-bb3aeed78de9",
"name": "获取 Pipedrive 自定义字段",
"type": "n8n-nodes-base.httpRequest",
"position": [
432,
-304
],
"parameters": {
"url": "https://kdanmobile.pipedrive.com/api/v1/dealFields",
"options": {},
"jsonHeaders": "{\n \"Content-Type\": \"application/json\"\n}",
"sendHeaders": true,
"authentication": "genericCredentialType",
"specifyHeaders": "json",
"genericAuthType": "httpQueryAuth"
},
"credentials": {
"httpQueryAuth": {
"id": "fQptBLiBdOmeIEzd",
"name": "Pipedrive API token"
}
},
"typeVersion": 4.2
},
{
"id": "9fc8335e-a975-4326-a416-345669ca90d5",
"name": "拆分自定义字段",
"type": "n8n-nodes-base.splitOut",
"position": [
656,
-304
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "e1e9f24e-9093-45ce-a928-bbd73d43ad82",
"name": "如果阶段为'报价'",
"type": "n8n-nodes-base.if",
"position": [
208,
176
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f6710bca-9bff-4c8d-8cea-ab9b8a517437",
"operator": {
"type": "number",
"operation": "equals"
},
"leftValue": "={{ $json.data.stage_id }}",
"rightValue": 7
},
{
"id": "6a9b26ee-fd35-441f-9826-665fe8373992",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.previous.stage_id }}",
"rightValue": 7
}
]
}
},
"typeVersion": 2.2
},
{
"id": "5d15907b-19f3-4d45-9320-b5404685c541",
"name": "获取 DottedSign 访问令牌",
"type": "n8n-nodes-base.httpRequest",
"position": [
3344,
272
],
"parameters": {
"url": "https://api.sandbox.dottedsign.com/v1/oauth/token",
"method": "POST",
"options": {},
"sendBody": true,
"sendQuery": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "grant_type",
"value": "client_credentials"
},
{
"name": "client_id"
},
{
"name": "client_secret"
},
{
"name": "code"
}
]
},
"queryParameters": {
"parameters": [
{}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "content-type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
}
],
"active": false,
"pinData": {
"Pipedrive Trigger": [
{
"json": {
"data": {
"id": 1102,
"title": "Deal 1",
"value": 1950,
"org_id": 1214,
"origin": "ManuallyCreated",
"status": "open",
"channel": null,
"add_time": "2025-10-20T06:21:54Z",
"currency": "TWD",
"owner_id": 5674782,
"stage_id": 7,
"won_time": null,
"label_ids": [],
"lost_time": null,
"origin_id": null,
"person_id": 1222,
"channel_id": null,
"close_time": null,
"visible_to": "3",
"is_archived": false,
"lost_reason": null,
"pipeline_id": 1,
"probability": null,
"update_time": "2025-10-21T02:29:56Z",
"archive_time": null,
"custom_fields": {
"085376a710a76b86622293222b048cc9c8b5809f": null,
"10b0419f6153971fb927c1bc1e33004d37248377": null,
"1631567a12a8c9848f7a38039ea59058711c9c81": {
"id": 21,
"type": "enum"
},
"36444d22ff7c91a05ad6b13002169d7552bbce68": null,
"3a1c7b49c503c0a07cd4bbc1cce0832259b1848d": {
"type": "double",
"value": 20
},
"3ecef3e85ac838325cacbbce9a6b3543101bb638": null,
"4957db5a993971ca8ebdc5a18a4bfbdb95c631bf": {
"type": "set",
"values": [
{
"id": 32
},
{
"id": 35
},
{
"id": 36
},
{
"id": 37
},
{
"id": 57
}
]
},
"503bc5554fbcf7456ab01388ee8d922d72652b74": null,
"631dce0ea3082a5f163572a006f5c5f0f2039b64": {
"id": 42,
"type": "enum"
},
"85f55b6fcd3367a917675f8d4a33bb27b9d8213c": null,
"a1c0492d8e2c34f14bc26e19c1ec9147d195130a": null,
"ada6959920cefc4cea5439642d74199a7dc9ddee": {
"id": 14,
"type": "enum"
},
"e0a4944818826f6ffd2ee931b698d02ff3b755bf": {
"type": "set",
"values": [
{
"id": 31
}
]
},
"e1047f3eaffd194e52ae51ff4a9a45247821b2d6": null,
"e24d56403c4134cb88b116145de99745e3488c25": null,
"ee54481d542236715af422ce8517559d60c814b5": {
"id": 47,
"type": "enum"
},
"f1a31a7081c7e11be09f04ca262bf10d73970942": null
},
"first_won_time": null,
"creator_user_id": 5674782,
"stage_change_time": "2025-10-21T02:29:56Z",
"expected_close_date": null
},
"meta": {
"id": "3758a221-51e4-4d90-8a75-341ab1cbf550",
"host": "kdanmobilesoftwareltd-sandbox.pipedrive.com",
"type": "general",
"action": "change",
"entity": "deal",
"attempt": 1,
"user_id": "5674782",
"version": "2.0",
"entity_id": "1102",
"timestamp": "2025-10-21T02:29:56.276Z",
"company_id": "7827175",
"webhook_id": "2104704",
"is_bulk_edit": false,
"change_source": "app",
"correlation_id": "5d8eaa57-65a7-4a11-8e7f-843500fbd7c4",
"webhook_owner_id": "23549028",
"permitted_user_ids": [
"5674782",
"11584359",
"11775123",
"16932806",
"22135506",
"23549028"
]
},
"previous": {
"stage_id": 6
}
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "4e0adb96-9b29-428b-a0e4-4d45a1b430f3",
"connections": {
"Aggregate": {
"main": [
[
{
"node": "field_mappings",
"type": "main",
"index": 0
}
]
]
},
"Aggregate1": {
"main": [
[
{
"node": "deal_products",
"type": "main",
"index": 0
}
]
]
},
"Get a deal": {
"main": [
[
{
"node": "deal_details",
"type": "main",
"index": 0
}
]
]
},
"MergeForDS": {
"main": [
[
{
"node": "DottedSign-CreateTask",
"type": "main",
"index": 0
}
]
]
},
"Rename PDF": {
"main": [
[
{
"node": "Create a file",
"type": "main",
"index": 0
},
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
},
"org_details": {
"main": [
[
{
"node": "MergeAllData",
"type": "main",
"index": 4
}
]
]
},
"Get a person": {
"main": [
[
{
"node": "person_details",
"type": "main",
"index": 0
}
]
]
},
"MergeAllData": {
"main": [
[
{
"node": "Clean & Map Data",
"type": "main",
"index": 0
}
]
]
},
"deal_details": {
"main": [
[
{
"node": "MergeAllData",
"type": "main",
"index": 1
}
]
]
},
"Create a file": {
"main": [
[
{
"node": "Get DottedSign Access Token",
"type": "main",
"index": 0
}
]
]
},
"deal_products": {
"main": [
[
{
"node": "MergeAllData",
"type": "main",
"index": 2
}
]
]
},
"editFlag=True": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"field_mappings": {
"main": [
[
{
"node": "MergeAllData",
"type": "main",
"index": 0
}
]
]
},
"person_details": {
"main": [
[
{
"node": "MergeAllData",
"type": "main",
"index": 3
}
]
]
},
"setProductRows": {
"main": [
[
{
"node": "Generate Quote HTML",
"type": "main",
"index": 0
}
]
]
},
"Convert to HTML": {
"main": [
[
{
"node": "Gotenberg to PDF",
"type": "main",
"index": 0
}
]
]
},
"Clean & Map Data": {
"main": [
[
{
"node": "setProductRows",
"type": "main",
"index": 0
}
]
]
},
"Gotenberg to PDF": {
"main": [
[
{
"node": "Rename PDF",
"type": "main",
"index": 0
}
]
]
},
"activity_details": {
"main": [
[
{
"node": "MergeAllData",
"type": "main",
"index": 5
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "MergeForDS",
"type": "main",
"index": 0
}
]
]
},
"Pipedrive Trigger": {
"main": [
[
{
"node": "If Stage is 'Quotation'",
"type": "main",
"index": 0
}
]
]
},
"Create an activity": {
"main": [
[
{
"node": "activity_details",
"type": "main",
"index": 0
}
]
]
},
"Generate Quote HTML": {
"main": [
[
{
"node": "Convert to HTML",
"type": "main",
"index": 0
}
]
]
},
"Get an organization": {
"main": [
[
{
"node": "org_details",
"type": "main",
"index": 0
}
]
]
},
"DottedSign-CreateTask": {
"main": [
[]
]
},
"Get many deal products": {
"main": [
[
{
"node": "Aggregate1",
"type": "main",
"index": 0
}
]
]
},
"If Stage is 'Quotation'": {
"main": [
[
{
"node": "Get Pipedrive Custom Fields",
"type": "main",
"index": 0
},
{
"node": "Get a deal",
"type": "main",
"index": 0
},
{
"node": "Get many deal products",
"type": "main",
"index": 0
},
{
"node": "Get a person",
"type": "main",
"index": 0
},
{
"node": "Get an organization",
"type": "main",
"index": 0
},
{
"node": "Create an activity",
"type": "main",
"index": 0
}
]
]
},
"Split Out Custom Fields": {
"main": [
[
{
"node": "editFlag=True",
"type": "main",
"index": 0
}
]
]
},
"Get DottedSign Access Token": {
"main": [
[
{
"node": "MergeForDS",
"type": "main",
"index": 1
}
]
]
},
"Get Pipedrive Custom Fields": {
"main": [
[
{
"node": "Split Out Custom Fields",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 客户关系管理
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
连接Pipedrive交易结果至GA4和Google Ads
通过Measurement Protocol连接Pipedrive交易结果至GA4和Google Ads
If
Set
Code
+6
17 节点Artur
客户关系管理
WordPress博客自动化专业版(深度研究)v2.1市场
使用GPT-4o、Perplexity AI和多语言支持自动化SEO优化的博客创建
If
Set
Xml
+27
125 节点Daniel Ng
内容创作
内容聚合
使用Gemini AI从网站文章自动化社交媒体帖子发布到LinkedIn和X/Twitter
If
Set
Xml
+16
34 节点Vadim
内容创作
使用正则表达式和 AI 发现隐藏的网站 API 端点
使用正则表达式和人工智能发现隐藏的网站API端点
If
Set
Html
+19
58 节点Yulia
工程
GitHub 同步仪表板 - V2
具有提交历史和回滚功能的 GitHub 工作流版本控制仪表板
If
N8n
Set
+20
94 节点Eduard
开发运维
工作流信息
难度等级
高级
节点数量35
分类1
节点类型14
作者
Kdan
@kdanKDAN is the best partner for businesses, offering eSignature, PDF editor, data analytics, and integrating KDAN AI to maximize your business value.
外部链接
在 n8n.io 查看 →
分享此工作流