如何让Zapier从数据源随机获取记录并发送随机邮件?
解决方案:Zapier实现随机提取数据源记录发送邮件
我之前帮客户搞定过几乎一模一样的Zapier随机邮件需求,分享几个亲测有效的方案,分场景给你拆解:
方案1:Google Sheets专属(零代码,新手友好)
- 先给你的Sheet加一列,比如命名为
随机数,然后在单元格里输入公式=RAND(),它会自动生成0到1之间的随机数,每次Sheet有更新时这个数会自动刷新。 - 接着在Zapier里加一个Google Sheets > 查找电子表格行的动作,把排序规则设为
随机数列降序,然后取第1行。这样每次触发Zap时,都会拿到随机排序后的第一条记录,也就是你要的随机HTML正文了。 - 小tip:要是不想让随机数一直变,可以换成
=RANDBETWEEN(1, [你的总行数])生成固定范围的行号,然后用查找电子表格行按行号匹配,这样更可控。
方案2:Knack专属(API+代码步骤)
Knack本身没内置随机排序功能,但用API结合Zapier的代码步骤就能搞定:
- 先在Zapier里加一个Code by Zapier动作(选Python就行),调用Knack的API拉取所有目标记录,代码示例如下:
import requests import random # 替换成你自己的Knack配置 url = "https://api.knack.com/v1/objects/[你的对象ID]/records" headers = { "X-Knack-Application-Id": "[你的App ID]", "X-Knack-REST-API-Key": "[你的API密钥]" } response = requests.get(url, headers=headers) records = response.json()["records"] # 随机挑一条记录 random_record = random.choice(records) # 返回你需要的HTML正文字段 return {"random_html": random_record["[你的HTML字段键名]"]} - 然后把这个代码步骤输出的
random_html字段直接当成邮件正文,加个发送邮件动作就搞定了。
方案3:通用方案(适配任何数据源)
不管你用的是啥数据源,只要能返回多条记录,都可以用这个方法:
- 第一步:先拉取数据源的所有记录,比如Google Sheets的获取多个电子表格行,或者Knack的查找记录动作。
- 第二步:加一个Code by Zapier动作,从返回的记录列表里随机选一条。给你两个语言的示例:
Python版:
JavaScript版:import random # 假设输入的记录列表存在input_data["records"]里,替换成你实际的字段名 records = input_data["records"] random_record = random.choice(records) return {"random_html": random_record["html_body"]}const records = inputData.records; const randomRecord = records[Math.floor(Math.random() * records.length)]; return { random_html: randomRecord.html_body }; - 第三步:把代码步骤输出的HTML内容传到邮件发送动作里就行。
几个要注意的点
- 如果你的数据源记录特别多,记得在获取多条记录的动作里设置分页或者过滤条件,别拉太多数据影响Zap的运行速度。
- 用Google Sheets的话,要确保Zapier有足够的权限读取你的Sheet,而且公式列能正常刷新。
- Knack API调用要注意速率限制,别太频繁触发导致限流。
内容的提问来源于stack exchange,提问作者user1257826
相关产品推荐
相关产品推荐

