自动化规则¶
自动化规则允许执行一个或多个预定义操作以响应特定触发器,例如,当字段设置为特定值时创建活动,或在最后一次更新 7 天后归档记录。
创建自动化规则时,可以 添加必须满足的条件 才能运行自动化规则,例如,商机必须分配给特定的销售人员,或者记录的状态不能是 草稿 。
要使用 Odoo Studio 创建自动化规则:
打开 Studio 并点击 自动化 ,然后点击 新建 。
为自动化规则起一个清晰、有意义的名称,以标识其用途。
选择 触发器 ,并根据需要根据所选触发器填写屏幕上出现的字段。
在 待执行操作 选项卡中单击 添加操作 。
小技巧
如果未输入明确的名称,操作名称将根据您定义的操作自动生成;名称可以随时更新。
选择 操作 的 类型 ,并根据所选操作填写相关字段。
单击 保存并关闭 ,或者要定义其他操作,请单击 保存并新建 。
Example
为确保对不太满意的客户进行跟进,此自动化规则在为满意度百分比低于 30% 的客户创建销售订单 3 个月后创建一项活动。
触发器¶
触发器 用于定义需要发生何种事件才能运行自动化规则。可用的触发器取决于 模型 。总共有五种触发器类别:
添加条件¶
域过滤器允许您确定自动化规则应定位或排除的记录。高效的过滤可以提高整体性能,因为它避免了对不受规则影响的记录进行不必要的处理。
小技巧
在创建自动化规则之前 激活开发者模式 ,以便在添加域过滤器时具有最大的灵活性。
根据所选的触发器,可以定义一个或多个记录在触发器发生 之前 和/或 之后 必须满足的条件。
更新前域 定义了记录在触发器事件发生 之前 必须满足的条件,例如,记录必须具有
类型 = 客户发票和状态 = 已过账。激活开发者模式后,单击 编辑域 (如果可用),然后单击 新建规则 。
应用于 域定义了记录在触发器事件发生 之后 必须满足的条件,例如,客户发票必须具有
付款状态 = 部分付款。激活开发者模式后,单击 编辑域 ,然后单击 新建规则 。
小技巧
如果未激活开发者模式,要定义 应用于 域,请单击 添加条件 。完成或删除建议的条件。要添加条件,请单击 新建规则 。
当 触发器 发生时,例如,已过账客户发票的付款状态被更新,自动化规则会检查定义的条件,并且仅当记录符合这些条件时才执行 操作 。
Example
如果应在为现有联系人(是个人而非公司)首次设置电子邮件地址(与修改电子邮件地址相对)时执行自动化操作,请使用 电子邮件未设置 和 不是公司 作为 更新前域 ,并使用 电子邮件已设置 作为 应用于 域。
注解
创建记录时不会检查 更新前域 。
值更新¶
当数据库中发生特定更改时触发自动化操作。此类别中可用的触发器取决于模型,并基于常见更改,例如添加特定标签(例如,到任务)或设置字段值(例如,设置 用户 字段)。
选择触发器,然后根据需要选择一个值。
电子邮件活动¶
在接收或发送电子邮件时触发自动化操作。
时间条件¶
在相对于日期字段或记录创建或更新的时间点触发自动化操作。以下触发器可用:
基于日期字段 :操作在所选日期字段的日期之前或之后的指定时间段触发。
创建后 :操作在记录创建并保存后的指定时间段触发。
最后更新后 :操作在现有记录编辑并保存后的指定时间段触发。
然后您可以定义:
一个 延迟 :指定操作应触发的 分钟 、 小时 、 天 或 月 数。如果选择了 基于日期字段 触发器,操作可以在所选日期字段 之后 或 之前 触发。
注解
默认情况下,调度程序每 240 分钟(即 4 小时)检查一次时间触发的自动化规则。此频率通常足以满足诸如订单日期后 3 个月或最后更新后 7 天等延迟。
对于少于 2400 分钟(即 40 小时)的延迟,系统会重新计算此检查的频率,以确保更精细的延迟(例如,事件开始日期和时间前 1 小时,或创建后 30 分钟)可以尽可能接近地得到遵守。
要查看或手动编辑时间触发自动化规则的调度程序频率,在 启用开发者模式 的情况下,单击 计划操作 。
在打开的 自动化规则:检查并执行 计划操作中,根据需要更新 执行频率 字段的值。单击 手动运行 会立即触发计划操作运行。要返回自动化规则设置,请单击面包屑中的自动化规则名称。
额外条件 :单击 添加条件 ,然后指定自动化规则运行所需满足的条件。单击 新规则 以添加另一个条件。
当达到延迟且满足条件时,操作将被执行。
自定义¶
触发自动化操作:
创建时 :当记录首次保存时。
创建和编辑时 :当记录首次保存及之后的任何时间保存时。
删除时 :当记录被删除时。
UI 更改时 :当在 表单视图 上更改字段值时,即使在记录保存之前。
对于 创建和编辑时 和 UI 更改时 触发器,您 必须 在 更新时 字段中选择用于触发自动化规则的字段。
警告
如果未在 更新时 字段中选择任何字段,则每个记录可能会多次执行自动化操作。
可选地,您还可以在 应用范围 字段中定义触发自动化规则所需的附加条件。
注解
UI 更改时 触发器只能与 执行代码 操作一起使用,并且仅在手动进行修改时有效。如果字段通过另一个自动化规则更改,则不会执行该操作。
外部¶
使用 webhook 基于外部系统或应用程序中的特定事件触发自动化操作。
在 Odoo 中配置 webhook(生成 webhook 的 URL 并定义目标记录)后,需要在外部系统中实现它。
警告
强烈建议 在决定使用 Webhook 并在整个实施过程中咨询开发人员、解决方案架构师或其他技术角色。如果配置不当,Webhook 可能会破坏 Odoo 数据库,并且恢复可能需要时间。
注解
还可以设置一个自动化操作,当您的 Odoo 数据库中发生事件时, 将数据发送到外部系统的 webhook 。
操作¶
定义自动化规则的 触发器 后,单击 待执行操作 标签页中的 添加操作 以定义要执行的操作。
小技巧
您可以为同一个自动化规则定义多个操作。默认情况下,操作按照定义的顺序执行。
这意味着,例如,如果您定义了一个 更新记录 操作,然后定义了一个 发送电子邮件 操作,其中电子邮件引用了已更新的字段,则电子邮件将使用更新后的值。但是,如果 发送电子邮件 操作在 更新记录 操作之前定义,则电子邮件将使用记录更新 之前 设置的值。
要更改已定义操作的顺序,请单击操作旁边的 (拖动柄) 图标并将其拖动到所需位置。
更新记录¶
此操作用于更新记录的(相关)字段之一。以下选项可用:
更新 :使用指定值更新所选字段。
使用 AI 更新 :根据提供的 AI 提示动态更新所选字段。此选项需要安装 Odoo AI 应用。
序列 :使用定义的序列更新所选字段。
计算 :使用 Python 代码动态更新所选字段。
要定义操作:
选择 更新 、 使用 AI 更新 、 序列 或 计算 选项(根据情况),然后选择或搜索要更新或计算的字段。如果需要,单击字段名称旁边的 (右箭头) 以访问相关字段列表。
根据所选选项提供相关信息。
更新¶
选择或输入字段的更新值。
如果要更新 多对多字段 ,请选择是通过 添加 、 移除 或 设置为 所选值还是通过 清空 来更新字段。
Example
如果您希望自动化操作从客户记录中移除标签,请将 更新 字段设置为 客户 > 标签 ,选择 通过移除 ,然后选择要移除的标签。
使用 AI 更新¶
输入提示以指示 Odoo AI 如何更新字段。输入 / 打开 AI 提示工具;使用 字段选择器 告诉 Odoo AI 检查哪些相关字段以获取上下文,并使用 记录选择器 为更新后的字段提供可能的值。
Example
如果您希望自动化规则根据员工的专长更新新创建任务的 受理人 字段,您可以编写提示来指示 Odoo AI 检查任务的 显示名称 字段以获取上下文,然后分配最合适的员工。
序列¶
选择现有序列,或者要创建新序列:
单击 搜索更多 ,然后单击 新建 。
在打开的窗口中,输入序列的 名称 。
配置序列,根据需要添加 前缀 和/或 后缀 。
小技巧
在 前缀 和/或 后缀 中使用动态占位符,例如 带世纪的当前年份:%(year)s ,以创建包含当前年份、月份等元素的序列。可能的占位符显示在窗口底部。
单击 保存 。
Example
如果您希望自动化操作在每次创建新客户时创建一个顺序客户参考,请将 序列 字段设置为 参考 ,然后在下拉菜单中单击 搜索更多 。单击 新建 以创建新序列。
在此示例中,每个新客户都会收到一个带有前缀 `
计算¶
输入用于计算字段值的代码。
创建记录和复制记录¶
这些操作用于在任何模型上创建新的或复制的记录。
要定义操作:
选择 创建记录 或 复制记录 作为操作的 类型 后,在 要创建的记录 字段中选择所需的模型;默认情况下,该字段包含当前模型。
为记录指定一个 名称 ,或者,如果操作是复制记录,请在 复制自 字段中指明要复制的记录。
如果要在另一个模型上创建新的或复制的记录,请在 链接字段 字段中选择一个字段,以链接触发新记录或复制记录创建的记录。
Example
如果您希望自动化规则在机会设置为 已赢得 时复制项目(例如,带有预定义任务的项目模板),请在 项目 模型上添加一个自定义的 相关机会 多对一字段 ,并在 线索 模型上添加一个自定义的 相关项目 一对多字段 ,然后提供有关要复制的记录的以下详细信息:
小技巧
您可以创建另一个带有 更新记录 操作的自动化规则,以在必要时更新新记录或复制记录的字段。例如,您可以使用 创建记录 操作创建新的项目任务,然后使用 更新记录 操作将其分配给特定用户。
创建活动¶
此操作用于安排与记录链接的新活动。
要定义操作:
选择 创建活动 作为操作的 类型 后,从下拉菜单中选择适当的 活动类型 。
输入 标题 。
通过在 截止日期在 字段中指定 天 、周 或 月 的数量来指示活动应在何时完成。
选择 用户类型 :
要始终将活动分配给同一用户,请选择 特定用户 ,然后在 负责人 字段中添加该用户。
要动态定位与记录链接的用户,请选择 动态用户(基于记录) 。如果需要,通过单击占位符字段名称,然后在出现的列表中选择或搜索用户字段来更改 用户字段 。单击字段名称旁边的 (右箭头) 允许您在需要时访问相关字段。
可选地,添加 备注 以提供有关活动的更多信息。
Example
在向具有高预期收入的机会发送提案后,您希望为销售人员的团队负责人创建一个活动,以致电潜在客户,从而增加成交的机会。
为此,将 活动类型 设置为 电话 ,并将 用户类型 设置为 动态用户(基于记录) 。单击占位符字段并选择 销售团队 ,然后单击 (右箭头) 并选择 团队负责人 。
发送电子邮件和发送短信¶
这些操作用于向与特定记录链接的联系人发送电子邮件或短信。
要定义操作:
选择 发送电子邮件 或 发送短信 作为操作的 类型 后,选择或创建 电子邮件模板 或 短信模板 。
在 发送电子邮件为 或 发送短信为 字段中,选择您希望如何发送电子邮件或短信。
对于电子邮件,选择:
电子邮件 :将消息作为电子邮件发送给 电子邮件模板 的收件人。
消息 :在记录上发布消息并通知记录的关注者。
备注 :将消息作为内部备注发送,在讨论记录中对内部用户可见。
对于短信,选择:
短信(无备注) :将消息作为短信发送给 短信模板 的收件人。
短信(带备注) :将消息作为短信发送给 短信模板 的收件人,并将其作为内部备注发布在讨论记录中。
仅备注 :仅将消息作为内部备注发布在讨论记录中。
发送 WhatsApp¶
重要
要自动发送 WhatsApp 消息,必须创建一个或多个 WhatsApp 模板 。
此操作用于向与特定记录链接的联系人发送 WhatsApp 消息。
选择 发送 WhatsApp 作为操作的 类型 后,从下拉菜单中选择适当的 WhatsApp 模板 。
添加关注者和移除关注者¶
此操作用于将现有联系人订阅/取消订阅为记录的关注者。
选择 添加关注者 或 移除关注者 作为操作的 类型 后,根据情况选择 关注者类型 :
要始终添加/移除相同的联系人,请选择 特定关注者 ,然后从下拉菜单中选择联系人。可以添加/移除多个联系人。
要动态添加/移除与记录关联的联系人,请选择 动态关注者 。如果需要,通过单击占位符字段名称,然后在出现的列表中选择或搜索合作伙伴字段来更改 关注者字段 。单击字段名称旁边的 (右箭头) 允许您在需要时访问相关字段。
Example
为了让客户了解项目进度,此自动化操作在项目任务设置为 进行中 时将相关客户添加为关注者。
执行代码¶
此操作用于执行 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 = {...}:用于返回一个操作
小技巧
可用变量在 代码 和 帮助 标签页中均有描述。
发送 Webhook 通知¶
此操作用于将所选 字段 的值通过 POST API 请求发送到 URL 字段中指定的 webhook URL。
示例有效载荷 提供了请求中包含的数据预览,使用随机记录的数据或虚拟数据(如果没有可用记录)。
注解
还可以设置一个自动化操作,当外部系统中发生预定义事件时, 使用 webhook 从外部系统接收数据 。
多重操作¶
此操作用于同时触发多个操作(链接到当前模型)。
要定义操作:
选择 多重操作 作为操作的 类型 后,单击 添加操作 。
在 添加:子操作 弹出窗口中:
选择一个或多个现有操作并单击 选择 ;或
单击 新建 ,定义要执行的操作,然后单击 保存并关闭 或,要创建其他操作,单击 保存并新建 。
根据需要重复多次。