自动化规则¶
自动化规则允许针对特定触发执行一个或多个预定义操作,例如,当某个字段设置为特定值时创建活动,或在最后一次更新 7 天后归档记录。
创建自动化规则时,可以 添加自动化规则运行必须满足的 条件,例如,机会必须分配给特定的销售人员,或记录的状态必须不是 草稿 。
使用 Odoo 定制 创建自动化规则:
开启 Studio 并点击 自动化 ,然后点击 新建 。
给自动化规则起一个清晰、有意义的名字,以明确其目的。
选择 触发器 并根据所选触发器填写屏幕上出现的字段。
点击 待办操作 选项卡中的 添加操作。
选择操作的 类型,并根据所选操作填写相关字段。
点击 保存并关闭 或 保存并新建 ,定义其他操作。
Example
为确保跟进满意度较低的客户,该自动化规则会在销售订单创建 3 个月后为满意度低于 30% 的客户创建活动。
触发器¶
触发器 用于定义自动化规则运行所需的事件类型。可用的触发器取决于 模型 。共有五个触发器类别:
添加条件¶
域名筛选器允许您确定自动化规则应针对或排除的记录。高效筛选可避免对不受规则影响的记录进行不必要的处理,从而提高整体性能。
小技巧
在创建自动化规则前 激活开发者模式 ,以便最灵活地添加域筛选器。
根据所选触发器的不同,可以定义一个或多个记录在触发 前 和/或触发 后 必须满足的条件。
域名更新前 定义了记录在触发事件发生 之前 必须满足的条件,例如,记录必须具有
类型 = 客户发票和状态 = 已发布。激活开发者模式后,点击 编辑域 (如果可用),然后点击 新规则 。
应用于 域定义了触发事件发生 后 记录必须满足的条件,例如,客户发票必须具有
付款状态 = 部分支付。激活开发者模式后,点击 编辑域 然后点击 新规则 。
小技巧
如果未激活开发者模式,要定义 应用于 域,请点击 添加条件 。完成或删除建议的条件。要添加条件,请点击 新规则 。
当 触发 时,例如,已入账客户发票的付款状态被更新,自动化规则会检查所定义的条件,并仅在记录符合这些条件时执行 操作 。
Example
如果是个人而非公司的现有联系人首次设置电子邮件地址(与修改电子邮件地址相反)时应执行自动操作,则使用 电子邮件未设置 和 公司未设置 作为 更新前域 ,并使用 电子邮件已设置 作为 应用 域。
注解
更新前域 在记录创建时不会执行检查。
值更新¶
当数据库中发生特定变化时触发自动操作。这类触发器取决于模型,并基于常见的更改,如添加特定标记(如添加到任务中)或设置字段值(如设置 用户 字段)。
选择触发器,然后根据需要选择数值。
电子邮件活动¶
接收或发送电子邮件时触发自动操作。
时间条件¶
在与日期字段或记录的创建或更新相关的时间点触发自动操作。可使用以下触发器:
基于日期字段:操作会在所选日期字段日期的 之前或之后 的定义时间段内触发,例如合同结束日期前 30 天。
创建后 :在创建并保存记录后的一段时间内触发该操作。
上次更新后 :在编辑并保存现有记录一段时间后触发该操作。
要配置 时间条件 触发器,请 激活开发者模式:
从 时间条件 类别中选择适当的 触发器。如果选择了 基于日期字段 触发器,请选择相关的日期字段。
配置 延迟 以确定操作的 执行日期时间。为此,输入操作应在多久之后触发的 分钟、小时、天 或 月 数。如果选择了 基于日期字段 触发器,操作可以在所选日期字段的 之后 或 之前 触发。
可选地,添加条件,记录在规则触发之前和/或之后必须满足这些条件。
点击 手动保存。
点击 计划操作 以打开 自动化规则:检查并执行 计划操作。
注解
此计划操作检查自上次运行以来已到达的执行日期时间,并在相关时执行关联的操作。默认情况下,计划操作设置为每 执行 4 小时,这对于订单日期后 3 个月或上次更新后 7 天等延迟通常足够。
如果任何自动化规则的时间触发器延迟少于 40 小时的等效时间,例如事件开始日期时间前 3 小时,计划操作的频率会自动增加,例如每 执行 18 分钟。这样可以使操作在更接近其计划执行日期时间时执行。
点击左上角的 手动运行。
警告
此步骤对于防止规则对历史记录进行追溯运行至关重要。手动运行计划操作会初始化自动化规则中 上次运行 的时间戳,这是规则 执行逻辑 的关键元素。
点击面包屑中的自动化规则名称以返回自动化规则设置。
添加要执行的 操作,定义完所有操作后,点击 手动保存。
操作在达到执行日期时间后,自动化规则:检查并执行 计划操作首次运行时执行,并且条件满足时执行。
执行逻辑¶
使用基于时间的触发器时,仅当执行日期时间落在计划操作上次运行和当前运行(无论是计划运行还是手动运行) 之间 时,操作才会执行,即:
上次运行 –> 执行日期时间 –> 当前运行
注解
手动运行 自动化规则:检查并执行 计划操作不一定会导致规则的操作被执行。测试具有时间触发器的自动化规则时,请确保此序列为真,然后检查操作是否已执行。
Example
10 月 15 日上午,您创建了一条自动化规则,在 合同结束日期 前 30 天触发电子邮件发送;合同在其结束日期晚上 11:59 结束。创建规则时,自动化规则:检查并执行 计划操作已于上午 11:00 手动运行,并设置为此后每四小时运行一次。
此新自动化规则将适用于结束日期在规则创建后至少 30 天 之后 的合同,即结束日期为 11 月 14 日或更晚。
对于结束日期为 11 月 14 日的合同,操作的执行日期时间为 10 月 15 日晚上 11:59。因此,操作将在 自动化规则:检查并执行 计划操作在该日期和时间过后首次运行时执行,即:
计划操作的上次运行:10 月 15 日晚上 11:00
执行日期时间:10 月 15 日晚上 11:59
计划操作的当前运行:10 月 16 日凌晨 3:00
自定义¶
触发自动操作:
创建时 :首次保存记录时。
创建和编辑时 :首次保存记录时和以后任何时候。
删除时 :删除记录时。
用户界面更改时 :当字段值在 表格视图 上更改时,甚至在保存记录之前。
对于 创建或编辑记录时 和 界面变更时 这两种触发器,您必须随后在 更新字段时 选项中选定用于触发自动化规则的对应字段。
警告
如果在 更新时 字段中没有选择任何字段,该自动化操作可能会对同一条记录执行多次。
(可选)您还可以在 应用于 字段中定义额外的触发条件。
注解
UI 更改 触发器只能与 执行代码 动作一起使用,并且只在手动修改时起作用。如果字段是通过其他自动化规则更改的,则不会执行该操作。
外部¶
使用 网络钩子 ,根据外部系统或应用程序中的特定事件触发自动操作。
在 Odoo 中配置网络钩子(生成网络钩子 URL 并定义目标记录)后,需要在外部系统中实施。
警告
强烈建议 在决定使用网络钩子和整个实施过程中咨询开发人员、解决方案架构师或其他技术人员。如果配置不当,网络钩子可能会扰乱 Odoo 数据库,并可能需要一段时间才能恢复。
注解
还可以设置一个自动操作,当 Odoo 数据库中发生事件时,该操作 向外部系统的网络钩子 发送数据。
另请参阅
操作¶
定义自动化规则的 触发 后,点击 应采取的操作 选项卡中的 添加操作 以定义要执行的操作。
小技巧
如果没有输入明确的名称,操作名称将根据您定义的操作自动生成;名称可随时更新。
您可以为同一自动化规则定义多个操作。默认情况下,操作会按照定义的顺序执行。
这意味着,例如,如果您定义了一个 更新记录 操作,然后又定义了一个 发送电子邮件 操作,其中电子邮件引用了已更新的字段,则电子邮件将使用已更新的值。但是,如果在 更新记录 操作之前定义了 发送电子邮件 操作,则电子邮件将使用更新记录 之前 设置的值。
要更改已定义操作的顺序,请点击操作旁边的 (拖动柄) 图标,并将其拖动到所需位置。
更新记录¶
此操作用于更新记录的一个(相关)字段。有以下选项:
更新 :使用指定值更新所选字段。
AI 更新 :根据所提供的人工智能提示动态更新所选字段。此选项需要安装 Odoo AI 应用程序。
序列 :使用定义的序列更新所选字段。
计算 :使用 Python 代码动态更新所选字段。
定义操作:
选择 更新 、AI更新 、序列 或 计算 选项后,选择或搜索要更新或计算的字段。如有需要,请点击字段名旁的 (右箭头) 以访问相关字段列表。
根据所选选项提供相应信息。
更新¶
选择或输入字段的更新值。
如果要更新的是 多对多字段 ,请选择该字段的更新方式:是通过 添加 、移除 或 设置为 所选值,还是通过 清空 来操作。
Example
若需通过自动化动作从客户记录中移除某个标签,请将 更新 字段设置为 客户 > 标签 ,选择 移除 方式,然后选择要移除的标签。
AI 更新¶
输入提示,指示 Odoo AI 如何更新字段。键入 / 打开 AI 提示工具 ;使用 字段选择器 告诉 Odoo AI 要检查哪些相关字段,以及 记录选择器 为更新字段提供可能的值。
Example
如果您希望自动化规则根据员工的专长更新新创建任务的 负责人 字段,您可以编写一个提示,指示 Odoo AI 检查任务的 显示名称 字段的上下文,然后分配最合适的员工。
序列¶
选择现有序列,或按以下步骤新建序列:
点击 更多搜索 ,然后点击 新建 。
在弹出的窗口中,输入序列的 名称 。
在 序列 选项卡中,配置序列:
前缀 :在序列中的下一个数字 之前 添加的字符。
后缀 :在序列中下一个数字 后 添加的字符。
序列大小 :决定序列中每个数字的位数。如有必要,会在数字前加上前导零,以达到指定的序列大小,例如,序列大小为
5时,序列中的第一个数字为00001。步骤 :确定序列中数字之间的增量。
下一个编号 :序列中将使用的下一个数字,不包含前导零。
小技巧
使用如
%(year)s或%(month)s之类的动态占位符作为 前缀 和/或 后缀 ,以创建包含当前年份、月份等元素的序列。可能的占位符显示在窗口底部。要使用子序列(例如,使序列每年或每月重新开始),请启用 按日期范围使用子序列 ,然后为每个日期范围 添加一行 并指明该范围的 下一个编号 。
点击 保存 。
Example
如果您希望自动操作在每次创建新客户时创建一个顺序客户参考,请将 序列 字段设置为 参考 ,然后在下拉菜单中点击 搜索更多 。点击 新建 创建新序列。
在此示例中,每位新客户会收到一个带有前缀 #-REF-%(year)s- 的顺序参考号,其中 %(year)s 是包含世纪的当前年份,后缀为 /CL 。例如: #-REF-2025-00001/CL 、 #-REF-2025-00002/CL 等。
计算¶
输入用于计算字段值的代码。
创建记录与复制记录¶
此类动作用于在任何模型上创建新记录或复制现有记录。
定义操作:
选择 创建记录 或 复制记录 作为相关的 类型 操作,在 待创建记录 字段中选择所需的模型;该字段默认包含当前模型。
指定记录的 名称 ;若为复制记录操作,请在 复制来源 字段中指明被复制的原记录。
若需在其他模型上创建新记录或复制记录,请在 链接字段 中选择相应字段,以关联触发此操作的原始记录。
Example
若需在商机状态设为 已赢单 时,通过自动化规则复制项目(例如包含预设任务的项目模板),请在 项目 模型中创建自定义的关联商机 多对一字段 ,并在线索模型中创建自定义的关联项目 一对多字段 ,随后按以下说明配置被复制记录的详细信息:
小技巧
若需更新新建记录或复制记录的字段,您可创建包含 更新记录 操作的其它自动化规则。例如:通过 创建记录 动作创建新的项目任务后,可使用 更新记录 动作将其分派给指定用户。
创建活动¶
该操作用于安排与记录相关联的新活动。
定义操作:
将 创建活动 选为 类型 操作,从下拉菜单中选择适当的 活动类型 。
输入 标题 。
通过在 截止于 字段中指定相应的 天 、周 或 月 数,来设定活动的预期完成时间。
选择 用户类型 :
若需始终将活动分配给同一用户,请选择 指定用户 ,然后在 负责人 字段中添加该用户。
若需动态指定与记录相关联的用户,请选择 动态用户(基于记录) 。如有需要,可通过点击占位字段名称来更改 用户字段 ,并在弹出的列表中选择或搜索相应的用户字段。点击字段名称旁的 可访问相关字段(如需)。
可选操作:添加 备注 以提供关于活动的更多信息。
Example
在向高预期收入的商机发送方案后,您可为销售团队负责人创建一项致电潜在客户的活动,以提高成交机会。
要执行此操作,请将 活动类型 设置为 电话 ,并将 用户类型 设置为 动态用户(基于记录) 。点击占位字段,选择 销售团队 ,接着点击 (右箭头) 并选择 团队负责人 。
发送电子邮件和发送短信¶
这些操作用于向链接到特定记录的联系人发送电子邮件或短信。
定义操作:
选择 发送电子邮件 或 发送短信 作为 类型 操作,选择或创建 电子邮件模板 或 短信模板 。
在 发送电子邮件为 或 发送电子邮件为 字段中,选择发送电子邮件或短信的方式。
对于电子邮件,请选择:
电子邮件 :将信息作为电子邮件发送给 电子邮件模板 的收件人。
消息 :在记录上发布消息,并通知记录的关注者。
备注 :将消息作为内部备注发送,内部用户可在沟通栏中看到。
对于短信,请选择:
短信(无备注) :将信息作为文本信息发送给 短信模板 的收件人。
短信(带备注) :将短信作为文本消息发送给 短信模板 的收件人,并作为内部备注发布在沟通栏中。
仅限备注 :只将消息作为内部备注发布在沟通栏中。
发送 WhatsApp¶
重要
要自动发送 WhatsApp 消息,必须创建一个或多个 WhatsApp 模板 。
此操作用于向链接到特定记录的联系人发送 WhatsApp 消息。
将 发送 WhatsApp 选为 类型 操作,从下拉菜单中选择适当的 WhatsApp 模板。
添加关注者和删除关注者¶
此操作用于订阅/退订现有联系人为记录的关注者。
选择 添加关注者 或 删除关注者 作为相关的 类型 操作,然后选择 关注者类型 :
要始终添加/删除相同的联系人,请选择 特定关注者 ,然后从下拉菜单中选择联系人。可以添加/删除多个联系人。
要动态添加/删除与记录链接的联系人,请选择 动态关注者 。如有需要,请更改 关注者字段 ,方法是点击占位符字段名,然后在出现的列表中选择或搜索伙伴字段。点击字段名旁的 (右箭头) ,可根据需要访问相关字段。
Example
为了让客户了解项目的进展情况,当项目任务设置为 进行中 时,该自动操作会将相关客户添加为关注者。
执行代码¶
此操作用于执行 Python 代码。您可以使用以下变量将代码写入 代码 选项卡:
env:触发操作的环境模型:触发操作的记录的模型;是一个无效记录集记录:触发操作的记录;可能无效记录:在多模式下触发操作的所有记录的记录集;可留空time、datetime、dateutil、timezone:实用的Python时间处理库float_compare:根据特定精度比较浮点数的实用程序函数log(message, level='info'):在 ir.logging 表中记录调试信息的日志函数_logger.info(message):在服务器日志中发布消息的日志程序UserError:用于发出面向用户的警告信息的异常类指令:x2many 指令命名空间操作 = {...}:返回一个操作
小技巧
可用变量在 代码 和 帮助 选项卡中均有说明。
另请参阅
发送 Webhook 通知¶
此操作用于向 URL 字段中指定的 webhook URL 发送包含所选 字段 值的 POST API 请求。
示例数据负载 可预览请求中包含的数据,这些数据来自随机记录(若存在记录)或虚拟数据(若无可用记录)。
注解
您还可以设置自动化动作,以便在外部系统发生预定义事件时,通过网络钩子接收来自该外部系统的数据 。
多重操作¶
此动作用于同时触发多个(与当前模型关联的)动作。
配置操作步骤:
选择 多重操作 作为操作的 类型 ,然后点击 添加操作 。
在 添加:子操作 弹出窗口中:
选择一个或多个现有操作,然后点击 选择 ;或
点击 新建 ,定义要执行的动作,随后点击 保存并关闭 ;如需继续创建其他动作,可点击 保存并新建 。
按需重复上述步骤。