{
  "service": "workiom",
  "displayName": "Workiom",
  "categories": [
    "Productivity",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "WORKIOM_API_KEY",
      "description": "Workiom API key sent in the X-Api-Key header. Get it from Workiom Account Settings: https://help.workiom.com/article/workiom-api-guide",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://workiom.com",
  "actions": [
    {
      "id": "workiom.create_record",
      "service": "workiom",
      "name": "create_record",
      "description": "Create a record in a Workiom list from a JSON object keyed by field ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "listId": {
            "type": "string",
            "minLength": 1,
            "description": "The Workiom UUID value."
          },
          "record": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The record field values keyed by Workiom field ID, using values that match each field type."
          }
        },
        "additionalProperties": false,
        "required": [
          "listId",
          "record"
        ],
        "description": "The input payload for creating a Workiom record."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "record": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Workiom object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Workiom response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "record",
          "raw"
        ],
        "description": "The response returned after creating a Workiom record."
      }
    },
    {
      "id": "workiom.get_list_metadata",
      "service": "workiom",
      "name": "get_list_metadata",
      "description": "Get Workiom list metadata including fields, views, or filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "listId": {
            "type": "string",
            "minLength": 1,
            "description": "The Workiom UUID value."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Fields",
                "Views",
                "Filters"
              ],
              "description": "One metadata section accepted by Workiom."
            },
            "description": "The list metadata sections to expand.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "listId"
        ],
        "description": "The input payload for retrieving Workiom list metadata."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "list": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Workiom list ID."
              },
              "name": {
                "type": "string",
                "description": "The Workiom list name."
              },
              "appId": {
                "type": "string",
                "description": "The Workiom app ID that owns the list."
              },
              "fields": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Workiom object."
                },
                "description": "The fields configured on the list."
              },
              "views": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Workiom object."
                },
                "description": "The views configured on the list."
              },
              "filters": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Workiom object."
                },
                "description": "The filters configured on the list."
              }
            },
            "additionalProperties": true,
            "required": [
              "id"
            ],
            "description": "Workiom list metadata with fields, views, and filters when expanded."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Workiom response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "list",
          "raw"
        ],
        "description": "The response returned when retrieving Workiom list metadata."
      }
    },
    {
      "id": "workiom.list_apps",
      "service": "workiom",
      "name": "list_apps",
      "description": "List Workiom apps available to the connected API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing Workiom apps."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "apps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Workiom app ID."
                },
                "name": {
                  "type": "string",
                  "description": "The Workiom app name."
                }
              },
              "additionalProperties": true,
              "required": [
                "id"
              ],
              "description": "A Workiom app returned by the API."
            },
            "description": "The Workiom apps returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Workiom response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "apps",
          "raw"
        ],
        "description": "The response returned when listing Workiom apps."
      }
    },
    {
      "id": "workiom.list_lists",
      "service": "workiom",
      "name": "list_lists",
      "description": "List Workiom lists in an app.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "minLength": 1,
            "description": "The Workiom UUID value."
          }
        },
        "additionalProperties": false,
        "required": [
          "appId"
        ],
        "description": "The input payload for listing Workiom lists."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "lists": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Workiom list ID."
                },
                "name": {
                  "type": "string",
                  "description": "The Workiom list name."
                },
                "appId": {
                  "type": "string",
                  "description": "The Workiom app ID that owns the list."
                }
              },
              "additionalProperties": true,
              "required": [
                "id"
              ],
              "description": "A Workiom list returned by the API."
            },
            "description": "The Workiom lists returned by the API."
          },
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of Workiom lists when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Workiom response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "lists",
          "totalCount",
          "raw"
        ],
        "description": "The response returned when listing Workiom lists."
      }
    },
    {
      "id": "workiom.list_records",
      "service": "workiom",
      "name": "list_records",
      "description": "List records from a Workiom list with optional filters, sorting, and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "listId": {
            "type": "string",
            "minLength": 1,
            "description": "The Workiom UUID value."
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "fieldId": {
                  "type": "integer",
                  "description": "The numeric field ID to filter on."
                },
                "operator": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 13,
                  "description": "The Workiom filter operator code such as 1 for Contains, 3 for Is, or 12 for In."
                },
                "value": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The string filter value."
                    },
                    {
                      "type": "integer",
                      "description": "The integer filter value."
                    },
                    {
                      "type": "number",
                      "description": "The numeric filter value."
                    },
                    {
                      "type": "boolean",
                      "description": "The boolean filter value."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "One string filter value."
                      },
                      "description": "The string values for In or NotIn filters."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "description": "One integer filter value."
                      },
                      "description": "The integer values for In or NotIn filters."
                    }
                  ],
                  "description": "The value to compare in a Workiom record filter."
                }
              },
              "additionalProperties": false,
              "description": "One Workiom record filter."
            },
            "description": "The filters to apply to the record query."
          },
          "sorting": {
            "type": "string",
            "minLength": 1,
            "description": "The Workiom sorting expression such as '11284 ASC'."
          },
          "skipCount": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of records to skip for pagination."
          },
          "maxResultCount": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "listId"
        ],
        "description": "The input payload for listing Workiom records."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "records": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Workiom object."
            },
            "description": "The record objects returned by Workiom."
          },
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total matching record count when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "summary": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Workiom summary object when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Workiom response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "records",
          "totalCount",
          "summary",
          "raw"
        ],
        "description": "The response returned when listing Workiom records."
      }
    }
  ]
}
