自动化任务¶
自动化规则用于根据用户操作(例如,将字段设置为特定值时应用修改)、电子邮件事件、时间条件(例如,在最后一次更新后 7 天存档记录)或外部事件触发自动更改。
使用 Studio 创建自动化规则的步骤如下:
开启 Studio 并点击 自动化 ,然后点击 新建 。
选择 触发器 并根据所选触发器填写屏幕上出现的字段。
点击 添加操作 ,然后选择 操作 的 类型 ,并根据所选操作,填写屏幕上出现的字段。
点击 保存并关闭 或 保存并新建 。
Example
触发器¶
触发器 用于定义何时应用自动化规则。可用的触发器取决于 模型 。共有五个触发器类别:
值更新¶
该类别中可用的触发器取决于模型,并基于常见的字段更改,例如添加特定标记(如添加到任务)或设置 用户 字段。选择触发器,然后根据需要选择值。
电子邮件活动¶
接收或发送电子邮件时触发自动操作。
时间条件¶
根据日期字段触发自动操作。可使用以下触发器:
基于日期字段: 选择要用于 延迟 字段旁边的字段。
创建后:创建并保存记录时触发该操作。
最后更新后:编辑并保存现有记录时触发该操作。
然后您可以定义:
延迟:指定分钟、小时、天数或月数。要在触发日期之前触发操作,请指定负数。如果您选择了 基于日期字段 触发器,则还必须选择用于确定延迟的日期字段。
附加条件:点击 添加条件 ,然后指定触发自动化规则所需满足的条件。点击 新建规则 可以添加另一个条件。
当达到延迟时间且满足条件时,就会触发该操作。
Example
如果您想在日历活动开始前 30 分钟发送提醒邮件,请在 触发日期 下选择 开始(日历活动) ,并将 延迟 设为 -30 分钟 。
Note
默认情况下,调度程序每 4 小时检查一次触发日期,这意味着基于时间的自动化中更细的时间粒度可能无法总是生效。
自定义¶
触发自动化操作:
保存时:保存记录时;
删除时:删除记录时;
界面更改时:在 表单视图 上更改字段值时,甚至在保存记录之前。
对于 保存时 和 界面更改时 触发器,您 必须 在 更新时 字段中选择用于触发自动化规则的字段。
Warning
如果在 更新时 字段中未选择任何字段,该自动化操作可能会对同一条记录执行多次。
您也可以在 应用于 字段中选择性地定义触发自动化规则所需满足的附加条件。
Note
界面更改时 触发器只能与 执行代码 操作配合使用,并且仅在手动进行修改时才有效。如果通过其他自动化规则更改字段,则不会执行该操作。
外部¶
基于 Webhook 触发自动化动作。Webhook 是一种跨系统通信机制,当源系统发生特定事件时,会向目标系统发送 HTTP(S) 请求,该请求通常携带事件相关数据载荷。
要配置 网络钩子 触发器,请将 Odoo 生成的 URL 复制到目标系统(即接收请求的系统)。然后,在 目标记录 字段中输入要运行的代码,以定义使用自动化规则更新的记录。
Warning
URL 必须属于 机密;在网络公开或随意分享可能导致系统遭受恶意攻击。如有必要,请点击 重置密钥 按钮更改 URL 加密凭证。
Note
在 目标记录 字段中默认定义的代码,适用于来自其他 Odoo 数据库的网络钩子。它用于根据载荷中的信息,确定需要更新的记录。
如果您希望将网络钩子的内容用于查找记录以外的目的(例如 创建 记录),您唯一的选择是使用 执行代码 操作。在这种情况下, 目标记录 字段必须包含任何有效代码,但其结果不会对自动操作本身产生任何影响。
网络钩子的内容可在服务器操作上下文中作为
payload变量(即包含传入请求的 GET 参数或 POST JSON 主体的字典)使用。
您也可以选择 记录调用 来记录收到的载荷,例如,确保源系统发送的数据符合预期的格式和内容。这还有助于识别和诊断可能出现的任何问题。要访问日志,请点击 自动化规则 表单顶部的 日志 智能按钮。
更多内容
操作¶
定义自动化规则的 触发器 后,点击 添加操作 以定义要执行的操作。
Tip
您可以为同一触发器/自动化规则定义多个操作。操作将按照定义的顺序执行。例如,如果您定义了 更新记录 操作,然后又定义了 发送电子邮件 操作,则电子邮件将使用更新后的值。但是,如果在 更新记录 操作之前定义了 发送电子邮件 操作,则电子邮件将使用更新操作运行 之前 设置的值。
更新记录¶
此操作允许更新记录的一个(相关)字段。点击 更新 字段,在打开的列表中选择或搜索要更新的字段;必要时点击字段名旁的向右箭头,访问相关字段列表。
如果您选择了 many2many 字段 ,请选择是通过 添加 、 移除 还是 设为 所选值来更新该字段,或者通过 清除 来更新。
Example
如果您希望自动操作从客户记录中删除标签,请将 更新 字段设置为 客户 > 标签 ,选择 通过删除 ,然后选择标签。
Tip
或者,您也可以使用 Python 代码动态设置记录的字段。为此,请选择 计算 而不是 更新 ,然后输入用于计算字段值的代码。例如,如果您希望自动化规则在任务的优先级设为 High (通过为任务加星标)时计算自定义的 日期时间字段 ,可以将触发器 优先级设为 定义为 High ,并按如下方式定义 更新记录 操作:
创建活动¶
此操作用于安排与记录关联的新活动。选择 活动类型 ,输入 标题 和描述,然后在 到期日在 字段中指定要安排活动的时间,并选择 用户类型:
要始终将活动分配给同一用户,请选择 特定用户 ,并在 负责人 字段中添加用户;
要针对动态链接到记录的用户,请选择 动态用户(基于记录) ,并根据需要更改 用户字段 。
Example
将潜在客户转化为商机后,您希望自动操作为负责该潜在客户的用户发起呼叫。要执行此操作,请将 活动类型 设为 呼叫 ,并将 用户类型 设为 动态用户(基于记录) 。
发送电子邮件和发送短信¶
这些操作用于向链接到特定记录的联系人发送电子邮件或短信。为此,请选择或创建 电子邮件模板 或 短信模板 ,然后在 发送电子邮件为 或 发送短信为 字段中选择发送电子邮件或短信的方式:
电子邮件: 将信息作为电子邮件发送给 电子邮件模板 的收件人。
消息: 在记录上发布消息,并通知记录的关注者。
备注: 将消息作为内部备注发送,内部用户可在沟通栏中看到。
短信(无备注): 将信息作为文本信息发送给 短信模板 的收件人。
短信(带备注): 将短信作为文本消息发送给 短信模板 的收件人,并作为内部备注发布在沟通栏中。
仅限备注: 只将消息作为内部备注发布在沟通栏中。
发送 WhatsApp¶
Important
要实现 WhatsApp 消息的自动发送,必须先创建一个或多个 WhatsApp 模板 。
此操作用于向与特定记录关联的联系人发送 WhatsApp 消息。为此,请从下拉菜单中选择合适的 WhatsApp 模板 。
添加关注者和移除关注者¶
使用这些操作可将现有联系人(取消)订阅该记录。
创建记录¶
此操作用于在任何模型上创建新记录。
在 要创建的记录 字段中选择所需的模型,该字段默认包含当前模型。为记录指定 名称 ,然后,如果您想在另一个模型上创建记录,请在 链接字段 字段中选择一个字段,以链接触发创建新记录的那条记录。
Note
与 链接字段 字段相关的下拉列表仅包含当前模型上现有的 one2many 字段 ,这些字段与目标模型上的 many2one 字段 相链接。
Tip
如有必要,您还可以使用 更新记录 操作创建另一条自动化规则,以更新新记录的字段。例如,您可以使用 创建记录 操作创建新的项目任务,然后使用 更新记录 操作将其分配给特定用户。
执行代码¶
此操作用于执行 Python 代码。您可以在 代码 选项卡中使用以下变量编写代码:
env:触发操作的环境model:触发操作所在记录的模型;是一个空记录集record:触发操作所在的记录;可能为空records:在多模式下触发操作的所有记录组成的记录集;可以留空time、datetime、dateutil、timezone:常用的 Python 库float_compare:用于按特定精度比较浮点数的实用函数log(message, level='info'):用于在 ir.logging 表中记录调试信息的日志函数_logger.info(message):用于在服务器日志中输出消息的记录器UserError:用于引发面向用户的警告消息的异常类Command:x2many 命令命名空间action = {...}:用于返回一个操作
Tip
可用的变量在 代码 和 帮助 选项卡中均有说明。
发送 Webhook 通知¶
此操作允许将 字段 的值以 POST 请求发送到 URL 字段中指定的 URL。
示例载荷 会使用随机记录的数据(如果没有可用记录,则使用虚拟数据)提供请求中所含数据的预览。
执行现有行动¶
此操作用于同时触发多个操作(与当前模型相关联)。为此,请点击 添加一行 ,然后在 添加:子操作 弹出窗口中选择现有操作,或点击 新建 创建新操作。