You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Google Sheets单元格值自动发送行数据邮件的Apps Script实现求助

自动发送Google Sheets新增客户反馈至对应门店经理的实现方案

前置准备

  • 在你的Google Sheets中新增一张名为「门店联系人」的工作表:
    • A列填写门店的provider名称(必须和反馈表E列的内容完全一致)
    • B列填写对应门店经理的邮箱地址
  • 确定反馈表的表头行和需要触发的起始行(比如表头是第1行,从第2行开始处理新增反馈)

编写Apps Script代码

  1. 打开你的客户反馈表格,点击顶部菜单栏的「扩展程序」→「Apps Script」进入脚本编辑器
  2. 清空默认代码,粘贴以下脚本:
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('已发送');
  }
}
  1. 根据你的表格实际情况修改脚本中的参数:
    • feedbackSheet.getSheetByName('Sheet1'):将Sheet1替换为你的反馈表名称
    • startRow = 2:替换为要求的指定起始行
    • 反馈信息的列号(比如A列客户名、C列反馈内容,可根据你的表格结构调整)

设置可安装触发器

因为普通的onEdit触发器没有发送邮件的权限,需要设置可安装触发器:

  1. 在脚本编辑器左侧点击「触发器」图标(时钟样式)
  2. 点击「添加触发器」,配置以下参数:
    • 选择运行的函数:sendFeedbackToManager
    • 部署类型:「头部部署」
    • 事件源:「电子表格」
    • 事件类型:「更改」
  3. 点击「保存」,按照提示完成授权流程(若提示「应用未验证」,点击「高级」→「转到对应脚本」继续授权)

测试验证

在反馈表的指定起始行之后新增一行客户反馈数据,等待数秒后:

  • 对应门店经理会收到邮件
  • 该行的F列会被标记为「已发送」

注意事项

  • 确保反馈表E列的provider名称和「门店联系人」表A列的名称完全匹配,否则无法找到对应邮箱
  • 可根据需求修改邮件的主题和内容,调整subject和body部分即可

内容的提问来源于stack exchange,提问作者nick_heda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 01:57:42