Google Sheet Auto Email Trigger 实现周均绩效低于指标自动发邮件咨询
Google Sheet 绩效监控自动邮件触发实现方案
核心实现逻辑
- 绑定Google Apps Script到目标绩效表格,自动识别全表有效数据范围,无需固定区域配置
- 自动筛选当周所有绩效数据,计算平均值
- 将计算结果和预设阈值对比,满足触发条件时调用邮件接口发送通知
- 配置周级时间驱动触发器,固定周期自动运行检查逻辑
可直接使用代码
将以下代码复制到Google Sheet顶部「扩展程序」-「Apps Script」编辑器中,只需修改开头配置项即可适配你的业务需求:
// ========== 可自定义配置项 ========== const PERFORMANCE_THRESHOLD = 80; // 预设绩效合格阈值,低于该值触发邮件 const RECIPIENT_EMAIL = "your-team@example.com"; // 邮件收件人地址,多个用英文逗号分隔 const DATE_COLUMN = 1; // 日期列序号,A列为1、B列为2,以此类推 const PERFORMANCE_COLUMN = 3; // 绩效数据列序号 const EMAIL_TITLE = "团队周绩效预警通知"; // ========== 配置项结束 ========== function checkWeeklyPerformanceAlert() { // 自动获取全表所有带数据的单元格,动态适配新增数据 const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const fullTableData = activeSheet.getDataRange().getValues(); // 若表格第一行为表头,保留下一行,无表头直接删除即可 fullTableData.shift(); // 计算当前周的时间范围 const currentTime = new Date(); const weekStart = new Date(currentTime.setDate(currentTime.getDate() - currentTime.getDay())); weekStart.setHours(0,0,0,0); const weekEnd = new Date(weekStart); weekEnd.setDate(weekEnd.getDate() + 6); weekEnd.setHours(23,59,59,999); // 筛选当周有效绩效数据 const validWeeklyData = fullTableData.filter(row => { const rowDate = new Date(row[DATE_COLUMN - 1]); const performanceVal = row[PERFORMANCE_COLUMN - 1]; return rowDate >= weekStart && rowDate <= weekEnd && !isNaN(performanceVal); }).map(row => Number(row[PERFORMANCE_COLUMN - 1])); // 无有效数据直接终止运行 if(validWeeklyData.length === 0) return; // 计算周平均绩效 const weeklyAvg = validWeeklyData.reduce((sum, current) => sum + current, 0) / validWeeklyData.length; // 低于阈值触发邮件发送 if(weeklyAvg < PERFORMANCE_THRESHOLD) { const emailContent = ` <p>本周团队坐席平均绩效为${weeklyAvg.toFixed(2)},低于预设阈值${PERFORMANCE_THRESHOLD},请及时跟进处理。</p> `; GmailApp.sendEmail(RECIPIENT_EMAIL, EMAIL_TITLE, "", {htmlBody: emailContent}); } }
部署配置步骤
- 代码修改完成后点击编辑器顶部保存按钮,自定义项目名称完成保存
- 手动运行一次
checkWeeklyPerformanceAlert函数,根据提示完成脚本访问表格、发送邮件的权限授权 - 点击编辑器左侧「触发器」菜单,添加新触发器:选择要运行的函数为
checkWeeklyPerformanceAlert,触发源选择「时间驱动」,类型选择「周计时器」,设置你需要的每周检查时间点(比如每周五下午6点),保存后即可生效
关键逻辑说明
代码中使用
sheet.getDataRange()方法自动识别所有包含内容的单元格范围,后续每日新增数据无需修改代码调整数据范围,脚本会自动适配。如果你的表格有多个工作表,只需将getActiveSheet()修改为getSheetByName("你的工作表名称")即可固定读取指定工作表数据。
内容的提问来源于stack exchange,提问作者Alexander Hayes
相关产品推荐
相关产品推荐

