跳到主要内容

邮件合并

本指南涵盖的内容

本指南将引导您完成合并操作。 经典 Word 邮件合并模板n8n 使用 simple_mail_merge_template.docxsample_mail_merge_data.json该模板使用 Word 文档。 合并域 占位符(非) <<[字段]>> 或胡子 {{场地}}数据是 JSON 大批 每个收件人一个对象。对于“生成文档(单个)”,请使用 一行 在数组中。输出可以是 PDF 或者 Word

相关博客文章
目前尚无关于此功能的博客文章——敬请期待。
在此期间,您可以浏览 PDF4me 博客,查看适用于各平台的教程和工作流程。
访问博客

开始之前

Word邮件合并字段
样本 simple_mail_merge_template.docx 它是使用 Word 邮件合并(插入合并域)功能构建的。字段名称是: 性别, 和 成员它们必须匹配 JSON 按键完全正确。
JSON 数组数据
使用 sample_mail_merge_data.json (受到推崇的), 测试.xml, 或者 测试.csv邮件合并数据是 对象数组对于单个文档,粘贴一个包含单个对象的数组。
PDF4me 证书 n8n
创建一个 PDF4me 证书 n8n 并粘贴你的 API 密钥。同一个密钥适用于所有设备。 PDF4me 实例中的节点。

:::注意:邮件合并与 PDF4me Word 模板 邮件合并 适用于使用经典邮件合并域 (MERGEFIELD) 创建的 Word 文档。 PDF4me Word模板 用途 <<[fieldName]>> 常规的 LINQ 语法 .docx选择与您的模板构建方式相匹配的类型。例如,对于多个收件人,请填写一份模板。 API 打电话,使用 生成文档(多个) 反而。 :::

示例文件包

请下载以下全部四个文件。一个 Word 邮件合并模板和三个等效的数据格式文件。

示例文件包含哪些内容

合并字段 simple_mail_merge_template.docx

这个例子很简单 会员信 包含四个经典的 Word 合并字段:

Merge field nameTypical label in templateSample value (sample_mail_merge_data.json)
firstnameGiven nameJohn
lastnameFamily nameAdams
genderGenderFemale
memberMembership tierBasic

提示:如何检查合并域名称

在 Microsoft Word 中,按 Alt+F9 切换字段代码。邮件合并字段显示为 { MERGEFIELD firstname } 样式代码。名称后 合并域 必须与您的 JSON 钥匙。 :::

所有数据文件中的字段映射

Merge fieldJSON key (sample_mail_merge_data.json)XML element (test.xml)CSV column (test.csv)Sample value
firstnamefirstnamefirstnamefirstnameJohn
lastnamelastnamelastnamelastnameAdams
gendergendergendergenderFemale
membermembermembermemberBasic

与 PDF4me Word 模板不同,它没有 <<[字段]>> 标签。与此不同 HTML没有胡子语法。引擎绑定 JSON Word MERGEFIELD 名称的键 一对一。

工作流程概览

Manual Trigger → Read Binary File (simple_mail_merge_template.docx) → PDF4me Generate Document (Single) → (optional) Write Binary File
n8n 节点目的
1手动扳机按需启动工作流程
2读取二进制文件负载 simple_mail_merge_template.docx 进入二元属性 data
3PDF4me → 生成文档(单个)合并模板 + JSON 数组,输出 PDF 或者 Word
4写入二进制文件 或者 发送电子邮件 (选修的)保存或发送 generated_document_output.pdf
n8n PDF4me“生成文档(单个)”节点中的“模板文件类型”下拉菜单显示了 Word、HTML、PDF 表单和 Google 文档选项中的邮件合并选项。

模板文件类型邮件合并。 选择 PDF 或者 Word 为了 输出类型


步骤 1:下载并放置示例文件

  1. 下载 simple_mail_merge_template.docxsample_mail_merge_data.json示例文件包 多于。
  2. 将模板保存到某个位置 n8n 可以读取它(自托管的本地路径,或生产触发器的云存储)。
  3. (可选)下载 test.xml 或者 test.csv 测试其他数据类型。

步骤 2:创建 n8n 工作流程

  1. n8n创建一个新的工作流程。
  2. 添加一个 手动扳机 节点。
  3. 添加一个 读取二进制文件 触发器之后的节点。
  4. 添加 PDF4me → 生成文档(单个) 读取二进制文件之后。
  5. 连接您的 PDF4me 凭证

注意:此处的 HTML 代码无效 模板文件输入类型: HTML 代码 仅在以下情况下有效 模板文件类型HTML对于邮件合并,请使用 二进制数据Base64 细绳, 或者 URL.

:::


步骤 3:加载 Word 模板(Read Binary File

配置 读取二进制文件 节点:

场地价值
文件路径下载文件的完整路径 simple_mail_merge_template.docx
物业名称data (默认值;用作 模板二进制属性PDF4me

执行此节点一次,并确认输出项显示为二进制。 data 文件名 simple_mail_merge_template.docx


步骤 4:配置 PDF4me 生成文档(单个)

核心设置

场地价值笔记
用于连接的凭证你的 PDF4me 凭证得到 API 钥匙
资源Generate
生成操作生成文档(单个)
模板文件类型邮件合并经典 Word 合并域模板
输出类型PDF 或者 WordPDF 供分享; Word 如果收件人需要编辑合并后的文档

模板输入(来自读取二进制文件)

场地价值
模板文件输入类型二进制数据
模板二进制属性data
模板文件名simple_mail_merge_template.docx

文档数据(粘贴来自以下位置的 JSON 数组) sample_mail_merge_data.json

场地价值
文档数据输入类型文本
文档数据类型JSON
文档数据文本粘贴全部内容 sample_mail_merge_data.json (见下方方框)
[
{
"firstname": "John",
"lastname": "Adams",
"gender": "Female",
"member": "Basic"
}
]

重要提示:JSON 必须为数组

邮件合并数据是一个数组 JSON 大批即使只有一个收件人,数组中的一个对象也会使用“生成文档(单个)”功能生成一个合并文档。

:::

输出选项

场地价值
保持 PDF 可编辑当输出类型为“关闭”(默认)时 PDF
二进制数据输出名称data (默认)

步骤 5:执行并验证输出

  1. 点击 执行工作流程
  2. 打开 PDF4me 节点输出。 二进制开放属性 datagenerated_document_output.pdf 或者 .docx)。
  3. 确认所有四个合并字段均已填写:
    • → 约翰
    • → 亚当斯
    • 性别 → 女性
    • 成员 → 基本

如果某个字段为空,请比较您的 JSON 在 Word 模板中使用 MERGEFIELD 名称键(在 Word 中按 Alt+F9)。


步骤 6:保存或发送输出(可选)

写入二进制文件:

场地价值
文件名mail-merge-output.pdf
数据属性名称data
输出路径在您的目标文件夹中 n8n 主持人

发送电子邮件: 附加二进制文件 dataPDF4me 作为 PDF 或者 Word 依恋。


替代数据格式

选项A: JSON 文件为二进制文件(sample_mail_merge_data.json

  1. 添加 读取二进制文件 为了 sample_mail_merge_data.json (使用 合并 如果模板和数据共享工作流项,则为节点)。
  2. 文档数据输入类型二进制数据文档数据类型JSON文档二进制属性 添加到您的数据字段中, 文档数据文件名sample_mail_merge_data.json

:::注意:二进制属性名称冲突

如果模板和数据都使用属性 data一个会覆盖另一个。请使用不同的名称(例如: templatemergeData或者合并来自两个“读取二进制文件”节点的条目。

:::

选项B: XMLtest.xml

文档数据类型XML 并粘贴:

<?xml version="1.0" encoding="UTF-8"?>
<Person>
<firstname>John</firstname>
<lastname>Adams</lastname>
<gender>Female</gender>
<member>Basic</member>
</Person>

元素名称与合并字段名称和 JSON 键相匹配。

选项C: CSVtest.csv

文档数据类型CSV 并粘贴(标题行 + 一行数据):

firstname,lastname,gender,member
"John","Adams","Female","Basic"

列标题与合并字段名称直接匹配。


备选模板输入: URL

主持人 simple_mail_merge_template.docx 在公共场合 HTTPS URL然后设置:

场地价值
模板文件输入类型URL
模板文件 URL公开链接 simple_mail_merge_template.docx
模板文件名simple_mail_merge_template.docx

不需要“读取二进制文件”节点。数据仍然可以粘贴为 文档数据文本 或从 URL


生产工作流程模式

生产环境中运行邮件合并的常用方法Once the sample test works, replace the Manual Trigger with these patterns.
Google 表格行到字母
  1. 工作表在新行出现时触发。
  2. 代码 或者 节点将行包裹在一个 JSON 大批: [{“名”: ”...”, ...}]
  3. PDF4me 邮件合并(固定) simple_mail_merge_template.docx
  4. 通过电子邮件发送合并后的邮件 PDF 致收件人。
Webhook注册表单
  1. Webhook 接收表单有效负载。
  2. 将主体字段映射到合并键(, ETC。)。
  3. 打造一款单品 JSON 用于存储文档数据文本的数组。
  4. 存储或通过电子邮件发送输出结果 PDF
批量合并(多个收件人)
  1. 出口联系人 JSON 数组(每人一个对象)。
  2. 切换到 生成文档(多个)PDF 每行。
  3. 如果每次运行只需要一个合并文件,请保留“生成文档(单个)”选项。

常见问题解答

How is Mail Merge different from PDF4me Word Template?+
Mail Merge uses classic Word MERGEFIELD placeholders created in Word mail merge. PDF4me Word Template uses <<[fieldName]>> LINQ syntax in a regular .docx. Pick the type that matches how your template was authored. Data for Mail Merge is typically a JSON array.
Why must JSON be an array?+
Mail merge is designed for one or more recipient rows. Generate Document (Single) uses the first row when you pass one object in the array. Generate Documents (Multiple) processes every row and returns multiple output files.
Why is a merge field blank?+
JSON keys must match MERGEFIELD names exactly, including case. firstname works; FirstName or first_name usually does not. Toggle field codes in Word (Alt+F9) to read the internal name.
PDF or Word output?+
Choose PDF for emailing, archiving, or printing. Choose Word when the recipient needs to edit the merged document after generation. Both work with the same template and JSON array.
JSON vs XML vs CSV: which should I use?+
JSON arrays are the most natural fit for mail merge in n8n. XML and CSV in the sample pack carry the same four values for a single recipient. All formats map one value per merge field name.

相关指南