自動化規則¶
自动化规则允许针对特定触发执行一个或多个预定义操作,例如,当某个字段设置为特定值时创建活动,或在最后一次更新 7 天后归档记录。
创建自动化规则时,可以 添加自动化规则运行必须满足的 条件,例如,机会必须分配给特定的销售人员,或记录的状态必须不是 草稿。
使用 Odoo 定制 创建自动化规则:
开启 Studio 并点击 自动化,然后点击 新建。
给自动化规则起一个清晰、有意义的名字,以明确其目的。
选择 触发器 并根据所选触发器填写屏幕上出现的字段。
点击 应采取的行动 选项卡中的 添加操作。
小訣竅
如果没有输入明确的名称,操作名称将根据您定义的操作自动生成;名称可随时更新。
选择 操作 的 类型,并根据所选操作填写相关字段。
点击 保存并关闭 或 保存并新建,定义其他操作。
Example
为确保跟进满意度较低的客户,该自动化规则会在销售订单创建 3 个月后为满意度低于 30% 的客户创建活动。
觸發¶
触发器 用于定义自动化规则运行所需的事件类型。可用的触发器取决于 模型。共有五个触发器类别:
添加条件¶
域名筛选器允许您确定自动化规则应针对或排除的记录。高效筛选可避免对不受规则影响的记录进行不必要的处理,从而提高整体性能。
小訣竅
在创建自动化规则前 :ref:` 激活开发者模式 <developer-mode>`,以便最灵活地添加域筛选器。
根据所选触发器的不同,可以定义一个或多个记录在触发*前*和/或触发*后*必须满足的条件。
域名更新前 定义了记录在触发事件发生*之前*必须满足的条件,例如,记录必须具有
类型 = 客户发票和状态 = 已发布。激活开发者模式后,点击 编辑域`(如果可用),然后点击 :guilabel:`新规则。
应用于 域定义了触发事件发生*后*记录必须满足的条件,例如,客户发票必须具有
付款状态 = 部分支付。激活开发者模式后,点击 编辑域 然后点击 新规则。
小訣竅
如果未激活开发者模式,要定义 应用于 域,请点击 添加条件。完成或删除建议的条件。要添加条件,请点击 新规则。
当 触发 时,例如,已入账客户发票的付款状态被更新,自动化规则会检查所定义的条件,并仅在记录符合这些条件时执行 操作 。
Example
如果是个人而非公司的现有联系人首次设置电子邮件地址(与修改电子邮件地址相反)时应执行自动操作,则使用 电子邮件未设置`和 `公司未设置`作为 :guilabel:`更新前域,并使用`电子邮件已设置`作为 :guilabel:`应用`域。
備註
:guilabel:`更新前域`在记录创建时不会执行检查。
數值已更新¶
当数据库中发生特定变化时触发自动操作。这类触发器取决于模型,并基于常见的更改,如添加特定标记(如添加到任务中)或设置字段值(如设置 用户 字段)。
选择触发器,然后根据需要选择数值。
電郵活動¶
接收或发送电子邮件时触发自动操作。
時間條件¶
在与日期字段或记录的创建或更新相关的时间点触发自动操作。可使用以下触发器:
基于日期字段:在所选日期字段的日期之前或之后的一段时间内触发操作。
创建后:在创建并保存记录后的一段时间内触发该操作。
上次更新后:在编辑并保存现有记录一段时间后触发该操作。
然后,您可以定义:
延迟:指定触发操作的 分钟』、:guilabel:`小时』、:guilabel:`天`或 :guilabel:`月`个数。如果选择了 :guilabel:`基于日期字段 触发器,则可在所选日期字段的 之后 或 之前 触发操作。
備註
默认情况下,调度程序每 240 分钟或 4 小时检查一次时间触发的自动化规则。对于订单日期后 3 个月或上次更新后 7 天等延迟情况,这个频率一般就足够了。
对于少于相当于 2400 分钟或 40 小时的延迟,系统会重新计算该检查的频率,以确保尽可能遵守更细化的延迟,如事件开始日期和时间前 1 小时或创建后 30 分钟。
要查看或手动编辑时间触发自动化规则的调度频率,在 开发者模式已激活 时,请点击 计划操作。
在打开的 自动化规则:检查和执行 计划动作中,根据需要更新 执行每个 字段的值。点击 手动运行 会触发计划动作立即运行。要返回自动化规则设置,请点击面包屑中的自动化规则名称。
附加条件: 点击 添加条件,然后指定自动化规则运行时需要满足的条件。点击 新规则 添加其他条件。
当达到延迟时间并满足条件时,就会执行该操作。
自訂¶
触发自动操作:
创建时:首次保存记录时。
创建和编辑时:首次保存记录时和以后任何时候。
删除时:删除记录时。
用户界面更改时:当字段值在 表格视图 上更改时,甚至在保存记录之前。
对于:guilabel:创建或编辑记录时 和:guilabel:界面变更时 这两种触发器,您必须随后在 更新字段时 选项中选定用于触发自动化规则的对应字段。
警告
如果在 :guilabel:`更新时`字段中没有选择任何字段,该自动化操作可能会对同一条记录执行多次。
(可选)您还可以在 :guilabel:`应用于`字段中定义额外的触发条件。
備註
UI 更改 触发器只能与 执行代码 动作一起使用,并且只在手动修改时起作用。如果字段是通过其他自动化规则更改的,则不会执行该操作。
外部¶
使用 网络钩子,根据外部系统或应用程序中的特定事件触发自动操作。
在 Odoo 中配置网络钩子(生成网络钩子 URL 并定义目标记录)后,需要在外部系统中实施。
警告
*强烈建议*在决定使用网络钩子和整个实施过程中咨询开发人员、解决方案架构师或其他技术人员。如果配置不当,网络钩子可能会扰乱 Odoo 数据库,并可能需要一段时间才能恢复。
備註
还可以设置一个自动操作,当 Odoo 数据库中发生事件时,该操作 :ref:` 向外部系统的网络钩子 <studio/automated-actions/action-webhook>` 发送数据。
也參考
動作¶
定义自动化规则的 触发 后,点击 应采取的操作 选项卡中的 添加操作 以定义要执行的操作。
更新記錄¶
此操作用于更新记录的一个(相关)字段。有以下选项:
更新:使用指定值更新所选字段。
AI 更新:根据所提供的人工智能提示动态更新所选字段。此选项需要安装 Odoo AI 应用程序。
序列:使用定义的序列更新所选字段。
计算:使用 Python 代码动态更新所选字段。
定义操作:
选择 更新、AI更新、序列 或 计算 选项后,选择或搜索要更新或计算的字段。如有需要,请点击字段名旁的 :guilabel:`(右箭头)`以访问相关字段列表。
根据所选选项提供相应信息。
更新¶
选择或输入字段的更新值。
如果要更新的是 多对多字段,请选择该字段的更新方式:是通过 添加、:guilabel:`移除`或 :guilabel:`设置为`所选值,还是通过 :guilabel:`清空`来操作。
Example
若需通过自动化动作从客户记录中移除某个标签,请将 更新 字段设置为 客户 > 标签,选择 移除 方式,然后选择要移除的标签。
AI 更新¶
输入提示,指示 Odoo AI 如何更新字段。键入 / 打开 AI 提示工具;使用 字段选择器 告诉 Odoo AI 要检查哪些相关字段,以及 记录选择器 为更新字段提供可能的值。
Example
如果您希望自动化规则根据员工的专长更新新创建任务的 负责人 字段,您可以编写一个提示,指示 Odoo AI 检查任务的 显示名称 字段的上下文,然后分配最合适的员工。
序列¶
选择现有序列,或按以下步骤新建序列:
点击 更多搜索,然后点击 新建。
在弹出的窗口中,输入序列的 名称。
In the Sequence tab, configure the sequence:
Prefix: characters added before the next number in the sequence.
Suffix: characters added after the next number in the sequence.
Sequence Size: determines the number of digits in every number in the sequence. If needed, leading zeros are added before the number to achieve the indicated sequence size, e.g., for a sequence size of
5, the first number in the sequence is00001.Step: determines the increments between the numbers in the sequence.
Next Number: the next number that will be used in the sequence, without leading zeros.
小訣竅
Use dynamic placeholders like
%(year)sor%(month)sas a Prefix and/or Suffix to create sequences with elements like current year, month, etc. Possible placeholders are shown at the bottom of the window.To use sub-sequences, e.g., to have the sequence restart each year or each month, enable Use subsequences per date_range, then Add a line for each date range and indicate the Next Number for the range.
点击 保存。
Example
如果您希望自动操作在每次创建新客户时创建一个顺序客户参考,请将 序列 字段设置为 参考,然后在下拉菜单中点击 搜索更多。点击 新建 创建新序列。
In the example, each new customer receives a sequential reference with the prefix
#-REF-%(year)s-, where %(year)s is the current year including the century, and the suffix
/CL, e.g., #-REF-2025-00001/CL, #-REF-2025-00002/CL, etc.
计算¶
输入用于计算字段值的代码。
创建记录与复制记录¶
此类动作用于在任何模型上创建新记录或复制现有记录。
定义操作:
选择 创建记录 或 复制记录 作为相关的 类型 操作,在 待创建记录 字段中选择所需的模型;该字段默认包含当前模型。
指定记录的 名称;若为复制记录操作,请在 :guilabel:`复制来源`字段中指明被复制的原记录。
若需在其他模型上创建新记录或复制记录,请在 链接字段 中选择相应字段,以关联触发此操作的原始记录。
創建活動¶
该操作用于安排与记录相关联的新活动。
定义操作:
将 创建活动 选为 类型 操作,从下拉菜单中选择适当的 活动类型。
输入 标题。
通过在 截止于`字段中指定相应的 :guilabel:`天、周 或 月 数,来设定活动的预期完成时间。
选择 用户类型:
可选操作:添加 备注 以提供关于活动的更多信息。
Example
在向高预期收入的商机发送方案后,您可为销售团队负责人创建一项致电潜在客户的活动,以提高成交机会。
要执行此操作,请将 活动类型 设置为 电话,并将 用户类型 设置为 动态用户(基于记录) 。点击占位字段,选择 销售团队,接着点击 (右箭头)`并选择 :guilabel:`团队负责人。
发送电子邮件和发送短信¶
这些操作用于向链接到特定记录的联系人发送电子邮件或短信。
定义操作:
选择 发送电子邮件 或 发送短信 作为 类型 操作,选择或创建 电子邮件模板 或 短信模板。
在 发送电子邮件为 或 发送电子邮件为 字段中,选择发送电子邮件或短信的方式。
对于电子邮件,请选择:
电子邮件:将信息作为电子邮件发送给 电子邮件模板 的收件人。
消息:在记录上发布消息,并通知记录的关注者。
备注:将消息作为内部备注发送,内部用户可在沟通栏中看到。
对于短信,请选择:
短信(无备注):将信息作为文本信息发送给 :guilabel:`短信模板`的收件人。
短信(带备注):将短信作为文本消息发送给 短信模板 的收件人,并作为内部备注发布在沟通栏中。
仅限备注:只将消息作为内部备注发布在沟通栏中。
傳送 WhatsApp¶
重要
要自动发送 WhatsApp 消息,必须创建一个或多个 WhatsApp 模板。
此操作用于向链接到特定记录的联系人发送 WhatsApp 消息。
将 发送 WhatsApp 选为 类型 操作,从下拉菜单中选择适当的 :guilabel:`WhatsApp 模板。
添加关注者和删除关注者¶
此操作用于订阅/退订现有联系人为记录的关注者。
选择 添加关注者 或 删除关注者 作为相关的 类型 操作,然后选择 关注者类型:
要始终添加/删除相同的联系人,请选择 特定关注者,然后从下拉菜单中选择联系人。可以添加/删除多个联系人。
要动态添加/删除与记录链接的联系人,请选择 动态关注者。如有需要,请更改 关注者字段 ,方法是点击占位符字段名,然后在出现的列表中选择或搜索伙伴字段。点击字段名旁的 (右箭头),可根据需要访问相关字段。
執行程式碼¶
重要
对于需要执行 自定义代码。
此操作用于执行 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 请求。
示例数据负载 可预览请求中包含的数据,这些数据来自随机记录(若存在记录)或虚拟数据(若无可用记录)。
備註
您还可以设置自动化动作,以便在外部系统发生预定义事件时,通过网络钩子接收来自该外部系统的数据 。
多重操作¶
此动作用于同时触发多个(与当前模型关联的)动作。
配置操作步骤:
选择 多重操作`作为操作的 :guilabel:`类型,然后点击 添加操作。
在 :guilabel:`添加:子操作`弹出窗口中:
选择一个或多个现有操作,然后点击 选择;或
点击 新建,定义要执行的动作,随后点击 保存并关闭;如需继续创建其他动作,可点击 保存并新建。
按需重复上述步骤。