ExamplesLink

Actions are entity dependent APIs which you want to expose which may have an outcome of events. Most basic example is the login action which generates an oauth2 token as an outcome.

Use action to expose endpoints for your forms and processes. Here is an example of creating a "/action/project/new_task" API:

New task action YAML

Actions:
- Name: new_task
  Label: New to do
  OnType: project
  InstanceOptional: true
  InFields:
  - ColumnName: description
    Name: Description
    ColumnType: label
  - ColumnName: schedule
    Name: Scheduled at
    ColumnType: date
  OutFields:
  - Type: todo
    Method: POST
    Attributes:
      schedule: "~schedule"
      title: "~description"
      project_id: "$.reference_id"
  - Type: client.notify
    Method: ACTIONRESPONSE
    Attributes:
      type: success
      message: Created new todo, taking you to it.
      title: Wait for it

New task action JSON

{
  "Actions": [
    {
      "Name": "new_task",
      "Label": "New to do",
      "OnType": "project",
      "InstanceOptional": true,
      "InFields": [
        {
          "ColumnName": "description",
          "Name": "Description",
          "ColumnType": "label"
        },
        {
          "ColumnName": "schedule",
          "Name": "Scheduled at",
          "ColumnType": "date"
        }
      ],
      "OutFields": [
        {
          "Type": "todo",
          "Method": "POST",
          "Attributes": {
            "schedule": "~schedule",
            "title": "~description",
            "project_id": "$.reference_id"
          }
        },
        {
          "Type": "client.notify",
          "Method": "ACTIONRESPONSE",
          "Attributes": {
            "type": "success",
            "message": "Created new todo, taking you to it.",
            "title": "Wait for it"
          }
        }
      ]
    }
  ]
}