Notion 原生 Automation基础特性基础用法 1:根据 A 字段设置 B 字段基础用法 2:根据条件新增一个页面,并以特定模板启动基础用法 3:根据条件编辑某个页面的字段基础用法 4:根据预设条件发送通知值得吐槽的点第三方自动化工具IFTTTZapierMake小结
本文原定的目标是带大家初步入门 Notion 与第三方的 Zapier 或者 Make 等一众自动化工具套件的联动介绍,不过近期 Notion 终于上线了自己原生的数据库自动化功能 Automation,所以本文将适当扩展篇幅,并将内容重点调整到 Automation 的测评与演示上,其余的第三方自动化工具将仅做简单介绍,以激发读者兴趣为主,争取能用一篇文章让各位读者能初步了解与 Notion 自动化相关的基础用法。
所以 Notion 的自动化目前可以分成两类,一类是基于数据库原生的内部自动化,所有数据都在 Notion 内部进行交互。另一类则是依赖第三方工具的自动化,数据可以从外部进入 Notion,也可以从 Notion 导出到外部。
我们先来讲前者,也就是近期更新的,对国内用户来说最有使用价值的原生自动化 Automation。
Notion 原生 Automation
基础特性
付费限制
首先,Automation 对免费用户来说是有巨大限制的,这个功能可以说是 Notion 目前为数不多只有付费才能使用的权益点。付费订阅用户(Plus 方案及以上)可以在任意数据库创建任意的 Automation 动作,但免费用户在尝试创建 Automation 动作时就会被提示要求升级付费方案:

所以免费用户如果要想使用 Automation 这个功能,则暂时只能通过保存别人含有 Automation 动作的模板来使用,并且无法编辑或者新增动作。
创建方法
点击任意数据库的右上角闪电符号⚡️,然后再点击右下角的
New automation 按钮,即可开始创建自动化流程:
基础逻辑
整套自动化的基本逻辑是通过 Trigger(触发器) 来激活 Action(动作),即当数据库监测到某些预设的条件后,就自动执行某项动作。所以要用好 Automation,就必须先明白 Automation 允许我们设置怎样的预设条件,以及它所能执行的动作边界在哪里。
- 三类预设条件(Trigger):
- 当有新增页面时
- 当有字段被编辑
- 当有字段被选择
- 四类执行动作(Action):
- 就编辑某个字段
- 就增加某个页面到某个数据库中
- 就编辑位于某个数据库的某个页面
- 就发送通知到 Slack
也就是说,当我们把 Trigger 和 Action 两两组合,就可以有 12 种基本的自动化流程。但其中不论是 Trigger 还是 Action 都有不少值得注意或者是值得吐槽的地方,这些就放到后面的实操案例中再逐一展开了。
在使用 Automation 的最初阶段,我认为它至少能满足你的一项基本需求就是,如果你总是需要为每一个新增的页面设置一个固定的值,那么就可以用 Automation 来自动填充这个值,而无须每次都手动操作。这个功能与数据库本身自带的 Template ,或者近期更新的 Button 存在不少相似之处,不过它的体验会更加丝滑无缝。
基础用法 1:根据 A 字段设置 B 字段
用法参考 1、根据阅读状态自动记录时间
在本栏目 3.1 篇的 Button 解析中,我介绍了一种使用 Button 快速记录打卡时间的方法:

不过这种方法有个不大不小的缺点就是,这个按钮始终需要占据一定的页面位置,并且按钮也需要手动点击,就显得不那么自动化,但现在我们可以在 Automation 中设置如下规则:
- 当新增书本时(即 Page added),将
阅读状态设置为 Not started
- 当
阅读状态设置为 In Progress,将开始阅读时间设置为 Today
- 当
阅读状态设置为 Done,将结束阅读时间设置为 Today
然后在预先设置好的 Formula 的计算下,就可以自动得出一本书从开始阅读到结束阅读所花费的总时间天数了:

当然你也可以将 Table 视图切换到 Board 视图,通过移动卡片的方式来改变阅读状态,这样的体验或许会更加丝滑。

用法参考 2、根据任务状态自动分配负责人
一条视频从选题排期到剪辑发布大概需要经历这几个过程:脚本、配音、拍摄、剪辑、发布、复盘、归档等。
如果只有你自己一个人的话,那么所有的流程的负责人都是自己;但如果你是处在某个团队之中,每个流程都是由不同的人来负责,那么就可以利用 Automation 这个功能,根据任务所处的不同状态来分配不同的负责人:
- 选题阶段 → 将 Person 设置为运营
- 脚本阶段 → 将 Person 设置为文案,并将开始时间设置为 Today
- 配音阶段 → 将 Person 设置为主播
- 拍摄阶段 → 将 Person 设置为摄像
- 剪辑阶段 → 将 Person 设置为剪辑
- 发布阶段 → 将 Person 设置为运营
- 复盘阶段 → 将 Person 设置为运营
- 归档阶段 → 将 Person 设置为运营,并将结束时间设置为 Today

然后因为 Person 这个字段的特性,当你被分配为这个项目的负责人的时候,在 Notion 的 Updates 位置,以及你的邮箱中就会收到相应的通知:


用法参考 3 、用 Action 清空字段的值
在 Action 中如果你选择了某个字段,但并没有为它设定任何默认的值的话,就可以根据预设的条件(Trigger)来清空这个字段已有的值。下面我以「拍摄项目」与「器材借用」这两个数据库为例,简要地讲解一下这个用法。
首先我们创建一个「拍摄项目」数据库,并用 Relation 将它关联到「器材清单」数据库上,当一个拍摄项目关联到了一个器材上,就表示这个器材被这个项目借用了:

现在我希望 Automation 能实现以下效果:当拍摄项目结束时(即当 Status 被选择为 Complete),则自动清空这个项目所关联的器材,使这个器材在「器材清单」数据库上能够被释放出来。
所以这里的 Trigger 是:当
项目状态 set to Complete;而这里的 Action 虽然选择了 Relation 这个字段,但只要我不为 Relation 指定默认的值,就可以起到清空字段的效果:
接下来还可以继续延伸这个自动化流程,我可以将「器材清单」数据库以镜像视图的方式创建在「拍摄项目数据库」的默认模板中(Template),并用 Filter 筛选出那些没有关联到任何拍摄项目的器材,这些器材就是当下可以被借用的器材:

如此一来,只要我创建一个新的拍摄项目,那么这个项目的页面里就将自动出现那些仍可被借用的器材(即可以被 Relation 器材):

基础用法 2:根据条件新增一个页面,并以特定模板启动
假设一个项目的状态有
规划、前期执行、中期执行、后期执行、复盘以及归档这 6 种状态,那么我可以先用 Status 这个字段进行设置:
为了确保项目能够沿着早期规划的方向顺利执行下去,团队决定当项目执行到中期(即 Status 设置为中期执行)的时候就召开一次项目评估会议,这个时候我们就可以用 Automation 来优化这一个过程。
首先创建一个用于集中管理会议的数据库,并用 Relation 将它与项目数据库进行关联:

然后在项目数据库中创建一个 Automation 流程,并将流程设置为当 Status 被选择为
中期执行的时候,自动在「会议数据库」中创建一个新的会议(即创建一个新的页面),同时还可以选择将这个会议以 Relation 的方式关联到这个项目上:
自动流程效果如下:

你可能会遗漏的点
如果你提前在「会议数据库」中设置了模板(Template),那么通过 Automation 的 Action 创建新的页面的时候,就能指定要用哪一个模板来创建新的页面。
例如我为这个项目评估会议创建的模板如下:

接下来我们回到最开始的 Automation 流程中,你会发现「Add page to 」的这个动作多了一个
as XXXX 的选项,通过这个选项我们就可以指定用特定的模板来进行新页面的创建了:
执行效果如下:

基础用法 3:根据条件编辑某个页面的字段
在这个用法中,我们能利用 Edit pages in 这个动作(Action)来让不同数据库之间的数据保持一定程度上的实时关联,下面以客户联络表与订单数据库为例进行讲解。
我们可以用客户联络数据库来监控每一位客户的最近往来时间,当间隔天数大于一定期限时,就利用 Formula 将其标注为
需要回访
而客户的「最近往来时间」则需要根据订单数据库的状态来实时更新,如下图所示:

当我们在「客户」这个字段选择了对应的客户名称后,就可以让它刷新一次「客户联络数据库」中对应的客户的最近联络时间,设置方法如下:

需要注意的是,我们必须为这个动作设置一个过滤条件(filter),才能让 Automation 在目标数据库中找到对应的客户:

再举一个例子,我们可以创建一个「运动项目」数据库,用来监测自己在特定健身项目的最好成绩、最近锻炼时间、以及根据教练的建议所设置的「建议频率」等:

然后我可以再创建一个「健身记录」数据库,用来记录每一次的锻炼时间、锻炼项目、锻炼时长等:

接下来基于 Automation 的自动化流程,当我今天勾选了卧推、跑步等项目,Automation 就会自动刷新「运动项目」数据库中的对应项目的最近锻炼时间:

基础用法 4:根据预设条件发送通知
这个用法最为简单,当数据库触发了某个 Trigger 后,就可以通过 Action 将其监测到的状态发送到 Slack 的频道里。并且各位读者需要特别注意的一点是,Automation 的各种 Action 是可以混合使用的。
以前文的客户联络表为例,当产生了一笔新的订单,我们既可以让数据库刷新这笔订单所关联的客户的最近联络时间,还可以让 Automation 发送一条通知到 Slack 中:

通知效果如下:

不过可惜的是 Slack 在国内几乎没有市场,所以对大部分读者来说这个 Action 的价值就不算太大了。
值得吐槽的点
介绍了 Automation 的几类基础用法,希望能让大家对 Notion 的自动化流程有一个基本的认知。但是接下来就是吐槽环节了,Notion 近期更新的几项功能如 Wiki、 Button 包括今天的 Automation 都精准击中了几类痛点,但一旦你开始深入使用,就会在各种地方发现它们的缺陷或者不足。
1. Trigger 无法设置 and,只能设置 or
当你设置 Trigger 的时候能看到 Notion 的一行提示「 When any of these occur 」,也就是说多个 Trigger 只要有一个符合,Automation 就会开始执行预设的 Action 。
因为这个原因我们就不能设置类似「当 Status 是 In progress 并且 Person 设置为 XX」这样的预设条件,使得 Automation 的应用场景非常有限。

2. Tigger 的类型有限
在现在这个版本的 Automation 中,除了选择类的字段(例如 Select、Status)可以根据不同的选择条件来作为不同的 Trigger,其他的字段例如 Date 、 Number 在作为 Trigger 的时候都只能监测它是否被编辑过,而无法根据 Date 的日期或者 Number 的大小来触发 Trigger。
如果可以根据 Number 的大小触发 Trigger,就可以做一个库存管理数据库,当库存少于 XXX 时发送通知到 Slack
如果可以根据 Date 的时间触发 Trigger,就可以在 App 订阅即将到期的时候发送通知到 Slack
这类无法被满足的需求,在你实际体验 Automation 的过程中一定还会遇到很多很多,对此我的建议是放平心态,然后耐心等待 Notion 有朝一日能够完善或者加强它,否则你可能就会错过一些现在就可以尝试的好用玩法了。
3. Trigger 或者 Action 没有复制按钮
我很难理解为什么 Notion 不做这个功能,有时候需要创建相似的动作,就需要手动重头创建一遍,真的非常烦琐,如果能像 Button 那样可以复制相似的动作然后再微调就好了。

第三方自动化工具
介绍完了 Notion 自带的 Automation,接下来再简单补充几款优秀的、能与 Notion 进行联动的第三方自动化工具。不过需要注意的是,这些工具大部分都是国外产品,因此基本上也只能联动国外的 App,并且全都没有中文界面,在流程设置上需要一定的代码基础(或者代码思维),需要花费大量的时间去研究它们的功能组件和组装逻辑,所以本文以简短的篇幅无法起到具体的教程作用,仅是带大家初步了解,以激发各位读者的研究兴趣为主要目的。
IFTTT
作为一款 2010 年创办至今的老牌自动化产品,IFTTT 将「如果 xxx 就 XXX」的自动化理念打入人心,至今已经在官网中上线了数千个自动化流程,其中就有 Notion 的自动化模板,不过 IFTTT 目前的付费策略比较苛刻(具体见 这里),免费用户仅能创建 2 个自动化流程,并且 IFTTT 与后面要介绍的 Make 或者 Zapier 相比,它所提供的 Notion Trigger 只有一个,各位读者就权当尝鲜了。
首先你可以在它提供的 Notion 动作库 中查找你可能需要的模板:

比较有尝试价值的就是「谷歌日历同步到 Notion 数据库」这个模板,当你在谷歌日历创建任意日程之后。

IFTTT 就会将这个日程同步到 Notion 的数据库中。

当然你也可以点击 IFTTT 页面右上角的 Create 按钮,然后进入
If This Then That 的动作创作流程:
比较可惜的就是官方仅提供了一个与 Notion 有关的 Trigger,即「当数据库有新增页面时」:

不过 Action 的选择就很丰富了,例如你可以选择 Gmail,然后设定一个「当 Notion Database 有新增页面就发送一封邮件到 Gmail 邮箱」的动作:

收到的邮件效果如下:

Zapier
与 IFTTT 相比,Zapier 更加强大、能连接的服务更多、能创建的流程和功能深度更加复杂,不过 Zapier 同时也需要你花更多的时间去研究学习它的功能组件与搭建方法。
首先,你可以在 这个网页 中搜索并勾选 Notion 这个 App:

然后底下就会出现官方提供的与 Notion 自动化相关的动作模板:

不过现成的模板用法有限,所以你可以在 这个网页 将你的自动化需求用自然语言告诉 Zapier AI,然后它就能根据你的语意来为你创造出合适的自动化流程。
例如我的需求是
当 Notion 数据库有新的页面增加,就发送一条通知到 Telegram,然后 Zapier 就能根据这个需求拟定一个自动化流程:
接下来你需要做的就是点击
Try it 按钮,然后登录你的 Notion 与 TG 账号,根据提示授权 Zapier 访问权限,就可以成功搭建一个自动化流程了:
同步效果如下图所示,这样一来就能够解决 Notion Automation 只能将通知发送到 Slack 的这个痛点了。

Make
Make 与 Zapier 的定位相同,不过它为 Notion 提供了更多的 Trigger,可以说几乎覆盖了绝大部分你所能想到的 Notion 操作类型:

例如我们可以先选择 「Watch Database Items 」这个 Trigger

目的是让 Make 能够监测数据库中的特定字段,这里我们以库存字段(Number)为例:

然后为这个 Trigger 设置一个过滤条件(Filter):当库存字段的数量小于 300 时,就触发下一步的 Action

当 Make 检测到符合条件的字段后,就可以触发提前设置好的 Action:在 Todoist 中创建一个「库存预警」的任务:

之后就可以让 Make 按照预设的频率来检查这个数据库的库存字段,一旦库存少于 300,就可以自动在 Todoist 中创建一个「库存预警」任务,效果如下图所示:

除了监测 Notion 中的数据并与其他产品联动,我们当然也可以先从其他地方获取数据,然后同步到 Notion 之中。例如我可以在 Trigger 中选择 Weather 这个天气组件,然后输入我预设好的经纬度:

然后在 Action 中选择 Notion 的动作「Create a Database item」:

这样一来就可以让它每天早上自动获取一次厦门的天气情况,然后创建在 Notion 的数据库之中了:

小结
限于篇幅,本文只能简略地介绍与 Notion 相关的自动化操作,如果能让各位读者发现一种新的、值得探索的 Notion 用法,那我想本文的目的就算初步完成了。
不论是 Notion 自带的 Automation,还是能与第三方进行联动的自动化工具套件,它们的上限是无穷无尽的,都还有相当多值得探索与应用的功能。我认为如果你对自动化感兴趣,那么真的相当值得花一点时间去尝试一下。虽然它们每一款用起来都存在不低的门槛,但当你真的搭建好了一套简单的自动化流程后,一定能给你带来巨大的成就感。







