4. 自动化流程

两套互补机制驱动 CRM 生命周期:

  • Automation —— 事件驱动的图编排,响应 crm_lead_status = qualified 并创建对应的 Opportunity
  • BPMN —— 对大额交易进行人工审批

预计耗时:35–45 分钟。

4.1 Automation:lead → opportunity

打开 Automation → New flow:

  • 触发器:ON_RECORD_UPDATE,model:crm_lead,谓词:status == 'qualified' && previous.status != 'qualified'
  • Action 1:EXECUTE_COMMAND —— commandCode 设为 crm:create_account,params 映射客户字段
  • Action 2:EXECUTE_COMMAND —— commandCode 设为 crm:create_opportunity,params 携带 crm_opp_account_idcrm_opp_name;阶段由命令的 autoSetFields 默认置为初始态 discovery
  • Action 3:SEND_NOTIFICATION —— config.typein_app,recipients 指向 lead 的 owner

Automation 流程列表

上图每一行是一条 flow。点 Edit 进入图形画布 —— 左侧组件库列出所有 trigger / action 节点类型,拖到画布上连边即可。右侧面板配置选中的节点。

Automation 图形编辑器 —— trigger → action 节点画布

底层这张图会编译为 SmartEngine —— action → serviceTask,condition → gateway。编译器细节见 Flow Designer

4.2 BPMN:交易审批

打开 BPMN Designer → New process,命名为 crm_opportunity_approval:

BPMN 流程列表

+ 新建流程(或行内的 编辑)进入 BPMN 设计器画布 —— 事件、任务、网关在左侧组件库;中间是放置和连线的画布;右侧面板配置选中节点的属性(流程名称、标识、撤回/抄送策略)。

BPMN 流程设计器 —— 组件库 + 画布 + 流程属性

  1. 起始事件 —— 由一个 executionMode: BPM 的命令(例如你自定义的 crm:submit_opportunity)触发
  2. Gateway —— 例如 crm_opp_expected_amount >= 50000(阈值按业务设定)
  3. User task —— 受理人 = opportunity.account.owner.manager
  4. Service task —— 审批通过时将 crm_opp_stage 置为 qualification;驳回时置为 closed_lost

把命令绑定到流程,是在命令定义的 executionConfig 里声明 BPM 执行模式与 processKey:

{
  "code": "crm:submit_opportunity",
  "type": "action",
  "modelCode": "crm_opportunity",
  "executionConfig": {
    "executionMode": "BPM",
    "processKey": "crm_opportunity_approval"
  }
}

命令配置随插件 resourceDirscommands 目录导入(参见 插件开发)。命令的 handler / 字段映射类绑定走独立的 bindingRules.json(一个顶层数组,每项含 commandCode / ruleType / handlerClass 等),写在 commands.json 里的 inline bindingRules 会被静默忽略 —— 红线 #6。

4.3 活动 feed

详情页的 recent-activity block(第 2 章预留)监听 crm.opportunity.stage_changed 事件。配置一个简单 block,从 ab_data_change_log 按记录 id 过滤读取即可。

4.4 验证

  • 资格化一个 lead → 确认创建了对应的 Opportunity,且 owner 收到站内(in_app)通知
  • 创建一条 crm_opp_expected_amount = 80000 的 opportunity,并调用绑定流程的命令 → manager 的待办列表里出现该任务
  • 审批通过 → crm_opp_stage 变为 qualification
  • 活动 feed 中出现带作者和时间戳的条目

下一步

第 5 章 → 构建 Dashboard