Gravity Forms提交能否触发Google Sheets onFormSubmit触发器同步数据?
实现Gravity Forms提交后自动复制数据到另一张Google工作表
完全可以实现这个需求,核心思路是利用Google Apps Script监听Gravity Forms同步到Sheet的新增数据,自动复制到目标工作表,具体步骤如下:
1. 确认集成基础
确保你已经通过Gravity Forms的Google Sheets官方集成,把表单提交数据自动同步到Google Sheets的指定工作表(比如命名为GravityFormsResponses)——这是后续脚本运行的前提。
2. 编写Google Apps Script脚本
打开存储Gravity Forms数据的Google Sheet,点击「扩展程序」→「Apps Script」,删除默认代码,粘贴以下脚本:
function copyGravityFormsSubmission(e) { // 替换为你的Gravity Forms数据所在工作表名称 const sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('GravityFormsResponses'); // 替换为你要复制到的目标工作表名称 const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ArchiveResponses'); // 获取刚提交的整行数据 const newSubmissionRow = sourceSheet.getRange(e.range.getRow(), 1, 1, sourceSheet.getLastColumn()).getValues()[0]; // 追加到目标工作表 targetSheet.appendRow(newSubmissionRow); }
注意修改代码中的两个工作表名称为你实际使用的名称。
3. 设置可安装触发器
在Apps Script编辑器左侧点击「触发器」图标,点击「添加触发器」,按以下配置:
- 选择函数:
copyGravityFormsSubmission - 部署类型:
Head - 事件源:
从电子表格 - 事件类型:
当表单提交时
点击「保存」,按照提示完成脚本权限授权即可。
关键注意事项
- 源工作表和目标工作表的列顺序必须一致,否则数据会出现错位;如果列结构不同,需要修改脚本中的数据提取逻辑,手动映射列。
- 这个触发器监听的是Sheet的新增行事件,只要Gravity Forms提交后在源表新增了行,就会触发复制操作,和原生Google表单的提交触发逻辑一致。
- 如果你的Gravity Forms集成存在更新已有行的情况(比如编辑提交),需要把事件类型改成「当更改时」,并调整脚本逻辑判断是否为新增行。
内容的提问来源于stack exchange,提问作者Codedabbler
相关产品推荐
相关产品推荐

