如何使用 Appsheet 上的自动化功能从工作表在 Google 日历上创建提醒?

问题描述 投票:0回答:1
首先我要说的是,我绝对不是一名程序员。我了解 python 和编程逻辑的基础知识,但仅此而已。所以,事情是这样的,我正在通过 appsheet 构建一个应用程序(因为它应该是快速处理事情的低代码替代方案),供我父亲的新房地产代理机构管理销售线索。它大部分工作正常,但他要求我实现的一个功能是,如果超过 15 天没有与客户联系,则发出提醒,如果可能的话,如果提到客户生日,则发出提醒。我已经有了所需数据的正确列(姓名、生日、上次联系日期),并且我对必须使用的逻辑有一个模糊的想法,但我需要使用 Google Apps 脚本来完成此操作而且我对JS一无所知。我尝试使用我发现的几个教程,但我尝试的任何东西似乎都不起作用,我不知道它是代码还是什么

到目前为止,我已经得出结论,我需要在 Appsheet 上基于两个功能进行 3 个主要自动化,其中一个用于在添加新条目到应用程序时(在上次联系日期后 15 天)在日历上创建新提醒列),以及一个用于在删除潜在顾客时删除现有提醒的提醒。当“Ultimo Contato”专栏更新时,我还会将它们用于第三次自动化。我想同样的函数也可以用于生日?

到目前为止,我所做的只是尝试创建一个事件,但我很确定,如果它正确的话,这也是非常简单的:

function createAllDayEvent(title, startDatetime) { var nome = SpreadsheetApp.getActiveSheet().getLastRow('A').getValue(); var ultimoContato = SpreadsheetApp.getActiveSheet().getLastRow('J').getValue(); var dataDoLembrete = ultimoContato + 15 const eventName = typeof title === 'string' ? title : 'Entrar em contato com' + nome; const startDate = typeof startDatetime === 'string' ? new Date(startDatetime) : newDate(dataDoLembrete); var event = CalendarApp.getDefaultCalendar().createAllDayEvent() ( eventName, startDate, ); console.log('Created event with id', event.getId()); }
我知道我可能要求太多,但我做这件事比我想象的要困难

google-sheets google-apps-script google-calendar-api google-appsheet
1个回答
0
投票
这是我用来将一位医生的事件发布到我的日历的示例

GS:

此函数创建事件并保存 ID,以防我希望轻松删除它们。

function postEvents() { const cal = CalendarApp.getCalendarById(gobj.globals.calid) const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Your Sheet Name"); const [hs, ...vs] = sh.getDataRange().getDisplayValues(); vs.filter(r => r[4] == "").filter(e => e).forEach((r,i) => { let ts = r[1].toString().split('/').concat(10).map(e => Number(e)) let te = r[1].toString().split('/').concat(10,30).map(e => Number(e)) let ev = cal.createEvent(`${r[2]} ${r[0]}`, new Date(ts[2],ts[0]- 1,ts[1],ts[3]),new Date(te[2],te[0]-1,te[1],te[3],te[4])); if(ev) { sh.getRange(i + 2,5).setValue(ev.getId()); ev.setDescription(r[3]); ev.addEmailReminder(0); ev.addEmailReminder(60); ev.addEmailReminder(90); } }); }
这会查找日历中的事件

function findEventsById() { const cal = CalendarApp.getCalendarById(gobj.globals.calid) const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Your Sheet Name"); const [hs, ...vs] = sh.getDataRange().getDisplayValues(); const ids = vs.map((r,i) => r[4] ? [cal.getEventById(r[4]).getStartTime()] : [""]); sh.getRange(2,6,ids.length,ids[0].length).setValues(ids); }
这就是工作表的设置方式:

ABCDEF1标题日期订购者描述活动ID通过ID查找2标题12024/03/13组织已编辑3标题22024/05/14组织已编辑4标题32024/05/14组织已编辑5标题42024/05/14组织已编辑6标题52024年8月14日组织已编辑7标题62024年8月14日组织已编辑8标题72024年8月14日组织已编辑9标题82024/08/14组织已编辑10标题92024/08/14组织已编辑
© www.soinside.com 2019 - 2024. All rights reserved.