Google Sheets指定单元格填充时自动触发邮件发送的方案咨询
Google Sheets 工单CSR填充自动发邮件实现方案
前置准备
先在你的工单表格最右侧新增一列,列标题填notification_sent,用来标记该条工单是否已经发送过通知,避免重复发邮件打扰员工。
步骤1:打开脚本编辑器
打开你的工单Google Sheet,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,进入脚本编辑页面,删除编辑区域默认生成的所有代码。
步骤2:粘贴功能代码
把以下代码粘贴到编辑区域:
// 核心触发函数:当表格被编辑时触发 function sendNotificationOnCsrFill(e) { const sheet = e.source.getActiveSheet(); const editedRange = e.range; const headerRow = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]; // 只处理CSR列的编辑操作,其他列编辑直接跳过 const csrColIndex = headerRow.indexOf('CSR') + 1; if (editedRange.columnStart !== csrColIndex || editedRange.rowStart === 1) return; // 只处理CSR从空变有内容、且未发送过通知的行 const editedRow = editedRange.rowStart; const rowData = sheet.getRange(editedRow, 1, 1, sheet.getLastColumn()).getValues()[0]; const csrValue = rowData[headerRow.indexOf('CSR')]; const sentStatus = rowData[headerRow.indexOf('notification_sent')]; if (!csrValue || sentStatus === '已发送') return; // 提取需要的字段内容 const employeeEmail = rowData[headerRow.indexOf('employee_email')]; const customerName = rowData[headerRow.indexOf('Customer')]; const address = rowData[headerRow.indexOf('Address')]; const setUpdate = rowData[headerRow.indexOf('set_up_date')]; const csrName = csrValue; // 组装邮件内容 const subject = `您提交的返岗工单已处理完成`; const body = `您好: 您提交的返岗工单已由客服处理完成,相关信息如下: 客户名称:${customerName} 客户地址:${address} 回电配置日期:${setUpdate} 处理客服(CSR):${csrName} 如有疑问可联系对应客服核实。`; // 发送邮件 MailApp.sendEmail(employeeEmail, subject, body); // 标记已发送,避免重复触发 const sentColIndex = headerRow.indexOf('notification_sent') + 1; sheet.getRange(editedRow, sentColIndex).setValue('已发送'); }
如果需要调整邮件的主题、正文内容,直接修改代码里subject和body对应位置的文字即可。
步骤3:配置触发规则
点击脚本编辑器左侧菜单栏的「触发器」图标(形状为闹钟),点击右下角「添加触发器」,按以下参数配置:
- 选择要运行的函数:
sendNotificationOnCsrFill - 选择要部署的版本:
Head - 选择事件源:
电子表格 - 选择事件类型:
编辑
配置完成后点击保存,按页面提示完成账号授权即可。授权时如果出现「Google未验证此应用」的提示,点击「高级」→「前往[你的脚本名称](不安全)」即可继续授权,脚本为你自行创建,不存在安全风险。
步骤4:功能测试
返回Google Sheet表格,找一条CSR列为空、未发送过通知的工单,在CSR列填写任意姓名,等待10秒左右,对应employee_email列的邮箱就会收到通知邮件,同时该行的notification_sent列会自动标记为「已发送」。
常见问题处理
- 如果列标题有修改,对应修改代码里单引号包裹的列名文本即可
- 如果触发后没有收到邮件,可进入脚本编辑器左侧「执行」页面查看报错信息,确认列名、邮箱地址是否填写正确
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

