新手求助:如何通过Zapier将邮件附件上传至BambooHR员工文件夹
Hey there! Let's walk through how to set this up step by step since you're new to Zapier and BambooHR.
实现Zapier触发邮件后上传附件到BambooHR员工文件夹的方案
第一步:配置邮件触发条件
- 先选你的邮件服务商(比如Gmail、Outlook)作为Zap的触发应用,触发事件优先选**"New Email with Attachment"**(确保能直接捕获到附件数据)
- 完成账号授权后,做一次测试触发,确认Zap能正确抓取到邮件的附件信息(包括临时下载URL、文件名、MIME类型)
第二步:搞定员工编号的配置
这是核心前置步骤,推荐几种适配不同场景的方式:
- 从邮件内容提取:如果邮件主题/正文里包含员工编号,用Zapier的「Formatter」工具(选「Text」>「Extract Pattern」)或者简单的Code动作提取编号,存为变量供后续使用
- 通过员工邮箱匹配:添加一个BambooHR的「Find Employee」动作,用邮件里的员工邮箱(比如发件人邮箱、正文里的联系邮箱)去匹配BambooHR的员工档案,自动获取对应的员工编号
- 临时固定(仅测试用):如果只是给特定单个员工传文件,可直接在后续代码里硬编码员工编号,但不推荐长期使用,灵活性太差
第三步:编写Zapier Code动作完成附件上传
核心API参数说明
BambooHR的文件上传接口需要几个关键信息:
- 你的公司BambooHR域名(比如后台URL是
https://yourcompany.bamboohr.com,那域名就是yourcompany) - 第二步拿到的员工编号
- BambooHR API密钥(在后台「API Keys」页面生成)
- Zapier提供的邮件附件临时URL、文件名和MIME类型
示例Python代码(Zapier原生支持)
import requests # 替换成你的BambooHR配置信息 BAMBOO_DOMAIN = "yourcompany" API_KEY = "your_generated_api_key" # 从Zapier输入变量获取数据(要和后续Input Data配置对应) employee_id = input_data["employee_id"] attachment_url = input_data["attachment_url"] attachment_name = input_data["attachment_name"] content_type = input_data["content_type"] # 下载附件内容 attach_response = requests.get(attachment_url) attach_content = attach_response.content # 构造上传接口URL upload_url = f"https://api.bamboohr.com/api/gateway.php/{BAMBOO_DOMAIN}/v1/employees/{employee_id}/files" # BambooHR API认证规则:用户名填API密钥,密码填任意值(这里用"x") auth = (API_KEY, "x") # 构造上传表单数据 files = {"file": (attachment_name, attach_content, content_type)} data = {"category": "documents"} # 可替换为BambooHR支持的文件夹分类,比如"benefits" # 发送上传请求 response = requests.post(upload_url, auth=auth, files=files, data=data) # 返回结果给Zapier用于调试 return {"status": response.status_code, "message": response.text}
Code动作配置细节
- 在Zapier的Code动作里选择「Python」作为运行环境
- 在「Input Data」模块添加4个字段:
employee_id:关联第二步获取到的员工编号变量attachment_url:关联邮件触发动作里的附件临时URLattachment_name:关联邮件触发动作里的附件文件名content_type:关联邮件触发动作里的附件MIME类型
- 替换代码里的
BAMBOO_DOMAIN和API_KEY为你自己的真实信息
第四步:测试与调试
- 触发一次测试邮件,检查员工编号是否正确传递
- 运行Code动作后,查看返回的状态码:201表示上传成功;4xx/5xx错误可根据返回的
message字段排查(比如API密钥无效、员工编号不存在、权限不足等) - 登录BambooHR后台,找到对应员工的文件夹,确认附件已成功上传
额外小提示
- 确保你的BambooHR API密钥拥有「员工文件上传」的权限
- 如果邮件有多个附件,需添加Zapier的「Loop」动作遍历所有附件,逐个执行上传代码
- 可添加「Filter」动作,只处理特定主题/发件人的邮件,避免无效触发
内容的提问来源于stack exchange,提问作者Brian DeGregory
相关产品推荐
相关产品推荐

