Workato · Schema

Workato Genie

Represents a Workato AI agent (genie) — an entity that uses large language models and recipe-backed skills to autonomously handle tasks and answer questions. Genies are configured with instructions, an AI provider, skills, and knowledge bases.

AgenticAPI ManagementAutomationB2BEmbedded iPaaSEnterpriseIntegrationiPaaSOrchestrationWorkflow

Properties

Name Type Description
id integer Unique integer identifier of the genie within the workspace.
name string Display name of the genie.
description string Human-readable description of the genie's purpose and capabilities.
folder_id integer ID of the workspace folder that contains this genie.
state string Current operational state of the genie.
instructions string Natural language instructions that define the genie's behavior, persona, and decision-making approach.
ai_provider string The AI model provider powering this genie (e.g., openai, anthropic, workato).
shared_account_id integer ID of the shared account providing credentials for the AI provider.
custom_oauth_key_id integer ID of the custom OAuth profile used for AI provider authentication.
matrix object Advanced configuration settings for the genie's behavior and model parameters.
skills array List of skills (recipe-backed tools) assigned to this genie.
knowledge_bases array List of knowledge bases assigned to this genie for contextual data retrieval.
user_groups array Identity provider user groups that have access to interact with this genie.
created_at string ISO 8601 timestamp when the genie was created.
updated_at string ISO 8601 timestamp when the genie was last updated.
View JSON Schema on GitHub

JSON Schema

workato-genie-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.workato.com/schemas/genie.json",
  "title": "Workato Genie",
  "description": "Represents a Workato AI agent (genie) — an entity that uses large language models and recipe-backed skills to autonomously handle tasks and answer questions. Genies are configured with instructions, an AI provider, skills, and knowledge bases.",
  "type": "object",
  "required": ["id", "name"],
  "properties": {
    "id": {
      "type": "integer",
      "description": "Unique integer identifier of the genie within the workspace."
    },
    "name": {
      "type": "string",
      "description": "Display name of the genie.",
      "minLength": 1,
      "maxLength": 255
    },
    "description": {
      "type": "string",
      "description": "Human-readable description of the genie's purpose and capabilities."
    },
    "folder_id": {
      "type": "integer",
      "description": "ID of the workspace folder that contains this genie."
    },
    "state": {
      "type": "string",
      "description": "Current operational state of the genie.",
      "enum": ["running", "stopped"]
    },
    "instructions": {
      "type": "string",
      "description": "Natural language instructions that define the genie's behavior, persona, and decision-making approach."
    },
    "ai_provider": {
      "type": "string",
      "description": "The AI model provider powering this genie (e.g., openai, anthropic, workato)."
    },
    "shared_account_id": {
      "type": "integer",
      "description": "ID of the shared account providing credentials for the AI provider."
    },
    "custom_oauth_key_id": {
      "type": "integer",
      "description": "ID of the custom OAuth profile used for AI provider authentication."
    },
    "matrix": {
      "type": "object",
      "description": "Advanced configuration settings for the genie's behavior and model parameters.",
      "additionalProperties": true
    },
    "skills": {
      "type": "array",
      "description": "List of skills (recipe-backed tools) assigned to this genie.",
      "items": {
        "$ref": "#/$defs/SkillRef"
      }
    },
    "knowledge_bases": {
      "type": "array",
      "description": "List of knowledge bases assigned to this genie for contextual data retrieval.",
      "items": {
        "$ref": "#/$defs/KnowledgeBaseRef"
      }
    },
    "user_groups": {
      "type": "array",
      "description": "Identity provider user groups that have access to interact with this genie.",
      "items": {
        "$ref": "#/$defs/UserGroupRef"
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the genie was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the genie was last updated."
    }
  },
  "$defs": {
    "SkillRef": {
      "type": "object",
      "title": "Skill Reference",
      "description": "A reference to a skill assigned to a genie.",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "integer",
          "description": "Unique identifier of the skill."
        },
        "name": {
          "type": "string",
          "description": "Display name of the skill."
        },
        "description": {
          "type": "string",
          "description": "Description of the capability this skill provides the genie."
        },
        "recipe_id": {
          "type": "integer",
          "description": "ID of the underlying recipe that implements this skill."
        }
      }
    },
    "KnowledgeBaseRef": {
      "type": "object",
      "title": "Knowledge Base Reference",
      "description": "A reference to a knowledge base assigned to a genie.",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "integer",
          "description": "Unique identifier of the knowledge base."
        },
        "name": {
          "type": "string",
          "description": "Display name of the knowledge base."
        },
        "source_type": {
          "type": "string",
          "description": "The type of data sources used in the knowledge base."
        }
      }
    },
    "UserGroupRef": {
      "type": "object",
      "title": "User Group Reference",
      "description": "A reference to an identity provider user group.",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "integer",
          "description": "Unique identifier of the user group."
        },
        "name": {
          "type": "string",
          "description": "Display name of the user group."
        }
      }
    },
    "DataSource": {
      "type": "object",
      "title": "Data Source",
      "description": "A configured data source that feeds information into a knowledge base.",
      "required": ["source_type"],
      "properties": {
        "id": {
          "type": "integer",
          "description": "Unique identifier of the data source."
        },
        "source_type": {
          "type": "string",
          "description": "Type of data source.",
          "enum": ["document", "table", "api", "database", "web"]
        },
        "connection_id": {
          "type": "integer",
          "description": "ID of the Workato connection used to authenticate to the data source."
        },
        "config": {
          "type": "object",
          "description": "Source-specific configuration including paths, queries, or selectors.",
          "additionalProperties": true
        },
        "sync_frequency": {
          "type": "string",
          "description": "How often the data source is synchronized.",
          "enum": ["manual", "hourly", "daily", "weekly"]
        }
      }
    },
    "McpServer": {
      "type": "object",
      "title": "MCP Server",
      "description": "A Model Context Protocol server that exposes Workato API collections as tools for external AI agents.",
      "required": ["handle", "name"],
      "properties": {
        "handle": {
          "type": "string",
          "description": "Unique slug identifier of the MCP server.",
          "pattern": "^[a-z0-9-]+$"
        },
        "name": {
          "type": "string",
          "description": "Display name of the MCP server.",
          "minLength": 1,
          "maxLength": 255
        },
        "folder_id": {
          "type": "integer",
          "description": "ID of the folder containing this MCP server."
        },
        "mcp_url": {
          "type": "string",
          "format": "uri",
          "description": "The authenticated MCP URL for AI agents to connect to."
        },
        "authentication_method": {
          "type": "string",
          "description": "Authentication method used by the MCP server."
        },
        "tools": {
          "type": "array",
          "description": "List of tools (API endpoints) exposed through this MCP server.",
          "items": {
            "$ref": "#/$defs/McpTool"
          }
        },
        "policies": {
          "$ref": "#/$defs/ServerPolicy"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp when the MCP server was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp when the MCP server was last updated."
        }
      }
    },
    "McpTool": {
      "type": "object",
      "title": "MCP Tool",
      "description": "An individual API endpoint exposed as a callable tool through an MCP server.",
      "required": ["id", "trigger_application"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the tool within its application."
        },
        "name": {
          "type": "string",
          "description": "Display name of the tool shown to AI agents."
        },
        "description": {
          "type": "string",
          "description": "Description of what the tool does and when AI agents should use it."
        },
        "trigger_application": {
          "type": "string",
          "description": "The application or API collection that owns this tool."
        }
      }
    },
    "ServerPolicy": {
      "type": "object",
      "title": "Server Policy",
      "description": "Security and rate limiting policies for an MCP server.",
      "properties": {
        "rate_limit": {
          "type": "object",
          "description": "Rate limiting configuration.",
          "properties": {
            "requests_per_minute": {
              "type": "integer",
              "minimum": 1,
              "description": "Maximum requests allowed per minute."
            },
            "requests_per_hour": {
              "type": "integer",
              "minimum": 1,
              "description": "Maximum requests allowed per hour."
            }
          }
        },
        "quota_limit": {
          "type": "object",
          "description": "Monthly quota configuration.",
          "properties": {
            "requests_per_month": {
              "type": "integer",
              "minimum": 1,
              "description": "Maximum requests allowed per month."
            }
          }
        },
        "ip_allowlist": {
          "type": "array",
          "description": "IP addresses or CIDR ranges permitted to access the server.",
          "items": {
            "type": "string",
            "description": "IP address or CIDR range."
          }
        },
        "ip_denylist": {
          "type": "array",
          "description": "IP addresses or CIDR ranges blocked from accessing the server.",
          "items": {
            "type": "string",
            "description": "IP address or CIDR range."
          }
        }
      }
    }
  }
}