AgentSkillsCN

meegle-api-work-item-read-and-write

Meegle OpenAPI,用于工作项的创建、读取与更新。

SKILL.md
--- frontmatter
name: meegle-api-work-item-read-and-write
description: |
  Meegle OpenAPI for creating, reading, and updating work items.
metadata:
  openclaw: {}

Meegle API — Work Item Read & Write

Create, get, and update work items in a Meegle space.


Get Work Item Creation Metadata

Retrieve creation metadata (field configuration) for a specific work item type in a Meegle space. This metadata is required to correctly construct payloads for creating or updating work items.

When to Use

  • Before creating or updating work items — to get field definitions, required fields, and default values
  • When building field_value_pairs for the create/update API
  • When needing option IDs, compound field structure, or role assignment configuration

API Spec: get_work_item_creation_metadata

yaml
name: get_work_item_creation_metadata
type: api
description: >
  Retrieve creation metadata (field configuration) for a specific work item type
  in a Meegle space. This metadata is required to correctly construct payloads
  for creating or updating work items.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: GET
  url: https://{domain}/open_api/{project_key}/work_item/{work_item_type_key}/meta
  headers:
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

path_params:
  project_key:
    type: string
    required: true
    description: >
      Space project_key or simple_name.
      project_key can be obtained by double-clicking the space name.
  work_item_type_key:
    type: string
    required: true
    description: Work item type key in the space

outputs:
  data:
    type: array
    description: >
      Field configuration list (FieldConf), including required fields,
      default values, compound fields, and role assignments.

error_mapping:
  20044: Work item type has been disabled
  30014: Work item type not found

Usage notes

  • project_key, work_item_type_key: Path parameters identifying the space and work item type.
  • Call this API before Create Work Item to get field metadata; use the result to build field_value_pairs with correct option IDs and structure.

Get Work Item Details

Retrieve detailed information for one or more work item instances under a specified Meegle space and work item type. Returns full detail-page data including system fields, custom fields, workflow status, and node/state info.

When to Use

  • When fetching full detail for specific work items by ID
  • When needing workflow state history, current nodes, or full field list
  • When building detail views or syncing work item data

API Spec: get_work_item_details

yaml
name: get_work_item_details
type: api
description: >
  Retrieve detailed information for one or more work item instances under a
  specified Meegle space and work item type. Returns full detail-page data
  including system fields, custom fields, workflow status, and node/state info.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/{project_key}/work_item/{work_item_type_key}/query
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

path_params:
  project_key:
    type: string
    required: true
    description: >
      Space identifier. Can be the space project_key or space domain name
      (simple_name).
  work_item_type_key:
    type: string
    required: true
    description: >
      Work item type key (e.g. story, bug). Obtainable via
      "Get work item types in the space".

inputs:
  work_item_ids:
    type: array
    items: integer
    required: true
    constraints:
      max_items: 50
    description: >
      List of work item instance IDs. Maximum 50 per request.
  fields:
    type: array
    items: string
    required: false
    description: |
      Field filtering rules.
      - Specify fields: ["owner","description"]
      - Exclude fields: ["-owner","-description"]
      These two modes cannot be mixed.
  expand:
    type: object
    required: false
    description: Additional expansion parameters (reserved for extended query behavior).

outputs:
  data:
    type: array
    description: >
      Work item detail objects. Includes base attributes (id, name, status,
      timestamps), workflow state history, current nodes, and full field list.

constraints:
  - work_item_ids max 50 per request

error_mapping:
  30005: Work item not found (invalid or non-existent work_item_ids)
  20028: work_item_ids exceeds 50
  30014: Work item type not found (invalid work_item_type_key)

Usage notes

  • project_key, work_item_type_key: Path parameters for the space and work item type.
  • work_item_ids: Required; max 50 IDs per request.
  • fields: Use positive values to specify returned fields, or prefix with - to exclude; do not mix modes.

Create Work Item

Create a new work item in a Meegle space. Supports multiple work item types, templates, and custom fields. Requires permission: Work Items.

When to Use

  • When creating a new task, story, bug, or other work item
  • When persisting structured work into Meegle
  • When initializing workflows or planning items programmatically

API Spec: create_work_item

yaml
name: meegle.create_work_item
description: >
  Create a new work item in a specified Meegle space.
  Supports different work item types, templates, and custom fields.
  Requires permission: Work Items.

when_to_use:
  - When creating a new task, story, bug, or other work item
  - When an AI needs to persist structured work into Meegle
  - When initializing workflows or planning items programmatically

http:
  method: POST
  path: /open_api/{project_key}/work_item/create
  auth: plugin_access_token

path_parameters:
  project_key:
    type: string
    required: true
    description: Space ID (project_key) or space domain name (simple_name)

body_parameters:
  work_item_type_key:
    type: string
    required: false
    description: Work item type key (e.g. story, task, bug)

  template_id:
    type: integer
    required: false
    description: >
      Work item process template ID.
      If omitted, the default template of the work item type is used.

  name:
    type: string
    required: false
    description: Work item name

  required_mode:
    type: integer
    required: false
    default: 0
    enum:
      - 0  # do not validate required fields
      - 1  # validate required fields and fail if missing

  field_value_pairs:
    type: list[object]
    required: false
    description: >
      Field configuration list.
      Field definitions must match metadata from
      "Get Work Item Creation Metadata".
    item_schema:
      field_key:
        type: string
        required: true
      field_value:
        type: any
        required: true
      notes:
        - For option/select fields, value must be option ID
        - Cascading fields must follow configured option hierarchy
        - role_owners must follow role + owners structure

response:
  data:
    type: integer
    description: Created work item ID
  err_code:
    type: integer
  err_msg:
    type: string

error_handling:
  - code: 30014
    meaning: Work item type not found or invalid
  - code: 50006
    meaning: Role owners parsing failed or template invalid
  - code: 20083
    meaning: Duplicate fields in request
  - code: 20038
    meaning: Required fields not set

constraints:
  - name must not also appear in field_value_pairs
  - template_id must not appear in field_value_pairs
  - option-type fields must use option ID, not label
  - role_owners default behavior depends on process role configuration

examples:
  minimal:
    project_key: doc
    body:
      work_item_type_key: story
      name: "New Story"

  full:
    project_key: doc
    body:
      work_item_type_key: story
      template_id: 123123
      name: "Example Work Item"
      field_value_pairs:
        - field_key: description
          field_value: "Example description"
        - field_key: priority
          field_value:
            value: "xxxxxx"
        - field_key: role_owners
          field_value:
            - role: rd
              owners:
                - testuser

Usage notes

  • project_key: Path parameter, required. Use space ID (project_key) or space domain (simple_name).
  • name: Work item name; do not also send name in field_value_pairs.
  • field_value_pairs: Send other fields (description, priority, assignees, etc.) here; use option ID for option-type fields, not display labels.
  • Before creating, call "Get Work Item Creation Metadata" to get field metadata for the type and template, then build field_value_pairs accordingly.

Update Work Item

Update one or more editable fields of a Meegle work item instance under a specified space and work item type. Only fields allowed by metadata and permissions can be modified. Template and calculated fields are not supported.

When to Use

  • When modifying fields (name, description, status, assignees, etc.) of an existing work item
  • When updating workflow state or custom fields
  • When syncing external changes into Meegle

API Spec: update_work_item

yaml
name: update_work_item
type: api
description: >
  Update one or more editable fields of a Meegle work item instance under a
  specified space and work item type. Only fields allowed by metadata and
  permissions can be modified. Template and calculated fields are not supported.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: PUT
  url: https://{domain}/open_api/{project_key}/work_item/{work_item_type_key}/{work_item_id}
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

path_params:
  project_key:
    type: string
    required: true
    description: >
      Space identifier. Can be project_key or space domain name (simple_name).
  work_item_type_key:
    type: string
    required: true
    description: Work item type key (e.g. story, bug).
  work_item_id:
    type: string
    required: true
    description: Work item instance ID.

inputs:
  update_fields:
    type: array
    items:
      type: object
      properties:
        field_key:
          type: string
          required: true
          description: Field identifier
        field_value:
          type: any
          required: true
          description: >
            New field value. For option fields, pass option ID (value),
            not the label.
    required: true
    description: >
      List of fields to update. Each update overwrites the previous value.
      Field definitions must follow metadata from
      "Get Work Item Creation Metadata".

outputs:
  description: Update succeeded

constraints:
  - Cascading option fields must follow configured hierarchy
  - Option-type fields require option ID, not name
  - role_owners behavior depends on process role configuration
  - Template, voting, and calculated fields cannot be updated

error_mapping:
  20007: Work item has already reached terminal status; terminated items cannot be modified
  30009: Field not found (invalid field_key)
  30005: Work item not found (invalid work_item_id)
  50006: No right to edit / WorkItemValue limit exceeded
  20090: Request blocked (field cannot be updated or is calculated)
  20050: Failed to check field (field option invalid due to configuration change)
  10001: Operation not permitted (no permission)
  20014: Project and work item do not match (project_key and work item not in same space)
  1000051743: Can not find user info (invalid X-User-Key)
  10211: Token info invalid (token expired or invalid)

Usage notes

  • project_key, work_item_type_key, work_item_id: Path parameters for the target work item.
  • update_fields: Array of {field_key, field_value}; use option ID for option-type fields, not labels.
  • Call "Get Work Item Creation Metadata" to know editable fields and their schema.
  • Terminated work items cannot be updated. Template, voting, and calculated fields are read-only.

Delete Work Item

Delete a work item instance under a specified space and work item type. The operation permanently removes the work item and requires proper Work Item permissions.

When to Use

  • When permanently removing a work item that is no longer needed
  • When cleaning up test or duplicate work items
  • When implementing bulk delete workflows (with caution)

API Spec: delete_work_item

yaml
name: delete_work_item
type: api
description: >
  Delete a work item instance under a specified space and work item type.
  The operation permanently removes the work item and requires proper
  Work Item permissions.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: DELETE
  url: https://{domain}/open_api/{project_key}/work_item/{work_item_type_key}/{work_item_id}
  headers:
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

path_params:
  project_key:
    type: string
    required: true
    description: >
      Space identifier. Can be project_key or space domain name (simple_name).
  work_item_type_key:
    type: string
    required: true
    description: Work item type key (e.g. story, bug).
  work_item_id:
    type: string
    required: true
    description: Work item instance ID.

outputs:
  description: Work item deleted successfully

constraints:
  - Requires Permission Management - Work Items permission
  - Deletion is irreversible

error_mapping:
  10001: Operation not permitted (unauthorized / no permission)
  30005: Work item not found (work_item_id incorrect or does not exist)
  20090: Request intercepted (retry later)
  20014: Project and work item do not match (project_key does not match work item)
  20003: Wrong work_item_type param (work_item_type_key incorrect)
  1000051195: ErrWorkItemNoPermission (cannot delete work items across tenants)

Usage notes

  • project_key, work_item_type_key, work_item_id: Path parameters for the target work item.
  • Requires Work Items permission. Deletion is irreversible — consider soft delete or archiving if recovery may be needed.

Abort or Resume Work Item

Terminate (abort) or resume a work item instance under a specified space and work item type. Used to mark work items as terminated or restore them back to active status.

When to Use

  • When terminating work items (cancel, duplicate, test, etc.)
  • When resuming previously terminated work items (restart, rollback, test)
  • When managing work item lifecycle (active vs terminated)

API Spec: abort_or_resume_work_item

yaml
name: abort_or_resume_work_item
type: api
description: >
  Terminate (abort) or resume a work item instance under a specified space
  and work item type. Used to mark work items as terminated or restore them
  back to active status.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: PUT
  url: https://{domain}/open_api/{project_key}/work_item/{work_item_type_key}/{work_item_id}/abort
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

path_params:
  project_key:
    type: string
    required: true
    description: >
      Space identifier. Can be project_key or space domain name (simple_name).
  work_item_type_key:
    type: string
    required: true
    description: Work item type key (e.g. story, bug).
  work_item_id:
    type: string
    required: true
    description: Work item instance ID.

inputs:
  is_aborted:
    type: boolean
    required: false
    description: |
      true: terminate the work item
      false: resume the work item
  reason:
    type: string
    required: false
    description: >
      Reason for termination or recovery.
      Required when reason_option is "other".
  reason_option:
    type: string
    required: false
    description: |
      Termination reason options:
      - cancel: Cancel
      - repeat: Duplicate / merge
      - test: Test
      - other: Other
      Recovery reason options:
      - restart: Restart
      - rollback: Roll back due to misoperation
      - test: Test
      - other: Other

outputs:
  description: Operation succeeded

constraints:
  - Requires Permission Management - Work Item Instances permission
  - reason_option should match configured termination reasons in the space

error_mapping:
  20007: Work item is already aborted (already terminated)
  20008: Work item is already restored (already resumed)
  30005: Work item not found (does not exist or type does not match)
  20090: Request intercepted (request or operation was intercepted)

Usage notes

  • project_key, work_item_type_key, work_item_id: Path parameters for the target work item.
  • is_aborted: true to terminate, false to resume.
  • reason_option: Must match space-configured options; use other with reason when needed.

Batch Update Work Item Field

Batch update a single field across multiple work item instances under a specified space and work item type. Supports APPEND, UPDATE, and REPLACE modes with field-type restrictions.

When to Use

  • When updating the same field on many work items at once (e.g. bulk status change, bulk assignee)
  • When appending or replacing values in multi-select or personnel fields
  • When needing async batch progress via task_id

API Spec: batch_update_work_item_field

yaml
name: batch_update_work_item_field
type: api
description: >
  Batch update a single field across multiple work item instances
  under a specified space and work item type. Supports APPEND, UPDATE,
  and REPLACE modes with field-type restrictions.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/work_item/batch_update
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  project_key:
    type: string
    required: true
    description: Meegle project space identifier (project_key).
  work_item_type_key:
    type: string
    required: true
    description: Work item type key (e.g. story, bug).
  work_item_ids:
    type: array
    items: integer
    required: true
    constraints:
      max_items: 50
    description: List of work item IDs to update. Max 50 IDs per request.
  update_mode:
    type: string
    required: true
    enum: [APPEND, UPDATE, REPLACE]
    description: |
      APPEND: Append values (supports multi-user, multi-select, multi-associated).
      UPDATE: Overwrite values (not supported for calculated or external signal fields).
      REPLACE: Replace values (supports single/multi select, cascading select,
      personnel fields, associated work item fields).
  field_key:
    type: string
    required: true
    description: >
      Field ID to be modified. Batch update supports only one field at a time.
  before_field_value:
    type: any
    required: false
    description: >
      Original field value to be replaced.
      Required only when update_mode = REPLACE.
  after_field_value:
    type: any
    required: true
    description: >
      Target field value after the operation.
      Can be empty, which means deletion of the field value.

outputs:
  data:
    type: object
    properties:
      task_id: string
    description: >
      Batch update task created successfully.
      Use task_id to query progress.

constraints:
  - QPS limit: 1
  - Requires Permission Management - Work Item Instances
  - Only one field can be updated per batch request
  - Max 50 work_item_ids per request
  - Field type support depends on update_mode

error_mapping:
  1000052062: Project key is wrong (invalid project_key)
  50006: ErrOAPIBatchUpdateOverLimit (more than 50 work_item_ids)

Usage notes

  • project_key, work_item_type_key: Identify the space and work item type.
  • work_item_ids: Max 50 per request.
  • update_mode: APPEND (add), UPDATE (overwrite), REPLACE (replace with before/after). Field support varies by mode.
  • before_field_value: Required when update_mode=REPLACE; original value to match and replace.
  • after_field_value: Target value; empty means delete the field value.
  • Returns task_id — use Get Batch Update Progress to query batch progress asynchronously.

Get Batch Update Progress

Query execution progress and results of a batch work item field update task. Used together with the Batch Update Work Item Field API.

When to Use

  • After submitting a batch update task — poll to check completion status
  • When needing success/fail counts and lists (success_sub_task_list, fail_sub_task_list)
  • When debugging batch failures (error_scenes)

API Spec: get_batch_update_progress

yaml
name: get_batch_update_progress
type: api
description: >
  Query execution progress and results of a batch work item field update task.
  Used together with the Batch Update Work Item Field API.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: GET
  url: https://{domain}/open_api/task_result?task_id={{task_id}}
  headers:
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  task_id:
    type: string
    required: true
    description: >
      Task ID returned by the Batch Update Work Item Field interface.
      Pass as query parameter (?task_id=...).

outputs:
  data:
    type: object
    properties:
      task_id: string
      task_status: string
      total: integer
      success_total: integer
      error_total: integer
      success_sub_task_list: array
      fail_sub_task_list: array
      error_scenes: array
    description: |
      task_status: SUCCESS | IDLE | RUNNING | FAILED | CANCELED | NOT_EXIST
      success_sub_task_list: List of successfully updated work item IDs
      fail_sub_task_list: List of failed work item IDs
      error_scenes: Failure scenarios (e.g. RelationCaseLoops, RelationCaseLevelExceeds,
        DuplicationCheckEnabledForThisField, NoPermissionToModify, WorkItemTerminated)

constraints:
  - No permission application required
  - QPS limit: 1
  - Typically polled after submitting a batch update task

Usage notes

  • task_id: Pass as query parameter; from the response of Batch Update Work Item Field.
  • task_status: SUCCESS, IDLE, RUNNING, FAILED, CANCELED, or NOT_EXIST.
  • Poll this API after a batch update to track progress and retrieve success/fail lists.

Freeze or Unfreeze Work Item

Freeze or unfreeze a work item instance in a specified Meegle project space. Freezing prevents the work item from moving to the next stage; unfreezing restores normal flow.

When to Use

  • When temporarily blocking a work item from progressing to the next stage
  • When restoring workflow progression for a previously frozen work item
  • When managing work-in-progress hold or review gates

API Spec: freeze_or_unfreeze_work_item

yaml
name: freeze_or_unfreeze_work_item
type: api
description: >
  Freeze or unfreeze a work item instance in a specified Meegle project space.
  Freezing prevents the work item from moving to the next stage; unfreezing restores normal flow.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: PUT
  url: https://{domain}/open_api/work_item/freeze
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  project_key:
    type: string
    required: true
    description: >
      Unique identifier of the Meegle project space (project_key or simple_name).
  work_item_id:
    type: integer
    required: true
    description: Work item instance ID.
  is_frozen:
    type: boolean
    required: true
    description: |
      true = freeze the work item
      false = unfreeze the work item

outputs:
  data:
    type: object
    description: Empty object on success.

constraints:
  - Requires Permission Management – Work Item Instance
  - Applies only to the specified work item instance
  - Used to temporarily block or restore workflow progression

error_mapping:
  1000052062: Project key is wrong (incorrect project_key)

Usage notes

  • project_key: Space identifier (project_key or simple_name).
  • work_item_id: Target work item instance ID.
  • is_frozen: true to freeze (block stage transition), false to unfreeze.

Update Compound Field

Update, add, or delete a compound (composite) field group on a Meegle work item. Supports add / update / delete operations on grouped compound field data.

When to Use

  • When adding new compound field groups to a work item
  • When updating existing compound field group data
  • When deleting compound field groups

API Spec: update_compound_field

yaml
name: update_compound_field
type: api
description: >
  Update, add, or delete a compound (composite) field group on a Meegle work item.
  Supports add / update / delete operations on grouped compound field data.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/work_item/field_value/update_compound_field
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  project_key:
    type: string
    required: true
    description: >
      Space ID (project_key) or space domain name (simple_name).
  work_item_id:
    type: integer
    required: true
    description: Work item instance ID.
  field_key:
    type: string
    required: false
    description: >
      ID of the compound field. Cannot be empty at the same time as field_alias.
  field_alias:
    type: string
    required: false
    description: >
      Alias of the compound field. Cannot be empty at the same time as field_key.
  group_uuid:
    type: string
    required: false
    description: |
      Identifier of the compound field group.
      Required for update / delete.
      Must NOT be provided for add.
  action:
    type: string
    required: true
    enum: [add, update, delete]
    description: |
      add    = add new group(s)
      update = update existing group
      delete = delete existing group
  fields:
    type: array
    items: object
    required: false
    description: |
      Compound field data (FieldValuePair list).
      add: multiple groups
      update: single group
      delete: not required

outputs:
  data:
    type: object
    description: Empty object on success.

constraints:
  - Requires Permission Management – Work Items
  - field_key or field_alias must be provided (one only, cannot both be empty)
  - group_uuid required for update / delete; must NOT be provided for add
  - Target field must be a compound field
  - Use Get Work Item Details with need_group_uuid_for_compound=true to obtain group_uuid

error_mapping:
  1000050244: Work item not found (does not exist or was deleted)
  1000050156: ProjectKey does not match (project_key does not match work item's space)
  1000050248: Field not found (compound field does not exist)
  1000050156: Invalid field (only compound_field supported)

Usage notes

  • field_key or field_alias: Provide one; used to identify the compound field.
  • group_uuid: Required for update/delete; omit for add. Obtain via Get Work Item Details with need_group_uuid_for_compound=true.
  • action: add (new groups), update (existing group), delete (remove group).
  • fields: For add — multiple groups; for update — single group; for delete — omit.

Get Work Item Change Log

Query operation (change) records of one or more Meegle work item instances within a specified space. Supports filtering by operator, operation type, module, time range, and pagination.

When to Use

  • When auditing or reviewing work item change history
  • When tracking who changed what and when
  • When filtering by operation type (create, modify, delete, terminate, restore, etc.)

API Spec: get_work_item_change_log

yaml
name: get_work_item_change_log
type: api
description: >
  Query operation (change) records of one or more Meegle work item instances
  within a specified space. Supports filtering by operator, operation type,
  module, time range, and pagination.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/op_record/work_item/list
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  project_key:
    type: string
    required: true
    description: Space ID (project_key).
  work_item_ids:
    type: array
    items: integer
    required: true
    constraints:
      max_items: 50
    description: List of work item IDs to query. Maximum 50 per request.
  start_from:
    type: string
    required: false
    description: Pagination cursor. Use the value returned by the previous request.
  operator:
    type: array
    items: string
    required: false
    description: |
      Operator identifiers.
      - user: user_key
      - auto: automation rule ID
  operator_type:
    type: array
    items: string
    required: false
    enum: [user, auto, system, calc_field, plugin, others]
    description: Operator trigger source type.
  source_type:
    type: array
    items: string
    required: false
    enum: [auto, plugin]
    description: Operation channel type.
  source:
    type: array
    items: string
    required: false
    description: |
      Operation channel identifier.
      - auto: automation rule ID
      - plugin: plugin ID
  operation_type:
    type: array
    items: string
    required: false
    enum: [modify, create, delete, terminate, restore, complete, rollback, add, remove]
    description: Operation action types.
  start:
    type: integer
    required: false
    description: Start time (milliseconds timestamp). Must be used with end. Max range: 7 days.
  end:
    type: integer
    required: false
    description: End time (milliseconds timestamp). Must be used with start. Max range: 7 days.
  op_record_module:
    type: array
    items: string
    required: false
    enum: [work_item_mod, node_mod, sub_task_mod, field_mod, role_and_user_mod, baseline_mod]
    description: Operation record module type.
  page_size:
    type: integer
    required: false
    default: 50
    constraints:
      max: 200
    description: Records per page. Max 200, default 50.

outputs:
  data:
    type: object
    properties:
      has_more: boolean
      start_from: string
      op_records: array
      total: integer
    description: |
      has_more: Whether more records exist
      start_from: Pagination cursor for next request
      op_records: Operation record list
      total: Total number of records

constraints:
  - Requires Permission Management – Work Item Instance
  - Historical records before July 2, 2024 are NOT supported
  - Pagination is cursor-based via start_from
  - work_item_ids is mandatory (max 50)
  - Time range (start, end) max 7 days

error_mapping:
  20006: Invalid param (one or more parameters invalid)
  20005: Missing param (required parameters missing)
  20013: Invalid time interval (range exceeds 7 days)

Usage notes

  • work_item_ids: Required; max 50 IDs per request.
  • start_from: Cursor for next page; use start_from from previous response.
  • start / end: Use together; 13-digit millisecond timestamps; max 7-day range.
  • operation_type: Filter by create, modify, delete, terminate, restore, complete, rollback, add, remove.
  • op_record_module: Filter by work_item_mod, node_mod, sub_task_mod, field_mod, role_and_user_mod, baseline_mod.

Get Work Item Resource Instance Detail

Query detailed information of specified Meegle work item resource library instances, including field data. Only resource-library-enabled work items are supported; non-resource instances and null-value fields are not returned.

When to Use

  • When querying resource library work item instances (e.g. reusable components, templates)
  • When needing full field data for resource work items
  • When integrating with resource-library-enabled spaces

API Spec: get_work_item_resource_instance_detail

yaml
name: get_work_item_resource_instance_detail
type: api
description: >
  Query detailed information of specified Meegle work item *resource library*
  instances, including field data. Only resource-library-enabled work items
  are supported; non-resource instances and null-value fields are not returned.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/work_item/resource/query
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  project_key:
    type: string
    required: true
    description: Project space ID (project_key).
  work_item_ids:
    type: array
    items: integer
    required: true
    constraints:
      max_items: 50
    description: List of resource work item IDs. Maximum 50 per request.
  work_item_type_key:
    type: string
    required: true
    description: >
      Work item type key. Obtainable via "Get work item types in the space" API.
  fields:
    type: array
    items: string
    required: false
    description: >
      Specify which fields to return. If omitted, all fields are returned.
      Null-value fields are never returned.
  expand:
    type: object
    required: false
    description: Extended parameters for future expansion.

outputs:
  data:
    type: array
    description: List of resource work item instances.
    item_properties:
      id: integer
      name: string
      project_key: string
      work_item_type_key: string
      template_id: integer
      template_type: string
      simple_name: string
      created_by: string
      updated_by: string
      created_at: integer
      updated_at: integer
      fields: array

constraints:
  - Requires Permission Management – Work Item Instance
  - Only resource-library-enabled work items are supported
  - Non-resource instances will not be returned
  - Fields with null values are automatically filtered out
  - Max 50 work_item_ids per request

error_mapping:
  30005: Work item not found (one or more work items do not exist)
  20005: Invalid work_item_ids parameter
  1000050178: work_item_ids exceeds 50

Usage notes

  • work_item_ids: List of resource work item IDs; max 50. Only resource-library instances are returned.
  • work_item_type_key: Required. Use "Get work item types in the space" to obtain.
  • fields: Optional; omit to return all fields. Null-value fields are never included in the response.

Update Work Item Resource Instance

Update fields of a specified Meegle work item resource library instance. Only resource fields are supported. Non-resource fields or roles are ignored. Field updates overwrite existing values (not append/merge).

When to Use

  • When updating resource library work item instances (e.g. reusable components, templates)
  • When modifying resource field values
  • When syncing external data into resource work items

API Spec: update_work_item_resource_instance

yaml
name: update_work_item_resource_instance
type: api
description: >
  Update fields of a specified Meegle work item **resource library instance**.
  Only resource fields are supported. Non-resource fields or roles are ignored.
  Field updates overwrite existing values (not append/merge).

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/work_item/resource/update
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  project_key:
    type: string
    required: false
    description: Project space ID (project_key).
  work_item_type_key:
    type: string
    required: false
    description: Work item type key.
  work_item_id:
    type: integer
    required: false
    description: Resource work item ID.
  update_fields:
    type: array
    items:
      type: object
      properties:
        field_key:
          type: string
          required: true
        field_value:
          type: any
          required: true
          description: >
            Field value. Must follow Meegle Field & Attribute Parsing Format.
    required: false
    description: >
      Fields to update. Values overwrite previous values entirely.

outputs:
  data:
    type: object
    description: Empty object on success.

constraints:
  - Requires Permission Management – Work Item Instance
  - Resource library must be enabled for the work item
  - Only resource fields are processed; non-resource fields or roles ignored
  - Field updates are full overwrite, not partial append/merge
  - No duplicate field_key in update_fields

error_mapping:
  30014: Work item type key not found (incorrect project_key or work item not found)
  1000053593: NonresourceFieldsRolesUnsupported (one or more fields are not resource fields)
  1000050438: Duplication field exist (duplicate field_key in update_fields)
  1000050183: Update field invalid (update_fields format is invalid)

Usage notes

  • project_key, work_item_type_key, work_item_id: Identify the target resource work item.
  • update_fields: Array of {field_key, field_value}; values overwrite (not append). Use Meegle Field & Attribute Parsing Format.
  • Only resource fields are updated; non-resource fields and roles are ignored.

Search Work Item Resource Instances

Search and list work item resource library instances in Meegle based on complex filtering conditions. Supports pagination via search_after and on-demand field selection. Only available when the resource repository is enabled for the work item type.

When to Use

  • When searching resource library work items across spaces/types
  • When filtering by creation time, creator, updater, update time, resource ID
  • When needing cursor-based pagination and field selection

API Spec: search_work_item_resource_instances

yaml
name: search_work_item_resource_instances
type: api
description: >
  Search and list **work item resource library instances** in Meegle based on
  complex filtering conditions. Supports pagination via search_after and
  on-demand field selection. Only available when the resource repository
  is enabled for the work item type.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/work_item/resource/search/params
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  data_sources:
    type: array
    items:
      type: object
      properties:
        project_key:
          type: string
          required: true
          description: Project space ID (project_key)
        work_item_type_keys:
          type: string
          required: true
          description: Work item type key
    required: true
    description: Define project space and work item type scope for resource instances.
  search_group:
    type: object
    required: true
    description: |
      Filtering conditions. Only limited fields supported:
      creation time, creator, space, resource work item ID,
      updater, update time, repository config.
    schema:
      conjunction:
        type: string
        enum: [AND, OR]
        required: true
      search_params:
        type: array
        required: false
      search_groups:
        type: array
        required: false
  field_selected:
    type: array
    items: string
    required: false
    constraints:
      max_items: 20
    description: >
      Fields to return. If omitted, only work_item_id is returned.
      Maximum 20 fields.
  pagination:
    type: object
    required: false
    properties:
      page_size: integer
      search_after: string
    description: Pagination using search_after.
  features:
    type: object
    required: false
    description: >
      Extended options. Supported keys:
      FindAborted, AllowTruncate, SkipAuthCheck.

outputs:
  data:
    type: array
    description: Resource work item instances
  pagination:
    type: object
    description: Pagination metadata

constraints:
  - Requires Permission Management – Work Item Instances
  - Resource repository must be enabled
  - Default response returns only work_item_id
  - Max 20 fields per query (field_selected)
  - Uses search_after for deep pagination
  - Only limited fields supported in search_group

error_mapping:
  20068: Search param not supported
  30014: Work item type key not found
  20069: Search param value error
  20063: Search operator error
  20072: Conjunction value only supports AND / OR
  30001: Data not found

Usage notes

  • data_sources: Array of {project_key, work_item_type_keys} defining scope.
  • search_group: Same SearchGroup structure as other search APIs; only limited fields supported (creation time, creator, updater, update time, resource ID, etc.).
  • field_selected: Max 20; omit to get only work_item_id.
  • pagination.search_after: Cursor for deep pagination.

Create Work Item Resource Repository

Create a work item resource repository instance under a specified project space and work item type. The work item type must have resource library enabled in advanced configuration.

When to Use

  • When creating new resource library work items (e.g. reusable components, templates)
  • When initializing resource instances with field values
  • When adding entries to a resource repository

API Spec: create_work_item_resource_repository

yaml
name: create_work_item_resource_repository
type: api
description: >
  Create a **work item resource repository instance** under a specified
  project space and work item type. The work item type must have
  **resource library enabled** in advanced configuration.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/work_item/resource/create_work_item
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

inputs:
  project_key:
    type: string
    required: true
    description: Feishu / Meegle project space ID (project_key).
  work_item_type_key:
    type: string
    required: true
    description: >
      Work item type key. Obtainable via "Get Work Item Types in Space".
  template_id:
    type: integer
    required: false
    description: >
      Template ID. If omitted, the first process template
      of this work item type is used.
  field_value_pairs:
    type: array
    items: object
    required: false
    description: >
      Initial field values for creating the resource instance.
      Must follow Data Structure Summary. Supported fields can be
      obtained from "Get Work Item Creation Metadata".

outputs:
  data:
    type: object
    properties:
      work_item_id: integer
    description: Newly created resource work item ID.

constraints:
  - Requires Permission Management – Work Item Instance
  - Resource library must be enabled for the work item type
  - If no template_id is provided, the default template is used

error_mapping:
  1000053507: Work item has not enabled resource library (specified type is not a resource repository)

Usage notes

  • project_key, work_item_type_key: Identify the space and work item type.
  • template_id: Optional; omit to use the first/default process template.
  • field_value_pairs: Same structure as Create Work Item; use Get Work Item Creation Metadata for supported fields.

Create Work Item through Resources

Create work item instances using a resource library work item as the source. After enabling the Work Item Resource Library feature, use this interface to create corresponding work item instances from a resource entry.

When to Use

  • When creating work items from resource library entries (e.g. reusable component templates)
  • When instantiating a resource work item as a new work item in the space
  • When copying resource field values into a new work item

API Spec: create_work_item_through_resources

yaml
name: create_work_item_through_resources
type: api
description: >
  Create work item instances using a resource library work item as the source.
  After enabling Work Item Resource Library, use this interface to create
  corresponding work item instances from a resource entry.

auth:
  type: plugin_access_token
  header: X-Plugin-Token
  user_header: X-User-Key

http:
  method: POST
  url: https://{domain}/open_api/work_item/resource/{project_key}/{work_item_id}/create_instance
  headers:
    Content-Type: application/json
    X-Plugin-Token: "{{resolved_token}}"
    X-User-Key: "{{user_key}}"

path_params:
  project_key:
    type: string
    required: true
    description: >
      Space ID (project_key) or space domain name (simple_name).
      project_key: Double-click space name in Meegle.
      simple_name: From space URL, e.g. https://meegle.com/doc/overview → doc.
  work_item_id:
    type: string
    required: true
    description: >
      Resource work item instance ID. In work item details, expand ··· in the upper right, click ID.

inputs:
  work_item_type_key:
    type: string
    required: true
    description: Work item type. Obtainable via "Get work item types in the space".
  name:
    type: string
    required: false
    description: >
      Work item name. When name is a resource field, this value is ignored by default.
  template_id:
    type: integer
    required: false
    description: >
      Template ID. If omitted, the first process template of this work item type is used.
      Obtain from Get Work Item Creation Metadata → template field options.
  field_value_pairs:
    type: array
    items: object
    required: false
    description: >
      Follow FieldValuePair structure. Same as Create Work Item.

outputs:
  data:
    type: object
    properties:
      work_item_id: integer
      ignore_create_info:
        field_keys: array
        role_ids: array
    description: >
      work_item_id: Created work item instance ID.
      ignore_create_info: Fields/roles that were ignored during creation.

constraints:
  - Requires Permission Management – Work Items
  - Work Item Resource Library must be enabled
  - work_item_id is the source resource work item ID

error_mapping:
  20006: Invalid param (field_value_pairs structure does not meet single-select field spec)

Usage notes

  • project_key, work_item_id: Path params. work_item_id is the source resource work item from which to create a new instance.
  • work_item_type_key: Type of the work item to create; must match the resource type.
  • name: Optional; ignored when name is a resource field.
  • template_id: Optional; omit to use the first process template.
  • field_value_pairs: Same structure as Create Work Item; follow FieldValuePair specification.