Skip to main content

Types Reference

Base Types

interface BaseConfig {
  id: ID!
  version: String
  createdAt: DateTime
  updatedAt: DateTime
}

union ConfigType = Workflow

ApiConfig

Configuration for API calls within workflow steps. This type is used internally by ExecutionStep to define how each step calls an API.
type ApiConfig implements BaseConfig {
  id: ID!
  version: String
  createdAt: DateTime
  updatedAt: DateTime
  
  urlHost: String                   # Base URL for the API (e.g., "https://api.stripe.com")
  urlPath: String                   # Path component of the URL (e.g., "/v1/customers")
  method: HttpMethod                # HTTP method to use (default: GET)
  headers: JSON                     # Request headers (default: {})
  queryParams: JSON                 # URL query parameters (default: {})
  body: String                      # Request body for POST/PUT/PATCH requests
  instruction: String               # Natural language description
  authentication: AuthType          # Authentication method (default: NONE)
  responseSchema: JSONSchema        # Expected response format (auto-generated if not provided)
  responseMapping: JSONata          # JSONata transformation (optional)
  pagination: Pagination            # Pagination configuration (default: DISABLED)
  dataPath: String                  # JSONPath to extract data from response (e.g., "$.data")
  documentationUrl: String          # API documentation URL
}
Note: ApiConfig is used within workflow steps. For creating integrations and workflows, use Integration and Workflow types.

Workflow

Configuration for multi-step workflows. Inherits from BaseConfig.
type Workflow implements BaseConfig {
  id: ID!
  version: String
  createdAt: DateTime
  updatedAt: DateTime
  
  steps: [ExecutionStep!]           # Workflow execution steps
  integrationIds: [ID]              # Integration IDs used in workflow
  instruction: String               # Natural language description
  finalTransform: JSONata           # Final data transformation
  responseSchema: JSONSchema        # Expected final output format
  inputSchema: JSONSchema           # Expected input format
}

WorkflowSchedule

Configuration for scheduled workflow execution. Workflows can be executed on a recurring schedule using cron expressions.
type WorkflowSchedule {
  id: ID!
  workflowId: String!               # ID of the workflow to execute
  cronExpression: String!           # Cron expression (5-field: minute hour day month weekday)
  timezone: String!                 # IANA timezone (e.g., "America/New_York", "UTC", "Europe/London")
  enabled: Boolean!                 # Whether the schedule is active
  payload: JSON                     # Input data to pass to workflow execution
  options: JSON                     # Execution options (timeout, retries, etc.)
  lastRunAt: DateTime               # Timestamp of last execution
  nextRunAt: DateTime!              # Calculated next execution time (in UTC)
  createdAt: DateTime!
  updatedAt: DateTime!
}

input WorkflowScheduleInput {
  id: ID                            # Schedule ID (for updates only)
  workflowId: ID                    # Workflow ID (required for new schedules)
  cronExpression: String            # Cron expression (required for new schedules)
  timezone: String                  # IANA timezone (required for new schedules)
  enabled: Boolean                  # Enable or disable the schedule
  payload: JSON                     # Input data for workflow execution
  options: JSON                     # Execution options
}
Cron Expression Format:
  • Uses standard 5-field cron syntax: minute hour day month weekday
  • Minute: 0-59
  • Hour: 0-23
  • Day: 1-31
  • Month: 1-12
  • Weekday: 0-6 (Sunday to Saturday)
  • Supports ranges (1-5), lists (1,3,5), and steps (*/15)
  • Does NOT support seconds or years
Common Examples:
  • 0 2 * * * - Daily at 2:00 AM
  • 0 * * * * - Every hour
  • */15 * * * * - Every 15 minutes
  • 0 9-17 * * 1-5 - Every hour from 9 AM to 5 PM, Monday to Friday
  • 0 0 * * 0 - Weekly on Sunday at midnight
Timezone Handling:
  • All schedules require a valid IANA timezone
  • Next run times are calculated in the specified timezone
  • Times are stored in UTC internally
  • The scheduler polls every 30 seconds to check for due schedules

ExecutionStep

Individual step within a workflow.
type ExecutionStep {
  id: String!
  apiConfig: ApiConfig!             # API configuration for this step
  integrationId: ID                 # Integration to use for this step
  executionMode: String             # DIRECT | LOOP
  loopSelector: JSONata             # JSONata expression for loop iteration
  loopMaxIters: Int                 # Maximum loop iterations
  inputMapping: JSONata             # Input data transformation
  responseMapping: JSONata          # Response data transformation
}

Integration

Third-party service integration configuration.
type Integration {
  id: ID!
  name: String                      # Human-readable name
  type: String                      # Integration type
  urlHost: String                   # Base host URL
  urlPath: String                   # Default path
  credentials: JSON                 # Stored credentials (encrypted at rest)
  documentationUrl: String          # Link to API documentation
  documentation: String             # Documentation content
  documentationPending: Boolean     # Whether documentation is being processed
  icon: String                      # Icon URL
  version: String                   # Integration version
  createdAt: DateTime
  updatedAt: DateTime
}

SuggestedIntegration

AI-suggested integration based on natural language search terms.
type SuggestedIntegration {
  integration: Integration!         # Full integration object
  reason: String!                   # Why this integration is relevant
}

SuggestedTool

AI-suggested tool (workflow) based on natural language search terms.
type ToolStep {
  integrationId: String             # Integration used in this step
  instruction: String               # Step-level instruction
}

type SuggestedTool {
  id: ID!                           # Tool identifier
  instruction: String               # What the tool does
  inputSchema: JSONSchema           # Input schema for the tool
  steps: [ToolStep!]!               # Steps and integrations used
  responseSchema: JSONSchema        # Output schema for the tool
  reason: String!                   # Why this tool matches the search
}

TenantInfo

Tenant account information.
type TenantInfo {
  email: String                     # Tenant email
  emailEntrySkipped: Boolean!       # Whether email entry was skipped
}

WorkflowResult

Result of workflow execution.
type WorkflowResult {
  id: ID!
  success: Boolean!
  data: JSON
  error: String
  startedAt: DateTime!
  completedAt: DateTime!
  config: Workflow
  stepResults: [WorkflowStepResult!]
}

WorkflowStepResult

Result of individual workflow step execution.
type WorkflowStepResult {
  stepId: String!
  success: Boolean!
  rawData: JSON
  transformedData: JSON
  error: String
}

RunResult

Result of individual operation execution.
type RunResult {
  id: ID!
  success: Boolean!
  data: JSON
  error: String
  startedAt: DateTime!
  completedAt: DateTime!
  config: ConfigType
}

Log

Log entry for operation tracking.
type Log {
  id: ID!
  message: String!
  level: LogLevel!
  timestamp: DateTime!
  runId: ID
}

Pagination

Configuration for automatic pagination handling.
type Pagination {
  type: PaginationType!             # Pagination strategy (OFFSET_BASED, PAGE_BASED, CURSOR_BASED, DISABLED)
  pageSize: String                  # Number of items per page (default: "100")
  cursorPath: String                # JSONPath to cursor field for cursor-based pagination (e.g., "$.next_cursor")
  stopCondition: String             # Condition to stop pagination (optional)
}
Pagination Types:
  • OFFSET_BASED: Uses offset/limit parameters
  • PAGE_BASED: Uses page number and page size
  • CURSOR_BASED: Uses cursor tokens for navigation
  • DISABLED: No automatic pagination (default)

List Types

RunList

type RunList {
  items: [RunResult!]!
  total: Int!
}

WorkflowList

type WorkflowList {
  items: [Workflow!]!
  total: Int!
}

IntegrationList

type IntegrationList {
  items: [Integration!]!
  total: Int!
}

Enums

HttpMethod

Available HTTP methods:
  • GET
  • POST
  • PUT
  • DELETE
  • PATCH
  • HEAD
  • OPTIONS

AuthType

Authentication methods:
  • NONE - No authentication
  • HEADER - Authentication via headers
  • QUERY_PARAM - Authentication via query parameters
  • OAUTH2 - OAuth 2.0 authentication

FileType

Supported file formats:
  • AUTO - Automatic detection
  • JSON - JSON files
  • CSV - CSV files
  • XML - XML files

DecompressionMethod

Available decompression methods:
  • NONE - No decompression
  • GZIP - gzip compression
  • DEFLATE - deflate compression
  • ZIP - zip archives
  • AUTO - Automatic detection

CacheMode

Cache behavior options:
  • ENABLED - Full caching
  • DISABLED - No caching
  • READONLY - Read-only cache. This is the default mode.
  • WRITEONLY - Write-only cache

PaginationType

Pagination type options:
  • OFFSET_BASED - Offset-based pagination
  • PAGE_BASED - Page-based pagination
  • CURSOR_BASED - Cursor-based pagination
  • DISABLED - Disabled pagination

LogLevel

Log level options:
  • DEBUG - Debug level
  • INFO - Info level
  • WARN - Warn level
  • ERROR - Error level

SelfHealingMode

Self-healing behavior options:
  • ENABLED - Full self-healing
  • TRANSFORM_ONLY - Transform-only self-healing
  • REQUEST_ONLY - Request-only self-healing
  • DISABLED - No self-healing

UpsertMode

Upsert operation modes:
  • CREATE - Create only
  • UPDATE - Update only
  • UPSERT - Create or update

Subscriptions

Logs

Stream log messages in real time.
subscription {
  logs {
    id
    message
    level
    timestamp
    runId
  }
}
  • id: ID of the log message
  • message: Log message string
  • level: LogLevel (DEBUG, INFO, WARN, ERROR)
  • timestamp: DateTime
  • runId: ID of the related run (optional)

WorkflowResult

Result of workflow execution with detailed step results.
type WorkflowResult {
  id: ID!
  success: Boolean!
  data: JSON
  error: String
  startedAt: DateTime!
  completedAt: DateTime!
  config: Workflow
  stepResults: [WorkflowStepResult!]
}
  • stepResults: Array of individual step results within the workflow

WorkflowStepResult

Result of an individual step within a workflow execution.
type WorkflowStepResult {
  stepId: String!
  success: Boolean!
  rawData: JSON
  transformedData: JSON
  error: String
}
  • stepId: Identifier of the step within the workflow
  • rawData: Raw response data before transformation
  • transformedData: Data after applying transformations

ExecutionStep

Configuration for a single step within a workflow.
type ExecutionStep {
  id: String!
  apiConfig: ApiConfig!
  integrationId: ID
  executionMode: String     # DIRECT | LOOP
  loopSelector: JSONata
  loopMaxIters: Int
  inputMapping: JSONata
  responseMapping: JSONata
}
  • executionMode: How to execute the step (DIRECT for single execution, LOOP for batch processing)
  • loopSelector: JSONata expression to select items for looping
  • loopMaxIters: Maximum iterations for loop mode (default: 1000)
  • inputMapping: JSONata expression to map workflow data to step input
  • responseMapping: JSONata expression to transform step output

SuggestedIntegration

Suggested integration returned by findRelevantIntegrations query.
type SuggestedIntegration {
  id: String!
  reason: String!
  savedCredentials: [String!]!
}
  • reason: Explanation of why this integration was suggested
  • savedCredentials: Names of credentials already saved for this integration
See also: