---
order: 7
navTitle: 消息通知
---
# 工作流消息通知

流程流转时，系统能自动给相关负责人发送通知消息，比如张三发起请假申请，其组长李四会收到一条待办任务的通知。通过消息中携带的链接，能直接打开对应的处理页面，提升流程处理效率。常见的通知消息如下图所示：

|待办通知|结果通知|退回通知|
|--|--|--|
|![待办通知](./images/2021-10-26-17-47-14.png)|![结果通知](./images/2021-10-26-17-49-28.png)|![退回通知](./images/2021-10-26-17-50-40.png)|

## 启用消息通知{#enable}

工作流可以自动给处理人发送通知消息，提醒处理人及时处理流程中的任务。在系统中内置了多种通用的消息模板，支持发送常规的待办、退回以及结果通知等，想启用消息通知时，只需要做如下配置：

![简单配置](./images/2021-11-19-09-31-43.png)

1. **配置摘要字段**：在**流程**>**属性栏**>**数据**设置中可配置[摘要字段](#summary)，[摘要字段](#summary)是流程中的主要信息，发送的消息通知中会带上[摘要字段](#summary)的内容，配置说明可参考后续文档章节[摘要字段](#summary)
2. **启用消息通知**：在**流程**>**属性栏**>**高级**设置中可勾选**启用通知**，勾选后系统会按照内置的消息模板在工作流流转过程中发送通知消息

完成上述配置后，工作流就可以自动发送通知消息了，如果系统内置的默认模板不足以满足需求，可继续参考后续文档章节[消息的自定义配置](#custom)。

:::tip 相关系统设置

消息能正常发送，还需要系统的管理员做一些前置的准备工作：

1. 在**系统设置**>**外部服务**中需要配置[邮件](../../sys-settings/more/remote-services/email.md)和[短信](../../sys-settings/more/remote-services/message.md)服务，如果需要发送微信消息的，需要参考配置文档[微信登录](../../devops/sso/wechat.md)。
2. 在**系统设置**>**协同办公**中需要配置好默认的**消息模板**，系统中有提供默认的模板配置，不用修改就能正常使用，管理员也可对按照自身系统业务对默认模板进行一些自定义修改，详细说明可参考文档[协同办公](https://docs.succapp.com/v5/sys/settings/co)。

:::

## 消息的自定义配置{#custom}

当系统内置的消息模板不足以满足用户的自定义需求时，比如某个工作流在领导审批节点发送的待办消息需要和其他节点的待办消息有所不同，则此时可以针对这些差异来自行配置个性化的消息模板，工作流中的消息配置如下图所示：

![消息配置](./images/2021-11-15-09-33-09.png)

点击**工具栏**>**消息模板**设置后会弹出**消息模板**设置对话框，以自定义领导审批节点的待办消息模板为例，消息模板的配置分为以下步骤：

1. **管理消息模板**：在**消息模板**的配置对话框中，左侧显示了所有已配置的模板，其中包含了系统自带的默认模板，用户可新增模板或对已有模板进行修改，此时我们需要新增一个模板并给其设置一个有意义的业务描述。更多设置说明可参考[消息模板管理](#manage)章节
2. **设置匹配规则**：选择新增的模板，需要配置好对应的[匹配规则](#match)，由于是需要配置待办的消息通知，此时对应的**匹配事件**是**分配任务**，匹配节点为**领导审批**。更多配置说明可参考[匹配规则设置](#match)章节
3. **设置推送内容**：确认好[匹配规则](#match)后，需要继续确定消息的[推送内容](#content)，可以在模板中配置自定义的摘要信息或是直接选择其他的内容模板作为推送的主要内容。更多配置说明可参考[推送内容设置](#content)章节

## 消息模板管理{#manage}

在工作流中，可对使用的消息模板进行增删管理。在[协同办公](https://docs.succapp.com/v5/sys/settings/co)设置中提供了系统默认的模板设置，可以满足常规的待办，催办以及结果通知需求。工作流中的消息模板设置初始默认继承[协同办公](https://docs.succapp.com/v5/sys/settings/co)中的设置，用户可在工作流中做自定义修改。模板管理的操作说明如下：

1. 点击工具栏中的**消息模板**按钮，可以打开消息模板设置对话框
2. 可直接点击对话框中左侧的**添加**按钮添加消息模板，也可点击**添加**按钮右侧的下拉箭头使用其他添加选项
   1. **通知**：添加**通知**类型的消息模板
   2. **抄送**：添加**抄送**类型的消息模板
   3. **系统流程模板**：被删除的**系统模板**可在此处再次添加回来，**系统模板**就是在[协同办公](https://docs.succapp.com/v5/sys/settings/co)设置中配置的模板
3. 鼠标悬停在模板上时，会显示模板的操作按钮
   1. **重置**：对于系统提供的默认模板，工作流中有自定义修改的，可以通过**重置**按钮将其还原为系统初始状态
   2. **复制**：将指定模板复制一份
   3. **删除**：将指定模板删除，如果删除的是系统模板，则可以在添加选项中的**系统流程模板**中重新添加回来

### 消息类型介绍{#type}

根据接收消息的用户不同，系统将要发送的消息分为**通知**和**抄送**两类：

1. **通知**：只会发送给当前任务对应的处理人，接收这类消息的用户通常都是在流程中需要处理任务的用户，如在请假流程中，当张三发起请假申请后，流程走到组长审批环节，此时如果设置了待办通知模板，则会给组长审批节点的[节点处理人](./candidate.md)即张三的组长发送对应的通知消息
2. **抄送**：在抄送模板设置中，需要添加抄送人，系统只会给抄送人发送对应的消息。抄送人通常是指对流程有一定关注但不参与流程任务处理的用户，如在新人考核流程中，公司的领导可能并不参与考核过程，但考核中的关键步骤的结果可能会以抄送消息的形式发给领导

:::tip 通知和抄送的区别

**通知**与**抄送**最大的区别在于**通知**消息的接收人是系统自动判断的，只会发送给节点的处理人，而**抄送**消息需要用户在对应的**抄送**模板上手动指定**抄送人**。
从配置上来说，**抄送**是**通知**的补充，当某些消息通过**通知**无法自动发送给某些未参与流程任务处理的用户时，就可以通过**抄送**消息来自由的配置发送给那些额外的用户。

:::

## 匹配规则设置{#match}

只有满足模板的匹配规则时，系统才会发送对应的消息通知，模板的匹配规则设置属性如下：

- **匹配事件**：单选，只有在节点上触发相应的[事件](#event)时，系统才会根据模板上的配置来给用户发送对应的消息，比如用户发起的请假申请在组长审批后被退回到了申请节点，则此时是在申请节点触发了**退回事件**，如果有配置了匹配**退回事件**的模板，此时会给申请人发送对应的模板消息 。有关[事件](#event)的详细说明可参考后续文档章节
- **匹配节点**：多选，默认是全部节点，可选择工作流中的[流程节点](./design.md#add-node)，和**匹配事件**搭配，只有在选择的节点上触发**匹配事件**才会发送消息
- **抄送人**：仅**抄送模板**需要设置，设置方法可参考[节点处理人设置](./candidate.md)文档，**抄送**消息只会发送给模板上配置的**抄送人**
- **匹配条件**：支持输入表达式，未设置时默认为`TRUE`，返回`FALSE`时，视为不满足发送该模板的条件，不会发送对应的模板消息

:::tip 消息的发送规则

1. 工作流消息在发送时会自动过滤掉触发消息发送时的用户，比如A、B、C三个用户同时处理某流程节点的任务，流程中配置了当**任务完成**时发送的通知消息，此时A完成了任务，通知只会发送给B、C，A作为触发消息的处理人会被自动过滤掉。
2. 工作流中配置的消息模板，按照从上到下优先匹配的原则，在同一时间内只会给同一个用户发送一种模板的消息。比如在流程中分别配置了**流程结束**以及**任务结束**时发送的消息，**流程结束**的消息模板排在**任务结束**的消息模板前面，当流程的最后一个任务完成时，此时也触发了**流程结束**事件，即同时满足了两类模板的发送条件，这两类模板如果分开来看，发送消息时都会发给用户A，但根据发送原则只会匹配到第一个模板消息。

:::

### 事件{#event}

[流程操作](./operate.md)执行完成后，会触发工作流中的相关事件，比如审批用户对当前审批的任务进行**批准**或**否决**等操作后，待审批的任务处理完成了，会触发**任务完成**事件。以简单的请假流程为例，来对事件进行说明：

| 事件 | 触发操作 | 触发方式 | 示例 |
|--|----|----|----|
|退回|退回|流程被退回到某节点|流程从组长审批节点退回到申请节点，即是在申请节点触发退回事件|
|撤回|撤回|流程任务被撤回|流程已到达组长审批节点，申请人将流程撤回到申请节点，即是在组长审批节点触发了撤回事件|
|分配任务|提交、批准|流程顺利往下进行到下一个节点|提交请假申请单，流程往下走到组长审批节点，即是在该节点触发了分配任务的事件|
|任务结束|提交、批准、否决、终止|处理人通过流程操作来处理自己的待办任务，按照操作的不同会有批准、否决、终止三类任务结束的结果|用户处理了组长审批节点的任务后，即是在组长审批节点触发了任务结束事件|
|节点完成（仅抄送模板可设置）|提交、批准、否决、终止|流程节点对应的所有任务被处理完成|会签节点，A，B，C共同处理，所有任务处理完成后触发节点完成事件|
|流程结束（仅抄送模板可设置）|提交、批准、否决、终止|流程被否决、终止或顺利走完完整流程|请假流程整个审批完成，或在中间节点被审批用户否决时触发流程结束事件|
|催办|催办|到达催办时间后系统自动催办或有其他用户手动催办|流程停留在组长审批节点事件过长，申请人对自己发起的流程进行催办，此时就是在组长审批节点触发了催办事件|
|处理人变更|签收、取消签收、转交|流程任务的处理人发生变更时|用户A将自己的任务转交给用户B处理，即为触发处理人变更事件|

## 推送内容设置{#content}

消息的推送内容主要由内容正文和链接两部分组成，在系统的[协同办公](https://docs.succapp.com/v5/sys/settings/co)设置中提供了默认的模板内容，常见的消息推送内容如下图所示：

![推送消息](./images/2021-11-19-14-49-25.png)

推送内容的具体设置属性如下：

- **消息模板**：决定了发送消息的内容，可以在**系统设置**>**协同办公**>**消息模板**中列出的模板中选择，点击**编辑模板**按钮可以跳转到[协同办公](https://docs.succapp.com/v5/sys/settings/co)中自定义模板内容，模板内容的详细设置可参考文档[协同办公](https://docs.succapp.com/v5/sys/settings/co)
- **自定义摘要**：勾选后显示**摘要字段**设置，设置说明可参考后续章节[摘要字段](#summary)。当消息中需要显示不同的摘要信息时可以设置，比如某产品的试用申请流程，只有当最后申请通过了才会在通知消息中发送有效期的信息，则此时申请通过的消息模板中可以自定义**摘要字段**，添加上这个有效期的字段
- **自定义发送方式**：[协同办公](https://docs.succapp.com/v5/sys/settings/co)中创建的模板会设置发送方式，如果需要自定义，可勾选此选项，在系统已配置的发送范围内指定发送方式，可多选
- **启用链接**：勾选后，消息中会带上跳转到任务处理页面的链接，仅用于微信、邮件，通知模板默认勾选，抄送模板默认取消勾选
- **自定义链接**：勾选**启用链接**后可以设置，勾选后可以通过如下设置自定义消息中携带的链接地址
  - **链接类型**：可选择**内部资源**或**URL**，决定了自定义的链接来源
  - **内部资源**：**链接类型**选择**内部资源**时需要设置，从系统内部中选择资源作为携带的链接地址
  - **URL**：**链接类型**选择**URL**时需要设置，直接以设置的**URL**作为携带的链接地址
  - **参数**：设置链接页面所需参数的值

### 摘要字段{#summary}

**摘要字段**是用来描述一条流程主要信息的字段，通常是选取业务表中的字段作为**摘要字段**，如在请假流程中，可设置申请人、请假开始时间以及请假天数作为**摘要字段**。在**属性栏**>**流程**>**数据**中可设置**摘要字段**：

![摘要字段](./images/2021-10-27-11-29-19.png)

1. 可点击右上角的添加按钮添加**摘要字段**
2. 添加后在**字段选择**下拉框中可选择业务表中的字段
3. 可手动设置**字段标题**，未设置时默认使用字段名称作为标题
4. 按住左侧的**拖拽图标**可调整字段间的顺序

:::tip 摘要的继承设置以及应用场景

1. 可在**流程全局**、**流程节点**以及**消息模板**中分别配置摘要字段，系统按照**消息模板**>**流程节点**>**流程全局**的优先级来确定要使用的摘要信息。
2. 由于在默认的消息模板内容中，系统只配置了通用的流程相关的信息，每个工作流的消息差异可以在**摘要字段**中体现，建议在配置工作流时同步配置**摘要字段**。
3. 摘要信息还可应用到SuperPage的[列表](../superpage/components/data/list.md)与[移动列表](../superpage/components/mobile/mobilelist.md)用于展示流程任务的待办列表等。

:::

## 流程催办{#urge}

当业务上对工作流事务的处理时间有要求时，可以对工作流设置**催办**，当任务到达催办时间且仍未被处理时，系统会自动给对应的处理人发送催办消息。这涉及到两个关键点：

1. 在[消息模板](#message-template)中需要配置匹配了**催办事件**的消息模板
2. 在**属性栏**>**流程**>**催办**中需要**启用催办**，并配置**催办日期**以及**催办时间**

![催办设置](./images/2021-10-27-15-43-45.png)

- **催办日期**：决定了任务具体在哪一天进行催办，根据以下三种标准配合设置的偏移时间来计算催办的具体日期
  - **任务到达后**：任务到达节点的那一刻开始计算，比如任务到达时是周五，偏移时间设置的是1个工作日，则会在下周一进行催办，如果是1个自然日，则是在周六进行催办
  - **截止时间前**：流程节点上可设置[截止时间](#deadline)，设置说明可参考后续章节。这种设置下会按照[截止时间](#deadline)为标准往前计算偏移量来获取催办日期，比如[截止时间](#deadline)为周五，偏移时间设置为1个工作日，则在周四时进行催办
  - **截止时间后**：按照[截止时间](#deadline)为标准往后计算偏移量来获取催办日期
- **催办时间**：可选择系统中类型为工作流的计划任务，依据任务的时间设置发送催办通知，更多可查看[计划管理](../../schedule/README.md#manage-schedule)。当计划任务执行时，会判断流程任务是否到达催办时间，到达的任务便会发出对应的催办通知

:::tip 催办的自定义设置

1. 在**属性栏**>**节点**>**催办**中可以设置**禁用催办**或**自定义催办时间**，这是为了某些流程环节不需要催办或任务紧急程度不一样时可以单独对节点有不一样的设置。
2. 上述设置是系统自动催办的设置，手动催办设置，可参考[执行流程](../superpage/design/action/execute-flow.md)文档。

:::

### 任务截止时间{#deadline}

每个任务节点都可以设置**截止时间**，系统能根据设定的**截止时间**自动对任务进行处理，催办设置中也需要依据截止时间发送催办通知。设置如下所示：

![截止时间](./images/2021-10-27-16-11-32.png)

- **截止时间**：可设置固定、动态、无三种选项，按照不同规则来确定**截止时间**
  - **固定**：**截止时间**设置为固定时，需要设置**处理时长**，系统会根据任务到达的时间加上**处理时长**得到任务的**截止时间**
  - **动态**：**截止时间**设置为动态时，需要设置**表达式**，用于用户直接在表单中指定**截止时间**的场景，表达式中通常是获取业务表中字段的值
  - **无**：无截止时间
- **超时操作**：任务到达截止时间后，会自动根据**超时操作**中的设置来处理流程任务
  - **无**：不做任何操作
  - **自动通过**：任务自动批准，流程进入到下一节点
  - **退回到上一步**：将任务退回到上一节点
  - **退回到起始节点**：将任务退回到申请节点
  - **终止流程**：将流程终止掉

:::tip 截止时间的计划任务设置

与**催办时间**类似，任务到达**截止时间**后并不会立即执行相关的**超时操作**，在项目设置的[工作流设置](../../project-manage/wfl-setting.md)中统一提供了**截止时间**的配置，只能选择系统中类型为工作流的计划任务，计划任务执行时会判断流程任务是否超时，并对超时任务进行自动处理。

:::

## 数据安全{#datasafe}

在发送的消息通知中，对携带链接的查看做了相应的**数据安全**设置，包括以下限制：

1. 流程任务的处理页面通常只有处理人以及在流程中添加了查看权限的管理员有查看权限，针对抄送模板，即便抄送人没有查看权限，比如张三的任务抄送给李四，李四默认是没有查看权限的，但此时由于李四是抄送人的关系，所以可以通过消息中携带的链接进行查看
2. 抄送人只能查看任务内容，但不能对任务进行任何操作
3. 其他无关的用户即便通过其他手段获取到消息中携带的链接，通过链接进入页面也会提示无权限
