Skip to content

Listeners

Overview

In the Informat AI Low-Code Platform, listeners are powerful tools that can trigger and execute pre-configured automation programs by monitoring specific system events. This enables developers to create responsive and intelligent applications. Listeners capture specific system events (such as data changes, user operations, etc.) and automatically execute corresponding automation programs based on predefined rules and conditions. Automation programs can include data processing, notification sending, external system integration, and other operations.

In Automation programs or Scripts, you can publish an Application Event through the Publish Application Event step. The type of Application Event needs to be preset.

Application Event Trigger Model

Important Note

Please note that listeners running on non-client side must not contain interactive steps.

Automation programs or scripts will receive a parameter of type AppEvent with the following structure:

ts
interface AppEvent {
  id: string; //Event ID
  content: object; //Event content
}

Transactions

All event listeners (except those triggered by notifications and clients) execute in the same transaction as the trigger point. For example, if an exception is thrown during the execution of an automation program that listens to the Before Data Table Record Creation event, all transactions including the record insertion will be rolled back.

For instance, when submitting data, some rule validation is required. If the rules are not met, users should not be allowed to submit data. Set up a rule-checking Automation program in the After Data Table Record Creation event listener. If the rules are not met, the Automation program executes Terminate Execution. When the system receives the Terminate Execution command, it will automatically roll back all transactions, and the data submission will fail.

Before/After Data Table Record Creation Events

Triggered after a user creates a record through a form.

TIP

Data table records created through automation or scripts will not trigger events.

When creating records, the event triggering order is:

  • Trigger the Before Data Table Record Creation event for the main table
  • For each sub-table record, trigger the Before Data Table Record Creation and After Data Table Record Creation events
  • Trigger the After Data Table Record Creation event for the main table.
json
{
    "content":{
        "record":{
            "name":"Name","age":0
        },
        "source":"form",
        "tableId":"listenerData"
    },
    "id":"record.create.before"
}
json
{
   "content": {
      "afterRecord": {
         "age": 0,
         "id": "d6dhvhodo62nl",
         "name": "Name",
         "seq": 2
      },
      "record": {
         "age": 0,
         "name": "Name"
      },
      "source": "form",
      "tableId": "listenerData"
   },
   "id": "record.create.after"
}

Before/After Data Table Record Update Events

Triggered after a user updates a record through a form.

TIP

Data table records updated through automation or scripts will not trigger events.

When updating records, the sub-table may contain three actions: Create, Update, and Delete. The event triggering order is:

  • Trigger the Before Data Table Record Update event for the main table
  • For newly added data in the sub-table, trigger the Before Data Table Record Creation and After Data Table Record Creation events in sequence
  • For updated data in the sub-table, trigger the Before Data Table Record Update and After Data Table Record Update events in sequence
  • For deleted data in the sub-table, trigger the Before Data Table Record Deletion and After Data Table Record Deletion events in sequence
  • Trigger the After Data Table Record Update event for the main table
json
{
   "content": {
      "beforeRecord": {
         "age": 100,
         "id": "xg2d0hi83cwym",
         "name": "Zhang San",
         "seq": 1
      },
      "record": {
         "id": "xg2d0hi83cwym",
         "name": "Zhang San 1"
      },
      "source": "form",
      "tableId": "listenerData",
      "updateFieldList": [
         "name"
      ]
   },
   "id": "record.update.before"
}
json
{
  "content": {
    "afterRecord": {
      "age": 100,
      "id": "xg2d0hi83cwym",
      "name": "Zhang San 1",
      "seq": 1
    },
    "beforeRecord": {
      "age": 100,
      "id": "xg2d0hi83cwym",
      "name": "Zhang San",
      "seq": 1
    },
    "record": {
      "id": "xg2d0hi83cwym",
      "name": "Zhang San 1"
    },
    "source": "form",
    "tableId": "listenerData",
    "updateFieldList": ["name"],
    "updateRowCount": 1
  },
  "id": "record.update.after"
}

Before/After Data Table Record Deletion Events

Triggered after a user deletes a record through a form.

TIP

Data table records deleted through automation or scripts will not trigger events.

When deleting records, the event triggering order is:

  • Trigger the Before Data Table Record Deletion event for the main table
  • Trigger the After Data Table Record Deletion event for the main table.

TIP

For fields of type Associated List, the deletion action only deletes the association relationship and does not actually delete the data, so it will not trigger related events of the sub-table.

json
{
   "content": {
      "record": {
         "age": 0,
         "id": "d6dhvhodo62nl",
         "name": "Bits and Pieces",
         "seq": 2
      },
      "source": "form",
      "tableId": "listenerData"
   },
   "id": "record.delete.before"
}
json
{
   "content": {
      "record": {
         "age": 0,
         "id": "d6dhvhodo62nl",
         "name": "Bits and Pieces",
         "seq": 2
      },
      "source": "form",
      "tableId": "listenerData"
   },
   "id": "record.delete.after"
}

Data Table Record Sorting Update

Triggered after a user modifies the record order through drag and drop in the table view.

json
{
   "content": {
      "beforeRowNumber": 4,
      "recordId": "gf13shmq3njqf",
      "source": "form",
      "tableId": "listenerData"
   },
   "id": "record.rownumber.update.before"
}
json
{
   "content": {
      "afterRowNumber": 3,
      "beforeRowNumber": 4,
      "recordId": "gf13shmq3njqf",
      "source": "form",
      "tableId": "listenerData"
   },
   "id": "record.rownumber.update.after"
}

After Data Table Record Comment Creation

Triggered after a user posts a comment through a form.

json
{
  "content": {
    "comment": {
      "content": "{\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"text\":\"Please refer to 1.3 \",\"type\":\"text\"},{\"type\":\"mention\",\"content\":[{\"text\":\"@Wang Yanfeng \",\"type\":\"text\"}],\"attrs\":{\"id\":\"nx8hcjsq4xk8z\",\"label\":\"Wang Yanfeng \"}},{\"text\":\" Please modify\",\"type\":\"text\"}]}]}",
      "id": 0,
      "parentId": 0,
      "recordId": "xg2d0hi83cwym",
      "tableId": "listenerData"
    }
  },
  "id": "record.comment.create.after"
}

After Data Table Record Comment Deletion

Triggered after a user deletes a comment through a form.

json
{
  "content": {
    "comment": {
      "content": "{\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"text\":\"Please refer to 1.3 \",\"type\":\"text\"},{\"type\":\"mention\",\"content\":[{\"text\":\"@Wang Yanfeng \",\"type\":\"text\"}],\"attrs\":{\"id\":\"nx8hcjsq4xk8z\",\"label\":\"Wang Yanfeng \"}},{\"text\":\" Please modify\",\"type\":\"text\"}]}]}",
      "id": 0,
      "parentId": 0,
      "recordId": "xg2d0hi83cwym",
      "tableId": "listenerData"
    }
  },
  "id": "record.comment.delete.after"
}

Automation Execution

In the Informat AI Low-Code Platform, automation execution listener events can monitor three key events of automation execution: Execution Start, Execution End, and Execution Failure. This listener event can be used to record the automation execution process, with the following usage scenarios:

  • Record execution process as logs for statistical analysis
  • Perform global permission checks before execution
  • Send execution records to message queues and push to monitoring systems
json
{
   "content": {
      "args": [
         "lefttop"
      ],
      "draft": false,
      "id": "trang7ixclbtg",
      "isDraft": false,
      "uuid": "trang7ixclbtg:sesgv3tgz0el"
   },
   "id": "app.automatic.before"
}
json
{
   "content": {
      "args": [
         "lefttop"
      ],
      "draft": false,
      "id": "trang7ixclbtg",
      "isDraft": false,
      "uuid": "trang7ixclbtg:sesgv3tgz0el"
   },
   "id": "app.automatic.success"
}

Scheduled Task Execution

In the Informat AI Low-Code Platform, scheduled task execution listener events can monitor three key events of scheduled task execution: Execution Start, Execution Success, and Execution Failure. This listener event can be used to record the scheduled task process, with the following usage scenarios:

  • Record execution process as logs for statistical analysis
  • Send execution records to message queues and push to monitoring systems
json
{
   "content": {
      "endTime": 1718092915132,
      "id": "tlijinwmbtnet",
      "name": "Create a record every day at 10 AM, 2 PM, and 4 PM",
      "requestId": "arqwu3bsirbh8",
      "serverId": "informat-biz2-prd",
      "startTime": 1718157714369
   },
   "id": "app.schedule.before"
}
json
{
   "content": {
      "endTime": 1718092915132,
      "id": "tlijinwmbtnet",
      "name": "Create a record every day at 10 AM, 2 PM, and 4 PM",
      "requestId": "arqwu3bsirbh8",
      "serverId": "informat-biz2-prd",
      "startTime": 1718157714369
   },
   "id": "app.schedule.success"
}

Enter Application

The Enter Application listener event is triggered after a user enters the application from the client side. This listener can be used to implement the following application scenarios:

  • Use the Display Dialog Box automation step to show a welcome dialog box on the client side, displaying welcome information or application usage guidelines to users
  • Use the Set Badge automation step to set the badge displayed by the application on the workbench interface, such as the number of unread messages or pending tasks
  • Record the user's login time in a log table for subsequent analysis or auditing

TIP

This listener event is triggered on the client side, and the called automation can contain interactive logic.

json
{
  "eventContent": {
    "app": {
      "appData": {},
      "appDefineBuild": 1905,
      "appDefineEditable": true,
      "appDefineId": "demoApp",
      "appDefineVersion": "1.5",
      "badge": "重要",
      "color": "#9470DC",
      "companyId": "icxt9rsd1f0ai",
      "createAccountAvatar": "pic8.png",
      "createAccountId": "ek5veueb6c9zg",
      "createAccountName": "Mr. Zeng",
      "createTime": 1700628728441,
      "dbIndex": 0,
      "designerAccountList": [],
      "designerEditAccountList": [],
      "designerPublishAccountList": [],
      "enableAppJsonLog": false,
      "enableAppLog": false,
      "enableSaveProcessLog": false,
      "env": "dev",
      "envPropertyList": [
        {
          "id": "payID",
          "value": "覆盖的值"
        }
      ],
      "groupId": "qvwfhdf328lex",
      "hint": "gongnengyanshi-v1.5",
      "icon": "noto-glowing-star",
      "id": "i1mwqy35y88hl",
      "isArchive": false,
      "isInstance": false,
      "isMaintained": false,
      "isUnderPublish": false,
      "logLevel": "DEBUG",
      "monitorAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr"],
      "name": "功能演示-v1.5",
      "platform": "web",
      "rowNumber": 1,
      "saveProcessLogDays": 0,
      "saveProcessLogTypes": [],
      "underPublishServerId": "informat-biz-prd",
      "updateAccountId": "yvkc2kwpy3xzr",
      "updateTime": 1718159093356
    },
    "platform": "web",
    "query": {
      "appId": "i1mwqy35y88hl"
    },
    "url": "https://next.informat.cn/app/i1mwqy35y88hl",
    "user": {
      "avatar": "pic7.png",
      "companyRoleList": ["admin"],
      "departmentList": ["root"],
      "id": "xwi9jogl4fcx4",
      "leaderList": [],
      "name": "郭",
      "roleList": ["admin"],
      "userInfo": {
        "department": "销售部",
        "role": "admin"
      }
    }
  },
  "eventId": "app.enter",
  "id": "app.enter"
}

Enter Module

The Enter Module listener event is triggered after a user enters a specific module of the application from the client side. This listener can be used to implement the following application scenarios:

  • Use the Display Dialog Box automation step to show a welcome dialog box on the client side, displaying welcome information or application usage guidelines to users
  • Record the user's access time in a log table for subsequent analysis or auditing

TIP

This listener event is triggered on the client side, and the called automation can contain interactive logic.

json
{
  "appId": "i1mwqy35y88hl",
  "eventContent": {
    "app": {
      "appData": {
        "taskNum": 6
      },
      "appDefineBuild": 1079,
      "appDefineEditable": true,
      "appDefineId": "demoApp",
      "appDefineVersion": "1.0",
      "badge": "新的提醒",
      "color": "c1",
      "companyId": "icxt9rsd1f0ai",
      "createAccountAvatar": "pic8.png",
      "createAccountId": "ek5veueb6c9zg",
      "createAccountName": "Mr. Zeng",
      "createTime": 1700628728441,
      "dbIndex": 0,
      "designerAccountList": ["ek5veueb6c9zg", "xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "fjgefcpk28dsj", "jsonlai"],
      "enableAppJsonLog": false,
      "enableAppLog": false,
      "enableSaveProcessLog": false,
      "env": "dev",
      "envPropertyList": [],
      "groupId": "qvwfhdf328lex",
      "hint": "gongnengyanshi-v1.0",
      "icon": "noto-aries",
      "id": "i1mwqy35y88hl",
      "isArchive": false,
      "isInstance": false,
      "isMaintained": false,
      "isUnderPublish": false,
      "logLevel": "DEBUG",
      "monitorAccountList": ["xwi9jogl4fcx4", "skydu"],
      "name": "功能演示-v1.0",
      "platform": "web",
      "rowNumber": 1,
      "saveProcessLogDays": 0,
      "saveProcessLogTypes": [],
      "underPublishServerId": "informat-biz-prd",
      "updateAccountId": "ek5veueb6c9zg",
      "updateTime": 1703572224491
    },
    "moduleKey": "listenerData",
    "platform": "web",
    "query": {
      "appId": "i1mwqy35y88hl",
      "moduleId": "snahtjpjwbz3f"
    },
    "url": "https://next.informat.cn/app/i1mwqy35y88hl/table/snahtjpjwbz3f",
    "user": {
      "avatar": "db379f35e7554f65bb51462a4fb03ac5.jpg",
      "companyRoleList": ["normal", "designer", "admin"],
      "departmentList": ["root"],
      "id": "fjgefcpk28dsj",
      "leaderList": ["skydu"],
      "name": "李健",
      "roleList": ["admin", "manager"],
      "userInfo": {
        "department": "销售部",
        "role": "admin"
      }
    }
  },
  "eventId": "app.module.enter",
  "id": "app.module.enter",
  "moduleId": "snahtjpjwbz3f"
}

Application Publish

Triggered after an application is published.

json
{
  "content": {
    "appDefineId": "demoApp",
    "appId": "i1mwqy35y88hl",
    "build": 1906,
    "companyId": "icxt9rsd1f0ai",
    "publishUser": "肖建宇"
  },
  "id": "app.publish"
}

Member Events

Member events are triggered after operations such as adding, deleting, or modifying member roles through the Member Management interface.

json
{
   "content": {
      "appDefineId": "demoApp",
      "appId": "i1mwqy35y88hl",
      "companyId": "icxt9rsd1f0ai",
      "roleList": [
         "admin"
      ],
      "userId": "bt4tdzx8vtjoe"
   },
   "id": "app.member.add.after"
}
json
{
   "content": {
      "appDefineId": "demoApp",
      "appId": "i1mwqy35y88hl",
      "companyId": "icxt9rsd1f0ai",
      "roleList": [
         "admin"
      ],
      "userId": "pacrwba408wd0"
   },
   "id": "app.member.remove.after"
}
json
{
   "content": {
      "afterRoleList": [
         "admin",
         "ceo",
         "manager"
      ],
      "appDefineId": "demoApp",
      "appId": "i1mwqy35y88hl",
      "beforeRoleList": [
         "admin",
         "ceo"
      ],
      "companyId": "icxt9rsd1f0ai",
      "userId": "yvkc2kwpy3xzr"
   },
   "id": "app.member.role.update.after"
}

Task Status Change

Triggered when tasks belonging to the monitored workflow in the application undergo behaviors such as Delegate, Transfer, Jump Node, Complete Task, Claim Task, and Start Task.

TIP

This listener event is triggered on the client side, and the called automation can contain interactive logic.

json
{
  "eventId": "client.bpmn.task.change",
  "eventContent": {
    "app": {
      "createAccountName": "Mr. Zeng",
      "visitModuleKey": "listenWorkflow",
      "designerPublishAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "color": "#9470DC",
      "groupId": "qvwfhdf328lex",
      "appDefineEditable": true,
      "enableSaveProcessLog": false,
      "icon": "noto-glowing-star",
      "createAccountId": "ek5veueb6c9zg",
      "appData": {
        "taskNum": 0
      },
      "createAccountAvatar": "pic8.png",
      "platform": "web",
      "monitorAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr"],
      "isInstance": false,
      "logLevel": "DEBUG",
      "isMaintained": false,
      "dbIndex": 0,
      "enableAppJsonLog": false,
      "saveProcessLogTypes": [],
      "isUnderPublish": false,
      "id": "i1mwqy35y88hl",
      "rowNumber": 1,
      "appDefineBuild": 2485,
      "appDefineId": "demoApp",
      "envPropertyList": [
        {
          "id": "payID",
          "value": "覆盖的值"
        }
      ],
      "isArchive": false,
      "underPublishServerId": "informat-biz2-prd",
      "appDefineVersion": "1.5",
      "designerAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "lxx2gntjifxbh", "bt4tdzx8vtjoe"],
      "saveProcessLogDays": 0,
      "updateTime": 1719557611739,
      "updateAccountId": "jsonlai",
      "env": "dev",
      "designerEditAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "badge": "重要",
      "companyId": "icxt9rsd1f0ai",
      "createTime": 1700628728441,
      "hint": "gongnengyanshi-v1.5",
      "name": "功能演示-v1.5",
      "enableAppLog": false
    },
    "query": {
      "appId": "i1mwqy35y88hl",
      "moduleId": "ztkva3xsc2vbw"
    },
    "moduleId": "ztkva3xsc2vbw",
    "user": {
      "userInfo": {
        "role": "admin",
        "department": "销售部"
      },
      "leaderList": [],
      "name": "赖泽城",
      "companyRoleList": ["normal", "designer"],
      "avatar": "8e321dac2d1e465f9b503360af87930e.jpg",
      "id": "jsonlai",
      "departmentList": ["root"],
      "roleList": ["admin"]
    },
    "url": "https://next.informat.cn/app/i1mwqy35y88hl/bpmn/ztkva3xsc2vbw"
  },
  "id": "client.bpmn.task.change"
}

Process Status Change

Triggered when the monitored workflow in the application undergoes behaviors such as Revoke and Delete.

TIP

This listener event is triggered on the client side, and the called automation can contain interactive logic.

json
{
  "eventId": "client.bpmn.process.change",
  "eventContent": {
    "app": {
      "createAccountName": "Mr. Zeng",
      "visitModuleKey": "listenWorkflow",
      "designerPublishAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "color": "#9470DC",
      "groupId": "qvwfhdf328lex",
      "appDefineEditable": true,
      "enableSaveProcessLog": false,
      "icon": "noto-glowing-star",
      "createAccountId": "ek5veueb6c9zg",
      "appData": {
        "taskNum": 0
      },
      "createAccountAvatar": "pic8.png",
      "platform": "web",
      "monitorAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr"],
      "isInstance": false,
      "logLevel": "DEBUG",
      "isMaintained": false,
      "dbIndex": 0,
      "enableAppJsonLog": false,
      "saveProcessLogTypes": [],
      "isUnderPublish": false,
      "id": "i1mwqy35y88hl",
      "rowNumber": 1,
      "appDefineBuild": 2488,
      "appDefineId": "demoApp",
      "envPropertyList": [
        {
          "id": "payID",
          "value": "覆盖的值"
        }
      ],
      "isArchive": false,
      "underPublishServerId": "informat-biz2-prd",
      "appDefineVersion": "1.5",
      "designerAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "lxx2gntjifxbh", "bt4tdzx8vtjoe"],
      "saveProcessLogDays": 0,
      "updateTime": 1719558525789,
      "updateAccountId": "jsonlai",
      "env": "dev",
      "designerEditAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "badge": "重要",
      "companyId": "icxt9rsd1f0ai",
      "createTime": 1700628728441,
      "hint": "gongnengyanshi-v1.5",
      "name": "功能演示-v1.5",
      "enableAppLog": false
    },
    "instanceId": "6f5771e7-351d-11ef-b137-a6c0b0be7615",
    "query": {
      "ri": "6f5771e7-351d-11ef-b137-a6c0b0be7615",
      "appId": "i1mwqy35y88hl",
      "moduleId": "ztkva3xsc2vbw"
    },
    "moduleId": "ztkva3xsc2vbw",
    "type": "delete",
    "user": {
      "userInfo": {
        "role": "admin",
        "department": "销售部"
      },
      "leaderList": [],
      "name": "赖泽城",
      "companyRoleList": ["normal", "designer"],
      "avatar": "8e321dac2d1e465f9b503360af87930e.jpg",
      "id": "jsonlai",
      "departmentList": ["root"],
      "roleList": ["admin"]
    },
    "url": "https://next.informat.cn/app/i1mwqy35y88hl/bpmn/ztkva3xsc2vbw?ri=6f5771e7-351d-11ef-b137-a6c0b0be7615"
  },
  "id": "client.bpmn.process.change"
}

After Data Table Record Creation (Client Triggered)

Triggered after data table records are created via user form submission or user workflow submission.

TIP

This listener event is triggered on the client side, and the called automation can contain interactive logic.

json
{
  "eventId": "client.record.create.after",
  "eventContent": {
    "app": {
      "createAccountName": "Mr. Zeng",
      "visitModuleKey": "listenerData",
      "designerPublishAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "color": "#9470DC",
      "groupId": "qvwfhdf328lex",
      "appDefineEditable": true,
      "enableSaveProcessLog": false,
      "icon": "noto-glowing-star",
      "createAccountId": "ek5veueb6c9zg",
      "appData": {
        "taskNum": 0
      },
      "createAccountAvatar": "pic8.png",
      "platform": "web",
      "monitorAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr"],
      "isInstance": false,
      "logLevel": "DEBUG",
      "isMaintained": false,
      "dbIndex": 0,
      "enableAppJsonLog": false,
      "saveProcessLogTypes": [],
      "isUnderPublish": false,
      "id": "i1mwqy35y88hl",
      "rowNumber": 1,
      "appDefineBuild": 2488,
      "appDefineId": "demoApp",
      "envPropertyList": [
        {
          "id": "payID",
          "value": "覆盖的值"
        }
      ],
      "isArchive": false,
      "underPublishServerId": "informat-biz2-prd",
      "appDefineVersion": "1.5",
      "designerAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "lxx2gntjifxbh", "bt4tdzx8vtjoe"],
      "saveProcessLogDays": 0,
      "updateTime": 1719558525789,
      "updateAccountId": "jsonlai",
      "env": "dev",
      "designerEditAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "badge": "重要",
      "companyId": "icxt9rsd1f0ai",
      "createTime": 1700628728441,
      "hint": "gongnengyanshi-v1.5",
      "name": "功能演示-v1.5",
      "enableAppLog": false
    },
    "query": {
      "appId": "i1mwqy35y88hl",
      "moduleId": "snahtjpjwbz3f"
    },
    "tableId": "snahtjpjwbz3f",
    "source": "form",
    "user": {
      "userInfo": {
        "role": "admin",
        "department": "销售部"
      },
      "leaderList": [],
      "name": "赖泽城",
      "companyRoleList": ["normal", "designer"],
      "avatar": "8e321dac2d1e465f9b503360af87930e.jpg",
      "id": "jsonlai",
      "departmentList": ["root"],
      "roleList": ["admin"]
    },
    "url": "https://next.informat.cn/app/i1mwqy35y88hl/table/snahtjpjwbz3f"
  },
  "id": "client.record.create.after"
}

After Data Table Record Update (Client Triggered)

Triggered after data table records are updated via user form submission or user workflow submission.

TIP

This listener event is triggered on the client side, and the called automation can contain interactive logic.

json
{
  "eventId": "client.record.update.after",
  "eventContent": {
    "app": {
      "createAccountName": "Mr. Zeng",
      "visitModuleKey": "listenerData",
      "designerPublishAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "color": "#9470DC",
      "groupId": "qvwfhdf328lex",
      "appDefineEditable": true,
      "enableSaveProcessLog": false,
      "icon": "noto-glowing-star",
      "createAccountId": "ek5veueb6c9zg",
      "appData": {
        "taskNum": 0
      },
      "createAccountAvatar": "pic8.png",
      "platform": "web",
      "monitorAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr"],
      "isInstance": false,
      "logLevel": "DEBUG",
      "isMaintained": false,
      "dbIndex": 0,
      "enableAppJsonLog": false,
      "saveProcessLogTypes": [],
      "isUnderPublish": false,
      "id": "i1mwqy35y88hl",
      "rowNumber": 1,
      "appDefineBuild": 2488,
      "appDefineId": "demoApp",
      "envPropertyList": [
        {
          "id": "payID",
          "value": "覆盖的值"
        }
      ],
      "isArchive": false,
      "underPublishServerId": "informat-biz2-prd",
      "appDefineVersion": "1.5",
      "designerAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "lxx2gntjifxbh", "bt4tdzx8vtjoe"],
      "saveProcessLogDays": 0,
      "updateTime": 1719558525789,
      "updateAccountId": "jsonlai",
      "env": "dev",
      "designerEditAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "badge": "重要",
      "companyId": "icxt9rsd1f0ai",
      "createTime": 1700628728441,
      "hint": "gongnengyanshi-v1.5",
      "name": "功能演示-v1.5",
      "enableAppLog": false
    },
    "recordList": ["c67wwyqeth1up"],
    "query": {
      "ri": "c67wwyqeth1up",
      "appId": "i1mwqy35y88hl",
      "moduleId": "snahtjpjwbz3f"
    },
    "tableId": "snahtjpjwbz3f",
    "source": "form",
    "user": {
      "userInfo": {
        "role": "admin",
        "department": "销售部"
      },
      "leaderList": [],
      "name": "赖泽城",
      "companyRoleList": ["normal", "designer"],
      "avatar": "8e321dac2d1e465f9b503360af87930e.jpg",
      "id": "jsonlai",
      "departmentList": ["root"],
      "roleList": ["admin"]
    },
    "url": "https://next.informat.cn/app/i1mwqy35y88hl/table/snahtjpjwbz3f?ri=c67wwyqeth1up"
  },
  "id": "client.record.update.after"
}

After Data Table Record Deletion (Client Triggered)

Triggered after data table records are deleted via user form submission or user workflow submission.

TIP

This listener event is triggered on the client side, and the called automation can contain interactive logic.

json
{
  "eventId": "client.record.delete.after",
  "eventContent": {
    "app": {
      "createAccountName": "Mr. Zeng",
      "visitModuleKey": "listenerData",
      "designerPublishAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "color": "#9470DC",
      "groupId": "qvwfhdf328lex",
      "appDefineEditable": true,
      "enableSaveProcessLog": false,
      "icon": "noto-glowing-star",
      "createAccountId": "ek5veueb6c9zg",
      "appData": {
        "taskNum": 0
      },
      "createAccountAvatar": "pic8.png",
      "platform": "web",
      "monitorAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr"],
      "isInstance": false,
      "logLevel": "DEBUG",
      "isMaintained": false,
      "dbIndex": 0,
      "enableAppJsonLog": false,
      "saveProcessLogTypes": [],
      "isUnderPublish": false,
      "id": "i1mwqy35y88hl",
      "rowNumber": 1,
      "appDefineBuild": 2488,
      "appDefineId": "demoApp",
      "envPropertyList": [
        {
          "id": "payID",
          "value": "覆盖的值"
        }
      ],
      "isArchive": false,
      "underPublishServerId": "informat-biz2-prd",
      "appDefineVersion": "1.5",
      "designerAccountList": ["xwi9jogl4fcx4", "skydu", "nx8hcjsq4xk8z", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "lxx2gntjifxbh", "bt4tdzx8vtjoe"],
      "saveProcessLogDays": 0,
      "updateTime": 1719558525789,
      "updateAccountId": "jsonlai",
      "env": "dev",
      "designerEditAccountList": ["xwi9jogl4fcx4", "skydu", "jsonlai", "yvkc2kwpy3xzr", "skydu2", "nx8hcjsq4xk8z"],
      "badge": "重要",
      "companyId": "icxt9rsd1f0ai",
      "createTime": 1700628728441,
      "hint": "gongnengyanshi-v1.5",
      "name": "功能演示-v1.5",
      "enableAppLog": false
    },
    "recordList": ["c67wwyqeth1up"],
    "query": {
      "appId": "i1mwqy35y88hl",
      "moduleId": "snahtjpjwbz3f"
    },
    "tableId": "snahtjpjwbz3f",
    "user": {
      "userInfo": {
        "role": "admin",
        "department": "销售部"
      },
      "leaderList": [],
      "name": "赖泽城",
      "companyRoleList": ["normal", "designer"],
      "avatar": "8e321dac2d1e465f9b503360af87930e.jpg",
      "id": "jsonlai",
      "departmentList": ["root"],
      "roleList": ["admin"]
    },
    "url": "https://next.informat.cn/app/i1mwqy35y88hl/table/snahtjpjwbz3f?ri"
  },
  "id": "client.record.delete.after"
}