基于Google Sheets单元格值自动发送行数据邮件的Apps Script实现求助
自动发送Google Sheets新增客户反馈至对应门店经理的实现方案
前置准备
- 在你的Google Sheets中新增一张名为「门店联系人」的工作表:
- A列填写门店的
provider名称(必须和反馈表E列的内容完全一致) - B列填写对应门店经理的邮箱地址
- A列填写门店的
- 确定反馈表的表头行和需要触发的起始行(比如表头是第1行,从第2行开始处理新增反馈)
编写Apps Script代码
- 打开你的客户反馈表格,点击顶部菜单栏的「扩展程序」→「Apps Script」进入脚本编辑器
- 清空默认代码,粘贴以下脚本:
function sendFeedbackToManager(e) { const ss = SpreadsheetApp.getActiveSpreadsheet(); // 替换为你的反馈表名称(比如"客户反馈") const feedbackSheet = ss.getSheetByName('Sheet1'); const contactSheet = ss.getSheetByName('门店联系人'); // 构建门店与邮箱的映射关系 const contactData = contactSheet.getDataRange().getValues(); const providerEmailMap = {}; for (let i = 1; i < contactData.length; i++) { providerEmailMap[contactData[i][0]] = contactData[i][1]; } const range = e.range; const row = range.getRow(); const lastRow = feedbackSheet.getLastRow(); const startRow = 2; // 替换为你的指定起始行 const statusCol = 6; // F列,用于标记是否已发送 const status = feedbackSheet.getRange(row, statusCol).getValue(); // 仅处理新增行、指定起始行之后且未发送的反馈 if (row >= startRow && row === lastRow && status !== '已发送') { // 从反馈表中提取信息(根据你的表格列调整) const provider = feedbackSheet.getRange(row, 5).getValue(); // E列:provider const customerName = feedbackSheet.getRange(row, 1).getValue(); // A列:客户姓名 const feedbackTime = feedbackSheet.getRange(row, 2).getValue(); // B列:反馈时间 const feedbackContent = feedbackSheet.getRange(row, 3).getValue(); // C列:反馈内容 const managerEmail = providerEmailMap[provider]; if (!managerEmail) { feedbackSheet.getRange(row, statusCol).setValue('无对应联系人'); return; } // 邮件内容可自定义 const subject = `新客户反馈:${provider}门店`; const body = ` 您好,收到新的客户反馈: 客户姓名:${customerName} 反馈时间:${feedbackTime} 反馈内容:${feedbackContent} 请及时跟进处理。 `; // 发送邮件 MailApp.sendEmail(managerEmail, subject, body); // 标记为已发送 feedbackSheet.getRange(row, statusCol).setValue('已发送'); } }
- 根据你的表格实际情况修改脚本中的参数:
feedbackSheet.getSheetByName('Sheet1'):将Sheet1替换为你的反馈表名称startRow = 2:替换为要求的指定起始行- 反馈信息的列号(比如A列客户名、C列反馈内容,可根据你的表格结构调整)
设置可安装触发器
因为普通的onEdit触发器没有发送邮件的权限,需要设置可安装触发器:
- 在脚本编辑器左侧点击「触发器」图标(时钟样式)
- 点击「添加触发器」,配置以下参数:
- 选择运行的函数:
sendFeedbackToManager - 部署类型:「头部部署」
- 事件源:「电子表格」
- 事件类型:「更改」
- 选择运行的函数:
- 点击「保存」,按照提示完成授权流程(若提示「应用未验证」,点击「高级」→「转到对应脚本」继续授权)
测试验证
在反馈表的指定起始行之后新增一行客户反馈数据,等待数秒后:
- 对应门店经理会收到邮件
- 该行的F列会被标记为「已发送」
注意事项
- 确保反馈表E列的
provider名称和「门店联系人」表A列的名称完全匹配,否则无法找到对应邮箱 - 可根据需求修改邮件的主题和内容,调整
subject和body部分即可
内容的提问来源于stack exchange,提问作者nick_heda
相关产品推荐
相关产品推荐

