AirTable自动化脚本:如何获取触发提交的表单数据?
Airtable表单提交自动化脚本:获取提交数据并同步远程ID
核心解决思路
表单提交后的数据会直接存入对应Airtable表格的新记录中,自动化脚本触发时,只需获取这条新创建的记录即可拿到表单数据,无需直接调用表单对象。
步骤1:配置自动化脚本的输入变量
在表单提交自动化流程的脚本步骤中:
- 点击「添加输入变量」,类型选择「记录」
- 选择表单关联的目标表格(即你代码里的"Planning Database"),变量名设为
submittedRecord - 该变量会自动传入表单提交生成的新记录,供脚本调用
步骤2:脚本中获取表单提交的记录数据
替换你之前手动选择记录的代码,改为从自动化输入变量中获取记录:
// 获取自动化传入的提交记录配置 const config = input.config(); // 关联目标表格 const table = base.getTable("Planning Database"); // 获取完整的提交记录数据 const submittedRecord = await table.selectRecordAsync(config.submittedRecord.id); // 示例:提取表单字段值(替换为你的实际字段名) const userName = submittedRecord.getCellValue("姓名"); const userEmail = submittedRecord.getCellValue("邮箱");
步骤3:发送HTTP请求并保存远程ID
调用远程数据库API创建记录,拿到返回的唯一ID后更新Airtable对应记录:
try { // 发送POST请求到远程数据库API const response = await fetch("你的远程数据库API地址", { method: "POST", headers: { "Content-Type": "application/json", // 按需添加认证头部,比如: // "Authorization": "Bearer 你的认证令牌" }, body: JSON.stringify({ // 映射表单字段到远程数据库需要的格式 name: userName, email: userEmail }) }); if (!response.ok) { throw new Error(`请求失败,状态码:${response.status}`); } // 解析返回的远程ID const remoteResponse = await response.json(); const remoteRecordId = remoteResponse.id; // 按实际返回字段调整 // 将远程ID存入Airtable的对应字段 await table.updateRecordAsync(submittedRecord.id, { "远程数据库ID": remoteRecordId // 替换为你的Airtable字段名 }); console.log("同步完成,远程ID已保存"); } catch (error) { console.error("同步出错:", error); }
关键说明
input.recordAsync()是用于手动运行脚本时让用户选择记录的,不适合自动化触发场景base.getForm()仅能获取表单的配置信息(如名称、字段设置),无法直接拿到用户提交的数据
内容的提问来源于stack exchange,提问作者Joshua Foxworth
相关产品推荐
相关产品推荐

