跳到主要内容

在Zapier中使用Airtable生成瑞士二维码账单:筛选行、生成账单、向债务人发送电子邮件

· 阅读需 25 分钟
SEO and Content Writer

Filter by Zapier功能决定了哪些Airtable行会生成付款单。将其置于New Record触发器和PDF4me之间,只有标记为“就绪”的行才会生成瑞士二维码账单,然后将账单信息写回记录并通过电子邮件发送给债务人。

监视表格的 Zap 会在每次添加新行时触发。对于大多数自动化流程来说,这纯粹是浪费资源。但对于向客户发送付款单的流程来说,这却能避免因有人在触发器轮询时仍在输入数据而导致同一份账单发送三次。筛选步骤才是解决之道,值得深入理解,而不是简单地复制粘贴。

Zap概览
1. New Record
Airtable每 2 分钟轮询一次,会检测到添加到表格中的每一行数据。
2. Filter conditions
Filter by Zapier。仅当Status为New时继续。
3. Create SwissQR Bill
PDF4me生成债权人、债务人和QR-IBAN的凭证。
4. Update Record
Airtable会写入文件、状态以及指向同一行的链接。
5. Send Email
Gmail会将邮件发送到该行所示的地址。
简短版

有人在Airtable中填写了一行数据,并将Status设置为New。Zap 会获取到这条记录,过滤器会检查该字段, PDF4me会生成瑞士二维码账单,然后将图片添加到记录中,同时通过电子邮件将副本发送给债务人。在同一次运行中将状态设置为Generated可以防止 Zap 再次获取到该记录。整个过程共五个步骤,其中最关键的是过滤器。

基于原因的问答​

Why does this need a Filter step at all?因为Zapier的Airtable触发器本身没有设置任何条件。它会将每条新记录都交给你处理,剩下的决定权在你。无论是只输入了一半的记录、重复的记录,还是用户为了实验而创建的记录,所有这些记录都会执行到步骤 3,除非受到某种限制,而步骤 5 会向客户发送电子邮件。

Why filter on Status rather than checking the fields are filled in?因为Status是人为决定的,而其他列只是数据。即使你检查QR-IBAN是否为空且金额大于零,你仍然无法确定该行是否已完成。使用一个专门表示“我已完成此操作”的字段,既更简单,也更能明确责任人。

Why clean the IBAN in Airtable instead of in the Zap?因为Zapier字段中没有表达式语言。Make Make你将值包装在表达式中。replace()在您使用它的地方; Zapier则不然。因此,清理工作提前了一步,进入Airtable公式字段,Zap 会映射这些字段。这样做的一个意外好处是:清理后的值会显示在表格中,因此您可以在 Zap 发送之前看到它将发送的内容。

Why does step 4 warn about a loop?因为它会写入触发 Zap 的表,所以理论上它自身的更新可能会再次唤醒 Zap。但在这个版本中不会,因为更新会将Status设置为Generated,而过滤器只允许New通过。这一点值得理解,而不是忽略:过滤器不仅仅是为了整洁,它更是打破循环的关键。


您将获得​

输入:一条包含债权人、债务人、金额、 QR-IBAN和参考编号的Airtable记录, Status设置为New。输出:该记录对应的瑞士二维码账单、标记为“已Generated ”并带有链接的记录行,以及发送给债务人的电子邮件。

Airtable base PDF4me Live Automations with the Swiss QR Requests table open, showing rows INV-1001 to INV-1004 and INV-2001 to INV-2003 with CreditorName Muster AG at Bahnhofstrasse 1, 8001 Zuerich CH, a QRIBAN beginning CH4431999123, DebtorName Test Kunde AG at Seestrasse 10 in 8002 Zuerich, Amount 100.50 CHF, a Status column where INV-2002 reads New and the rest read Generated, and two formula columns at the far right named QRIBANClean and AmountText

QRIBANClean注意右侧的两列。QRIBANClean 和AmountText是公式字段,它们才是 Zap 实际映射的内容。

The generated Swiss QR bill for INV-2003, showing a Receipt half and a Payment part either side of a scissor line, both listing the account payable to Muster AG at Bahnhofstrasse 1, 8001 Zuerich, the structured reference, additional information Rechnung INV-2003, payable by Test Kunde AG at Seestrasse 10, 8002 Zuerich, and currency CHF with amount 100.50

收据、剪裁线、付款区。布局按标准固定。

Gmail showing the received message with subject Your Swiss QR bill INV-2003, a body reading Hello Test Kunde AG, Please find your Swiss QR bill with the INV-2003 attached, Amount 100.50 CHF, and one attachment previewing the QR bill

金额显示为 100.50,而不是 100.5,因为主体也映射了公式字段。


你需要什么​

  • A Zapier account一个允许多步骤 Zap 的方案。Filter by Zapier虽然是内置的,但它算作一个步骤。
  • PDF4me API密钥. 获取您的 API 密钥.
  • An Airtable base捕获的基础是PDF4me Live Automations其中包含一个名为Swiss QR Requests表:债权人块、债务人块、 QRIBAN、参考、金额、货币、消息、电子邮件、 Status字段、 OutputLink字段和名为Document附件字段。
  • Two Airtable formula fieldsQRIBANClean会去除QR-IBAN中的空格, AmountText会将金额格式化为两位小数。请参阅Airtable formula reference如果你以前没写过的话。
  • A Gmail account已连接到Zapier,并且a QR-IBAN来自您的银行。二维码参考号需要的是QR-IBAN,而不是普通的IBAN。

Zap概览​

  1. 在Swiss QR Requests中每出现一个新行,就会触发New Record (Airtable) 事件。
  2. Filter conditions ( Filter by Zapier)仅在Status恰好为New时继续。
  3. Create SwissQR Bill ( PDF4me)将账单渲染为PNG。
  4. Update Record ( Airtable)会写入文件、状态以及指向该行的链接。
  5. Send Email ( Gmail)将通知单发送给债务人。

Zap 完整概览​

Zapier run detail showing version 1 and a successful run on Oct 23 2026 at 11:31:53 pm, with five steps each marked with a green tick: Airtable New Record on a 2 min schedule reporting Found 1 new Record, Filter by Zapier Filter conditions reporting the run passed the rules, PDF4me Create SwissQR Bill reporting Sent 1 new SwissQr Bill, Airtable Update Record reporting Sent 1 new Record, and Gmail Send Email reporting Sent 1 new Message

一次成功的运行。位置 2 的过滤器确保了后续三个步骤的安全。


步骤 1:如何从新的Airtable行触发 Zap?​

目前流程:尚未启动,这是触发点。

  1. 创建一个 Zap,然后选择Airtable > New Record。
  2. 连接您的帐户,然后选择Base PDF4me Live Automations和Table Swiss QR Requests。
  3. Zapier。Zapier 报告在Airtable中找到 1 条新记录,并且所有列都可用于后续步骤。

捕获的 Zap 上的轮询徽章显示为2 分钟,这是计划中的设置,而不是您在此处配置的任何内容。

Tip.New Record指的是新增记录,而不是已更改记录。如果有人创建了一行数据,十分钟后又填写了数据,Zap 已经将其视为空行,过滤器也已经拒绝了该记录,因此当他们填写完毕时,不会触发任何事件。如果您的团队采用这种工作方式,请改为在记录更新事件上触发,并保持过滤器不变。


步骤 2:如何停止对未准备就绪的行运行 Zap?​

目前为止的流程: Airtable触发器。

这是 Zap 其余部分所依赖的步骤。

  1. Filter by Zapier > Only continue if。
  2. 制定一条规则:
    • 字段: 1. Status
    • 条件:(文本) Exactly matches
    • 价值: New
  3. 测试一下。Zapier Zapier告诉你它所保存的记录是否会继续,并指出做出决定的字段。

Filter conditions配置​

Filter by Zapier step 2 Configure and test panel showing the rule Only continue if 1. Status Text Exactly matches New, and below it a yellow result box reading Your zap would not have continued, with a test record created 2026-10-23 19:46:35 and Items that didn't match listing Status: Generated

这是过滤器正常工作的状态,并非故障。测试记录已经Generated,因此 Zap 正确地拒绝为其签发第二张单据。

那个黄色框值得仔细阅读,因为它是屏幕上最有用的信息。 Zapier您的 Zap 无法继续”并非错误。Zapier 已使用最新记录测试了该规则,该记录的Status为Generated (来自之前的运行),因此过滤器正常工作。不匹配的项目会列出导致 Zap 停止运行的确切字段和值。

Tip.Exactly matches区分大小写和空格。new和New 如果行尾有空格,则所有行的筛选都会失败,且不会发出任何提示。如果筛选始终无法通过,请在更改任何其他内容之前,将黄色框中的值与您的规则逐个字符进行比较。此处使用单选字段比自由文本更安全,正是因为这样可以避免输入错误。


步骤 3:如何将一行转换成瑞士 QR 钞票?​

目前流程:触发器和过滤器。

从这里开始的所有内容都只针对已通过的行运行。

  1. 添加PDF4me > Create SwissQR Bill。
  2. 设置影响输出结果的字段:
    • Format Type: PNG
    • 货币: CHF
    • Reference Type: QRR
    • Language Type: English
    • Separator Line: Line with Scissor
    • Creditor Address Type和Ultimate Debtor Address Type: S
  3. 根据触发器映射支付数据:
    • Amount: Amount Text公式字段,而非原始金额。
    • IBAN: QRIBAN Clean公式字段
    • 从债权人列中提取Creditor Name、 Creditor Street、 Creditor City和Creditor Postal Code,并将Creditor Country设置为CH-Switzerland
    • 债务人列中的“最终债务人”字段,模式相同
    • 来自该行的Reference和Unstructured Message

Create SwissQR Bill配置​

PDF4me Create SwissQR Bill step showing Format Type PNG, Currency CHF, Reference Type QRR, Language Type English, Separator Line with Scissor, Amount mapped to the Amount Text field reading 100.50, IBAN mapped to QRIBAN Clean reading CH4431999123000889012, Creditor Address Type S, Creditor Name Muster AG, Creditor Street Bahnhofstrasse 1, Creditor City Zuerich, Creditor Country CH-Switzerland, Creditor Postal Code 8001, the matching Ultimate Debtor fields for Test Kunde AG at Seestrasse 10 in 8002 Zuerich, a structured Reference and an Unstructured Message reading Rechnung INV-2003

金额和 IBAN 都来自公式字段。其他所有数据都直接来自其所属列。

每个设置决定什么​

场地这里的价值它控制着什么
Format TypePNG此处显示的是图片而非 PDF 文件,图片会在Airtable附件单元格中以内联方式预览。
Reference TypeQRR结构化二维码参考,需要QR-IBAN。其他选择包括SCOR和NON
Separator LineLine with Scissor在收据和付款部分之间画出切割线
Creditor Address TypeS结构化地址:街道、邮政编码和城镇分别位于不同的字段中
数量AmountText公式字段已保留两位小数
国际银行账户QRIBANClean公式字段已去除空格

Tip.Reference Type和账户必须一致。QRR 需要一个QR-IBAN和一个 27 位数的参考编号。如果将其指向普通的 IBAN,您会得到一张看起来正确的凭证,但却无法扫描,这是最糟糕的错误QRR因为 Zap 系统中没有任何报告显示问题。


步骤 4:如何将纸条写回记录?​

目前流程:所有步骤都已完成PDF4me步骤。

  1. 添加Airtable > Update Record。
  2. 配置:
    • Base和Table:同步骤 1
    • Record:触发器中的ID
    • Append attachments: False
    • Document:步骤 3 中的File Url
    • Status: Generated
    • OutputLink:记录 URL(如果您保留了记录)。
  3. 其他字段留空。

Update Record配置​

Airtable Update Record step test panel listing the data being sent: appendAttachments false, the application and table identifiers, the row id, a Document field set to a long api.pdf4me.com GetDocument URL, a Status field set to Generated and an OutputLink field set to an airtable.com record URL, followed by a long list of empty optional fields including Title, the creditor and debtor columns, QRIBANClean and AmountText

填写了三个字段,其余字段均为空。这份清单是您启动 Zap 之前的安全检查项目。

这里有两个地方与其他地方的构建方式不同。附件是一个URL,而不是一个文件: Zapier会将PDF4me链接传递Airtable, Airtable会自动获取该链接,因此无需单独的上传步骤。此外, Append attachments ”设置为False会替换Document字段中的所有内容,因此重新运行一行会覆盖原有的记录,而不是收集副本。

Zapier will warn you about a loop here, and it is right to.此步骤会将数据写入 Zap 触发的表,因此理论上,它自身的更新可能会再次唤醒 Zap。但实际上并没有,因为更新会将Status设置为Generated,而步骤 2 中的筛选器只允许New通过。如果您要放宽此筛选器,请务必先重新阅读此步骤。


第五步:如何将催款单发送给债务人?​

目前流程:所有操作均已完成记录更新。

  1. 添加Gmail > Send Email。
  2. 配置:
    • To:触发器中的Email列
    • Subject: Your Swiss QR bill 及Title
    • Body type: Html
    • Body:简短的问候语,包括债务人姓名、账单名称和金额。
    • Attachments:步骤 3 中的File Url

Send Email配置​

Gmail Send Email step showing the To field holding a mapped Email value from the Airtable trigger

收款人按顺序领取,因此每个债务人都会收到自己的收据,没有人维护邮寄名单。

请在邮件正文中使用Amount Text而不是直接使用金额列中的原始金额。这样做无需任何成本,而且可以确保邮件中的金额与收据上的金额一致,这种金额差异客户很容易注意到,而您却可能忽略。


运行 Zap 并验证​

  1. Publish Zap。
  2. 向Swiss QR Requests中添加一行,其中包含债权人、债务人、金额、 QR-IBAN和Status New。
  3. 等待投票结果,然后打开 Zap 运行。所有五个步骤都应该显示为绿色。
  4. 打开行: Document应包含该凭证, Status应显示Generated。
  5. 打开收据,核对收据和付款部分是否显示相同的账户、参考编号和金额。
  6. 查看债务人的收件箱。
  7. 现在添加一行状态为“ Generated Status,并确认 Zap 在步骤 2 停止。这是大多数人会跳过的测试,但它却是验证过滤器有效性的关键。

在捕获的运行中,Zap 版本 1 于 2026 年 10 月 23 日晚上 11:31:53 成功完成,生成了一张INV-2003的收款单,支付给Zuerich的Muster AG金额为 100.50 CHF。

What did you actually build?一款带有安全机制的付款单生成器。数据保留在数据库中,由您的团队进行编辑;生成的付款单会附加到生成它的记录上;只需一个字段即可决定最终开具的付款单类型。无需打开银行门户网站,也不会出现重复发送同一张账单的情况。


无需重建即可添加的常见变体​

添加第二个条件
该筛选器接受多个规则。要求金额大于零且Status New可以捕获用户在完成操作前保存的行。
不仅要关注成功,也要关注失败。
从 Zap 错误路径将Status设置为“失败”,这样损坏的行就不会再不可见了。行一直卡在New状态是常见现象,通常不会被注意到。
将收据放在发票页上
在步骤 4 之前,将Format Type切换为 PDF,并将单据合并到发票布局中,以便债务人收到一份文件而不是两份文件。
涉及多个实体的法案
债权人信息来自列,因此一个数据库可以代表两家公司发行债券。为每一行分配QR-IBAN,其他内容保持不变。

与在Make中构建相同流程相比,这有何不同?​

我们发布了the same scenario in Make前一天的情况也一样:相同的数据库,相同的PDF4me操作,相同的输出结果。区别仅在于平台要求你如何表达。

比较在Make中在这个 Zap
筛选行与此 Zap触发式公式,免费筛选步骤,每看到一行数据就消耗一个任务。
清理 IBAN 和金额与此 Zap模块内部的replace()和formatNumber()Zap 映射中的两个Airtable公式字段
通过此 Zap 附件上传文件一个单独的上传附件模块,用于传输字节直接在附件字段中输入File Url
这个 Zap5 个模块,逻辑分为触发器和模块两部分。5 个步骤,逻辑在Airtable和过滤器之间分离

常见问题​

什么是瑞士二维码钞票?​

瑞士二维码账单是取代瑞士旧式橙红色账单的支付凭证。它包含一个二维码,其中包含债权人、债务人、金额和参考编号等信息,因此付款人只需在银行应用程序中扫描二维码即可,无需手动输入任何内容。

它分为两部分,收据部分和付款部分,中间用裁切线隔开,布局由……固定。Swiss implementation guidelines published by SIX生成一个这样的程序是一个规范问题,而不是一个设计问题。

瑞士的QR-IBAN号码是什么?​

QR-IBAN是银行在普通 IBAN 之外额外发放的第二个账号,其机构标识符位于预留范围内,因此很容易识别。它告知银行收到的付款带有结构化的二维码参考信息,以便银行能够自动将付款与发票匹配。

对于此 Zap,规则很简单:如果Reference Type为QRR,则 IBAN 字段必须包含QR-IBAN。混用会导致扫描错误。

Airtable可以创建发票吗?​

不支持支付。Airtable 可以Airtable数据并将其布局成界面或可打印视图,但它无法根据支付规范生成二维码,也无法验证其生成的内容。

它在这里的优势在于能够记录数据,并通过公式字段对数据进行清理。Zap 会将数据传递给符合标准的程序,并将结果返回。

我的Zapier过滤器为什么不起作用?​

十有八九,匹配结果与你的预期不符。 Exactly matches会比较整个字符串,包括大小写和尾随空格,因此new、 New 和NEW都无法与New匹配。

打开筛选器的测试面板,查看“不匹配项”行。它会打印出字段名称和Zapier实际识别的值,通常足以立即发现差异。将Airtable列切换为单选列即可彻底解决此问题。


故障排除​

Zap每次都会在过滤器处停止

阅读Items that didn't match筛选器测试面板中的一行:它指定了字段和值。通常, Status列包含的内容并非“确切”值。New或者,在任何人设置之前,触发器就已经在某一行上触发了。

同一张单据寄出两次

步骤 4 没有设置Status,或者将其设置为过滤器仍然通过的值。更新和过滤是同一个机制:如果它们不一致,Zap 可以重新处理自身的输出。请将它们放在一起检查,而不是分开检查。

附件从未出现在记录中。

Airtable会从您提供的 URL 获取文件,因此该 URL 在Airtable发出请求时必须可访问。确认步骤 4 的映射。File Url从PDF4me步骤而不是其他字段中获取记录 ID,并检查记录 ID 是否来自触发器。

任务消耗速度超出预期

过滤器会对触发器检测到的每一行数据运行,因此被它拒绝的行仍然会产生费用。如果该表承载了大量不应计费的流量,请为 Zap 创建一个仅包含候选行的视图,而不是包含整个表的视图。


后续步骤​

大多数自动化流程都会因为您无意处理的行而失败,而不是因为您有意处理的行。通常只需修改一个字段并执行一个步骤就能解决问题。