Generic GraphQL request action

This action is available in the Rewst actions section of the workflow builder's actions list, but is open-ended in its capabilities.

Description: A generic action for making authenticated requests against Rewst''s GraphQL API. The Generic GraphQL Request action is part of the Rewst action pack and enables:

  • Direct API access: Execute custom GraphQL queries and mutations against Rewst's backend

  • Advanced data retrieval: Access data structures not available through standard actions

  • Custom automation: Build sophisticated workflows with precise data control

  • Administrative operations: Perform bulk operations and administrative tasks programmatically

Parameters:

  • Operation Type: The type of GraphQL operation: query or mutation

  • Graph Operation: The name of the specific GraphQL operation to execute

  • Variable Values: Variables to pass to the GraphQL operation

  • Response Fields: Specify the fields to include in the GraphQL response. Only provide the inner content, as it will be wrapped in curly braces. For example, id orgName email { name } .

  • Raw Query: The complete raw GraphQL query string to execute - an alternative to operation-based approach

Generic GraphQL request action usage examples

Basic query example

operation_type: "query"
operation: "organizations"
variable_values: 
  limit: 50
  order: [["name"]]
fields: "id, name, domain, isEnabled"

Mutation example

operation_type: "mutation"
operation: "createOrgVariable"
variable_values:
  orgVariable:
    name: "custom_setting"
    value: "production"
    orgId: "{{ CTX.organization.id }}"
    category: "general"
fields: "id, name, value, category"

Raw query example

raw_query: |
  query GetWorkflowDetails($workflowId: ID!) {
    workflow(where: {id: $workflowId}) {
      id
      name
      description
      tasks {
        id
        name
        action {
          name
          pack {
            name
          }
        }
      }
    }
  }
variable_values:
  workflowId: "{{ CTX.workflow_id }}"

Generic GraphQL request action: Allowed operations

Queries

Action and configuration queries

actionOption - Retrieves a specific action option configuration.

GraphQL schema

actionOption(where: ActionOptionWhereInput): ActionOption

type ActionOption {
  actions: [Action!]
  id: ID
  optionLabel: String
  optionValue: String
  organizationId: ID
  organization: Organization
  packConfigId: ID
  resourceName: String
  packConfig: PackConfig
}

Usage example:

operation_type: "query"
operation: "actionOption"
variable_values:
  where:
    packConfigId: "{{ CTX.pack_config_id }}"
    optionLabel: "environment"
fields: "id, optionLabel, optionValue, resourceName"
actionOptions-Retrieves multiple action options with filtering and sorting.

GraphQL schema:

actionOptions(
  where: ActionOptionWhereInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["optionLabel"]]
): [ActionOption!]!

Usage example:

operation_type: "query"
operation: "actionOptions"
variable_values:
  where:
    organizationId: "{{ CTX.org_id }}"
  limit: 50
  order: [["optionLabel", "asc"]]
fields: "id, optionLabel, optionValue, organization { name }"
localReferenceOptions-Gets dropdown options for local reference models.

GraphQL schema:

localReferenceOptions(
  modelName: LocalReferenceModel!
  orgId: ID!
  filterArg: JSON
): [DropdownOption!]!

enum LocalReferenceModel {
  Crate
  CustomDatabase
  Organization
  PackConfig
  Role
  Template
  TemplateExport
  User
  Workflow
  Trigger
  Form
  Site
  Page
}

type DropdownOption {
  label: String
  value: String
}

Usage example:

operation_type: "query"
operation: "localReferenceOptions"
variable_values:
  modelName: "Workflow"
  orgId: "{{ CTX.org_id }}"
  filterArg: {"enabled": true}
fields: "label, value"
resourceTypesByPack-Gets resource types organized by pack.

GraphQL schema:

resourceTypesByPack: [PackResourceTypesContainer!]!

type PackResourceTypesContainer {
  id: ID!
  packName: String!
  resourceTypes: [String!]!
}

Action management queries

action-Retrieves a specific action definition.

GraphQL schema:

action(where: ActionInput, search: ActionSearch): Action

type Action {
  actionOptions: [ActionOption!]!
  className: String
  defaultHumanSecondsSaved: Int
  deprecated: Boolean
  deprecationMessage: String
  description: String
  enabled: Boolean
  entryPoint: String
  category: String
  hidden: Boolean
  icon: String
  id: ID
  name: String
  organization: Organization
  orgId: ID
  outputSchema: JSON
  pack(where: PackInput): Pack
  packId: ID!
  parameters(populateOptions: Boolean = true): JSON
  ref: String
  runner: Runner
  uid: ID
  visibleForOrganizations: [Organization!]!
  workflow: Workflow
}

Usage example:

operation_type: "query"
operation: "action"
variable_values:
  where:
    ref: "http_request"
    packId: "core"
fields: "id, name, description, parameters, outputSchema"
actions-Retrieves multiple actions with filtering.

GraphQL schema:

actions(
  where: ActionInput
  search: ActionSearch
  limit: Int = 100
  offset: Int
  order: [[String!]!] = [["name"]]
): [Action!]!

actionsForOrg-Gets actions available to a specific organization.

GraphQL schema:

actionsForOrg(
  where: ActionInput
  search: ActionSearch
  limit: Int = 100
  offset: Int
  order: [[String!]!] = [["name"]]
  orgId: ID
): [Action!]!

System and Debug Queries

announcement-Gets system announcements.

debug-Debug endpoint for system information.

GraphQL schema:

debug: Boolean

Component management queries

component-Retrieves a specific component definition.

GraphQL schema:

component(id: ID!): Component

type Component {
  id: ID!
  orgId: ID!
  name: String!
  description: String
  currentVersion: Int
  createdBy: User
  createdById: ID
  createdAt: String
  updatedAt: String
  versions: [ComponentVersion!]
  updatedBy: User
  updatedById: ID
}
components-Gets multiple components for an organization.

GraphQL schema:

components(orgId: ID!): [Component]

componentsByRoots-Gets components by their root IDs.

GraphQL schema:

componentsByRoots(rootIds: [ID]!): [Component]
componentTree-Gets the component tree structure.

GraphQL schema:

componentTree(id: ID!): ComponentTree

type ComponentTree {
  encoded: String!
  component: Component!
  orgId: ID!
  versionNumber: Int
  createdAt: String
  updatedAt: String
  updatedBy: User
}

Crate management queries

crateTokenTypes-Gets available crate token types.

GraphQL schema:

crateTokenTypes: [String!]!
crate-Retrieves a specific crate.

GraphQL schema:

crate(
  where: CrateWhereInput
  search: CrateSearchInput
  selectedOrgId: ID
): Crate

type Crate {
  associatedPacks: [Pack!]
  category: String
  crateTriggers: [CrateTrigger!]
  createdAt: String
  description: String
  id: ID!
  isPublic: Boolean!
  isUnpackedForSelectedOrg: Boolean
  lastPublishedAt: String
  maturity: CrateMaturity
  name: String!
  orgId: ID!
  primaryPack: Pack
  primaryPackId: ID
  providedValue: String
  replicationRegions: [CrateReplicationRegion!]
  requiredOrgVariables: [String!]
  setupAssistance: Boolean
  setupTime: Int
  sourceEnvironment: String
  status: CrateStatus!
  tags: [Tag!]
  tagIds: [ID!]
  tokens: [CrateToken!]!
  triggers: [Trigger!]
  unpackingCount: Int
  unpackedWorkflowId: ID
  updatedAt: String
  workflow: Workflow
  workflowId: ID
  gid: ID
  updatedById: ID
  createdById: ID
}
crates-Gets multiple crates with filtering and sorting.

GraphQL schema:

crates(
  where: CrateWhereInput
  search: CrateSearchInput
  selectedOrgId: ID
  limit: Int
  offset: Int
  order: [[String!]!] = [["unpackingCount", "desc"], ["createdAt", "asc"]]
): [Crate!]!
crateExportInfo-Gets export information for a workflow to crate.

GraphQL schema:

crateExportInfo(workflowId: ID!): JSON
crateUnpackingArgumentSet-Gets crate unpacking argument sets.

GraphQL schema:

crateUnpackingArgumentSet(
  where: CrateUnpackingArgumentSetWhereInput
): CrateUnpackingArgumentSet

type CrateUnpackingArgumentSet {
  arguments: [CrateUnpackingArgument!]!
  crate: Crate!
  crateId: ID!
  crateTriggerUnpackings: [CrateTriggerUnpacking!]!
  createdAt: String!
  createdBy: User!
  createdById: ID!
  humanSecondsSaved: Int!
  id: ID!
  orgId: ID!
  updatedAt: String
  updatedBy: User
  updatedById: ID
  workflowName: String!
}

Feature preview queries

featurePreviewSetting-Gets a specific feature preview setting.

GraphQL schema:

featurePreviewSetting(where: FeaturePreviewSettingWhereInput): FeaturePreviewSetting

type FeaturePreviewSetting {
  description: String!
  id: ID!
  isStaffOnly: Boolean!
  label: String!
}
featurePreviewSettings-Gets multiple feature preview settings.

GraphQL schema:

featurePreviewSettings(
  where: FeaturePreviewSettingWhereInput,
  order: [[String!]!] = [["createdAt"]]
): [FeaturePreviewSetting]

Foreign Object Reference Queries

foreignObjectReference-Gets a specific foreign object reference.

GraphQL schema:

foreignObjectReference(
  where: ForeignObjectReferenceWhereInput
): ForeignObjectReference

type ForeignObjectReference {
  action: Action
  actionId: ID
  id: ID!
  identifier: ID
  organization: Organization!
  orgId: ID!
  packConfig: PackConfig
  packConfigId: ID
  referenceId: ID!
  workflowExecution: WorkflowExecution
  workflowExecutionId: ID
}
foreignObjectReferences-Gets multiple foreign object references.

GraphQL schema:

foreignObjectReferences(
  where: ForeignObjectReferenceWhereInput
): [ForeignObjectReference!]!

Form management queries

form-Retrieves a specific form definition.

GraphQL schema:

form(
  where: FormWhereInput
  search: FormSearchInput
  orgContextId: ID
): Form

type Form {
  clonedFrom: Form
  clonedFromId: ID
  cloneOverrides: JSON
  clones: [Form]
  createdBy: User
  createdById: ID
  createdAt: String
  description: String
  fields(orgContextId: ID): [FormField]
  id: ID!
  isSynchronized: Boolean
  name: String!
  organization: Organization!
  orgId: ID!
  tags: [Tag!]!
  triggers: [Trigger!]
  unpackedFrom: Crate
  unpackedFromId: ID
  updatedAt: String
  updatedBy: User
  updatedById: ID
  warrant: Warrant
}
forms-Gets multiple forms with filtering.

GraphQL schema:

forms(
  where: FormWhereInput
  search: FormSearchInput
  limit: Int
  offset: Int
  hasTagIds: [ID]
  order: [[String!]!] = [["name"]]
): [Form!]!
packConfigsForForm-Gets pack configurations associated with a form.

GraphQL schema:

packConfigsForForm(formId: ID!, orgId: ID!, triggerId: ID): [PackConfig!]!
evaluatedForm-Gets an evaluated form for a specific trigger.

GraphQL schema:

evaluatedForm(
  where: EvaluatedFormWhereInput
  orgContextId: ID
): Form

Microsoft CSP Queries

microsoftCSPCustomer-Gets Microsoft CSP customer information.

GraphQL schema:

microsoftCSPCustomer(
  cspPackConfigId: ID!
  where: MicrosoftCSPCustomerWhereInput
): MicrosoftCSPCustomer

type MicrosoftCSPCustomer {
  createdAt: String!
  companyName: String!
  cspTenantId: String!
  hasConsent: Boolean!
  id: ID!
  linkedOrganizations: [Organization!]
  tenantId: String!
  updatedAt: String!
}
microsoftCSPCustomers-Gets multiple Microsoft CSP customers.

GraphQL schema:

microsoftCSPCustomers(
  cspPackConfigId: ID!
  search: MicrosoftCSPCustomerSearchInput,
  where: MicrosoftCSPCustomerWhereInput
): [MicrosoftCSPCustomer!]!

Trigger instance queries

orgTriggerInstance-Gets a specific organization trigger instance.

GraphQL schema:

orgTriggerInstance(
  where: OrgTriggerInstanceWhereInput
  search: OrgTriggerInstanceSearchInput
): OrgTriggerInstance

type OrgTriggerInstance {
  id: ID!
  isManualActivation: Boolean
  organization: Organization
  orgId: ID
  lastSearchedAt: String
  trigger: Trigger
  triggerId: ID
  state: JSON
  createdAt: String!
  updatedAt: String!
}
orgTriggerInstances-Gets multiple organization trigger instances.

GraphQL schema:

orgTriggerInstances(
  where: OrgTriggerInstanceWhereInput
  search: OrgTriggerInstanceSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["createdAt"]]
): [OrgTriggerInstance!]!

Organization variable queries

orgVariable-Gets a specific organization variable.

GraphQL schema:

orgVariable(
  where: OrgVariableWhereInput
  search: OrgVariableSearchInput
  maskSecrets: Boolean
): OrgVariable

type OrgVariable {
  cascade: Boolean!
  category: OrgVariableCategory!
  createdAt: String!
  id: ID!
  name: String!
  organization: Organization!
  orgId: ID!
  packConfig: PackConfig
  packConfigId: ID
  updatedAt: String
  value: String
}

enum OrgVariableCategory {
  contact
  general
  secret
  system
}
orgVariables-Gets multiple organization variables.

GraphQL schema:

orgVariables(
  where: OrgVariableWhereInput
  search: OrgVariableSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
  maskSecrets: Boolean
): [OrgVariable!]!
visibleOrgVariables-Gets organization variables visible to a specific organization.

GraphQL schema:

visibleOrgVariables(
  search: OrgVariableSearchInput
  visibleForOrgId: ID!
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [OrgVariable!]!

Organization management queries

organization-Gets a specific organization.

GraphQL schema:

organization(
  where: OrganizationWhereInput
  search: OrganizationSearchInput
): Organization

type Organization {
  actions: [Action!]!
  activatedTriggers: [Trigger!]!
  createdAt: String
  createdTags: [Tag!]!
  domain: String
  deletedAt: String
  forms: [Form!]!
  id: ID
  isMsp: Boolean
  isStaff: Boolean
  isEnabled: Boolean
  isDeleted: Boolean
  isInternal: Boolean
  installedPacks: [Pack!]!
  featurePreviewSettings: [OrganizationFeaturePreviewSetting]
  managedOrgAutoInstallingWorkflows: [Workflow!]!
  managedAndSubOrgs: [Organization!]!
  managedOrgs: [Organization!]!
  managingOrg: Organization
  managingOrgId: ID
  name: String!
  orgSlug: String
  packConfigs: [PackConfig!]!
  resultsRetentionDays: Int
  rocSiteId: String
  tags: [Tag!]!
  templates: [Template!]!
  tid: ID
  triggerInstances: [OrgTriggerInstance!]!
  triggers: [Trigger!]!
  users: [User!]!
  variables: [OrgVariable!]!
  visibleActions: [Action!]!
  visiblePackConfigs: [PackConfig!]!
  visibleWorkflows: [Workflow!]!
  workflowExecutions: [WorkflowExecution!]!
  workflows: [Workflow!]!
  supportAccessStatus: SupportAccessStatus
}
organizations-Gets multiple organizations.

GraphQL schema:

organizations(
  where: OrganizationWhereInput
  search: OrganizationSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [Organization!]!
orgSearch-Performs organization search with breadcrumbs.

GraphQL schema:

orgSearch(
  search: String
  rootOrgId: ID!
  breadcrumbRootOrgId: ID!
): [OrgSearchResult!]!

type OrgSearchResult {
  id: ID!
  name: String!
  hasChildren: Boolean!
  breadcrumbs: [OrgBreadcrumb]
  managingOrgId: ID
  supportAccessStatus: SupportAccessStatus
  isInternal: Boolean
  }
softDeletedOrgs-Gets soft-deleted organizations.

GraphQL schema:

softDeletedOrgs(managingOrgId: ID!): [Organization!]!

Pack action option queries

packActionOption-Gets a specific pack action option.

GraphQL schema:

packActionOption(where: PackActionOptionWhereInput): PackActionOption

type PackActionOption {
  id: ID!
  name: String!
  packId: ID!
  path: String!
  method: HTTPMethod
  paginate: Boolean
  queryParams: JSON
  pathParams: JSON
  headers: JSON
  requiredPathVars: [String!]
  requiredQueryVars: [String!]
  requiredHeaderVars: [String!]
  resultsKey: String
  valueField: String!
  label: String!
  labelIsTemplate: Boolean
  valueFieldIsPath: Boolean
  maxPages: Int
  pageSize: Int
}
packActionOptions-Gets multiple pack action options.

GraphQL schema:

packActionOptions(
  where: PackActionOptionWhereInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["label"]]
): [PackActionOption!]!

Pack bundle queries

packBundle-Gets a specific pack bundle.

GraphQL schema:

packBundle(where: PackBundleWhereInput!): PackBundle

type PackBundle {
  configSchema: JSON
  description: String
  id: ID!
  name: String!
  packs: [Pack!]!
  ref: String!
}
packBundles-Gets multiple pack bundles.

GraphQL schema:

packBundles(
  where: PackBundleWhereInput
  search: PackBundleSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [PackBundle]!

Pack configuration queries

packConfig-Gets a specific pack configuration.

GraphQL schema:

packConfig(
  where: PackConfigWhereInput
  search: PackConfigSearch
  includeSpec: Boolean
): PackConfig

type PackConfig {
  appliedToTriggers: [Trigger!]!
  config: JSON
  default: Boolean
  description: String
  id: ID
  metadata: JSON
  name: String!
  organization: Organization
  foreignObjectReferences: [ForeignObjectReference!]!
  orgId: ID
  orgVariables: [OrgVariable!]!
  pack: Pack
  packId: ID
  actionOptions: [ActionOption!]!
  updatedAt: String
  createdAt: String
  visibleForOrganizations: [Organization!]!
}
packConfigs-Gets multiple pack configurations.

GraphQL schema:

packConfigs(
  where: PackConfigWhereInput
  search: PackConfigSearch
  resourceNames: String
  order: [[String!]!]
  includeSpec: Boolean
): [PackConfig!]!
packConfigsForOrg-Gets pack configurations for a specific organization.

GraphQL schema:

packConfigsForOrg(
  packIds: [ID!]!
  orgId: ID!
  includeSpec: Boolean
): [PackConfig!]!

Pack management queries

pack-Gets a specific integration pack.

GraphQL schema:

pack(where: PackWhereInput): Pack

type Pack {
  actions: [Action!]!
  configFormSchema: JSON
  configSchema: JSON
  metadata: JSON
  description: String
  id: String
  orgId: ID
  installedBy: [Organization]
  isDefault: Boolean
  isOauthConfiguration: Boolean
  isMultitenancyEnabled: Boolean
  name: String
  orgVariables: JSON
  packBundle: PackBundle
  packBundleId: ID
  packConfigs: [PackConfig!]!
  packOverrides: [PackOverride]
  packTestAction: Action
  packType: PackType
  ref: String
  icon: String
  sensorTypes: [SensorType!]!
  setupInstructions: String
  status: PackStatus!
  tags: [Tag!]!
  triggerTypes: [TriggerType!]!
  uid: String
  version: String
}
packsAndBundlesByInstalledState-Gets packs and bundles organized by installation state.

GraphQL schema:

packsAndBundlesByInstalledState(
  orgId: ID!
  includeCustomPack: Boolean
): PacksAndBundlesByInstalledState!

type PacksAndBundlesByInstalledState {
  installedPacksAndBundles: [PackOrPackBundle!]
  marketplacePacksAndBundles: [PackOrPackBundle!]
}

Page management queries

page-Gets a specific page definition.

GraphQL schema:

page(where: PageWhereInput!): Page

type Page {
  createdBy: User
  createdById: ID
  createdAt: String
  id: ID!
  loader: Loader
  name: String!
  path: String!
  site: Site
  siteId: ID
  updatedAt: String
  updatedBy: User
  updatedById: ID
  workflows: [Workflow!]!
  nodes: [PageNode]
  permission: Permission
  orgId: ID
  variables: [JSON]
  organization: Organization
  isSynchronized: Boolean
  clonedFromId: ID
  clonedFrom: Site
  cloneOverrides: JSON
  clones: [Page]
  title: String
}
pageVars-Gets page variables.

GraphQL schema:

pageVars(id: ID!, query: JSON): JSON
pages-Gets multiple pages.

GraphQL schema:

pages(
  where: PageWhereInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
  search: PageSearchInput
): [Page!]!

Permission queries

permission-Gets a specific permission.

GraphQL schema:

permission(where: PermissionWhereInput): Permission

type Permission {
  id: ID
  templateId: ID
  authorizedForOrganizations: [Organization]
  authorizedForSubOrganizations: [Organization]
  excludeOrganizations: [Organization]
  roleIds: [String]
  override: String
  objectType: String
  objectId: String
  orgId: ID
  relation: String
  permissionType: String
  subjectType: String
  subjectId: String
}
permissions-Gets multiple permissions.

GraphQL schema:

permissions(where: PermissionWhereInput): [Permission!]!

Sensor type queries

sensorType-Gets a specific sensor type.

GraphQL schema:

sensorType(
  where: SensorTypeInput
  search: SensorTypeSearchInput
): SensorType

type SensorType {
  description: String
  enabled: Boolean
  entryPoint: String
  id: ID
  name: String
  notifyOnTriggerChanges: Boolean
  pack: Pack
  ref: String
  triggerTypes: [TriggerType!]!
}
sensorTypes-Gets multiple sensor types.

GraphQL schema:

sensorTypes(
  where: SensorTypeInput
  search: SensorTypeSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [SensorType!]!

Site and app management queries

site-Gets a specific site/app.

GraphQL schema:

site(where: SiteWhereInput, search: SiteSearchInput): Site

type Site {
  createdBy: User
  createdById: ID
  createdAt: String
  domain: String
  id: ID!
  isLive: Boolean
  statusCode: Int
  statusMessage: String
  name: String!
  organization: Organization
  orgId: ID!
  shared: Boolean
  updatedAt: String
  updatedBy: User
  updatedById: ID
  template: String
  theme: JSON
  themeReferenceOrgVariable: String
  pages: [Page]
  permission: Permission
  customDomain: String
  isDnsValidated: Boolean
  useCustomDomain: Boolean
  isSynchronized: Boolean
  clonedFromId: ID
  clonedFrom: Site
  cloneOverrides: JSON
  clones: [Site]
  faviconUrl: String
}
sites-Gets multiple sites/apps.

GraphQL schema:

sites(where: SiteWhereInput, search: SiteSearchInput): [Site!]!
getAppPermissions-Gets app permissions for an organization.

GraphQL schema:

getAppPermissions(orgId: ID!): [Site!]!
getSiteTheme-Gets site theme configuration.

GraphQL schema:

getSiteTheme(id: ID, domain: String): JSON

Tag management queries

tag-Gets a specific tag.

GraphQL schema:

tag(where: TagWhereInput, search: TagSearchInput): Tag

type Tag {
  crates: [Crate!]
  createdAt: String
  description: String
  id: ID
  name: String
  organization: Organization
  organizations: [Organization!]!
  orgId: ID
  packs: [Pack!]!
  triggers: [Trigger!]!
  updatedAt: String
  color: String
}
tags-Gets multiple tags.

GraphQL schema:

tags(
  where: TagWhereInput
  search: TagSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
  includeTagsWithNoOwner: Boolean = false
): [Tag!]!
crateTags-Gets tags associated with crates.

GraphQL schema:

crateTags(
  where: TagWhereInput
  search: TagSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [Tag!]!

Task and execution analytics queries

dailyTaskCountsByDateRange-Gets daily task counts within a date range.

GraphQL schema:

dailyTaskCountsByDateRange(
  orgId: ID!
  startDate: String!
  endDate: String!
): [TaskCountByDate!]!

type TaskCountByDate {
  date: String!
  count: Int!
}
taskExecutionStats-Gets task execution statistics.

GraphQL schema:

taskExecutionStats(orgId: ID!, createdSince: String): Int!
taskLog-Gets a specific task log entry.

GraphQL schema:

taskLog(
  where: TaskLogWhereInput
  search: TaskLogSearchInput
): TaskLog

type TaskLog {
  createdAt: String
  executionId: String
  executionTime: String
  id: ID
  input: JSON
  message: String
  originalParentTaskId: String
  originalPrincipalOrgId: ID
  originalPrincipalOrgName: String
  originalRunAsOrgId: String
  originalRunAsOrgName: String
  originalWorkflowExecutionId: String
  originalWorkflowTaskId: String
  originalWorkflowTaskName: String
  parentTask: WorkflowTask
  parentTaskId: ID
  result: JSON
  runAsOrg: Organization
  runAsOrgId: ID
  principalOrg: Organization
  principalOrgId: ID
  status: String
  taskExecutionId: ID
  updatedAt: String
  workflow: Workflow
  workflowExecution: WorkflowExecution
  workflowExecutionId: String
  workflowTask: WorkflowTask
  workflowTaskId: ID
}
taskLogs-Gets multiple task log entries.

GraphQL schema:

taskLogs(
  where: TaskLogWhereInput
  search: TaskLogSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["createdAt"]]
  ): [TaskLog!]!

Template management queries

template- Gets a specific template.

GraphQL schema:

template(where: TemplateInput): Template

type Template {
  body: String!
  clonedFrom: Template
  clonedFromId: ID
  cloneOverrides: JSON
  clones: [Template]
  contentType: String!
  context: JSON
  createdAt: String!
  description: String
  id: ID!
  isShared: Boolean
  isSynchronized: Boolean
  language: String!
  name: String!
  organization: Organization!
  orgId: ID!
  permission: Permission
  tags: [Tag!]!
  unpackedFrom: Crate
  unpackedFromId: ID
  updatedAt: String!
  updatedBy: User
  updatedById: ID
}
templates-Gets multiple templates.

GraphQL schema:

templates(
  where: TemplateInput
  search: TemplateSearch
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [Template!]!
jinjaTemplate-Gets a Jinja template for rendering.

GraphQL schema:

jinjaTemplate(where: TemplateInput): Template

Trigger type queries

triggerType-Gets a specific trigger type.

GraphQL schema:

triggerType(where: TriggerTypeWhereInput): TriggerType

type TriggerType {
  description: String
  id: ID
  name: String
  pack: Pack
  parametersSchema(filterArg: JSON, orgId: ID): JSON
  outputSchema: JSON
  ref: String
  isPoll: Boolean
  isWebhook: Boolean
  sensorType: SensorType
  triggers: [Trigger!]!
  webhookUrlTemplate: String
  canRunForManagedOrgs: Boolean
  enabled: Boolean
}
triggerTypes-Gets multiple trigger types.

GraphQL schema:

triggerTypes(
  where: TriggerTypeWhereInput
  search: TriggerTypesSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [TriggerType!]!

Trigger management queries

trigger-Gets a specific trigger.

GraphQL schema:

trigger(
  where: TriggerWhereInput
  search: TriggerSearchInput
): Trigger

type Trigger {
  activatedForOrgs: [Organization!]!
  autoActivateManagedOrgs: Boolean!
  clonedFrom: Trigger
  clonedFromId: ID
  cloneOverrides: JSON
  clones: [Trigger]!
  criteria: JSON
  description: String
  enabled: Boolean
  id: ID!
  isSynchronized: Boolean
  name: String
  organization: Organization!
  orgId: ID
  orgInstances: [OrgTriggerInstance]
  packOverrides: [PackOverride!]
  parameters: JSON
  state: JSON
  tags: [Tag!]!
  triggerType: TriggerType
  triggerTypeId: ID!
  unpackedFrom: Crate
  unpackedFromId: ID
  vars: [JSON]
  workflowId: ID!
  form: Form
  formId: ID
  workflow: Workflow!
}
workflowCompletionListeners-Gets workflow completion listeners.

GraphQL schema:

workflowCompletionListeners(
  where: TriggerWhereInput
  search: TriggerSearchInput
): [Trigger!]!
triggers-Gets multiple triggers.

GraphQL schema:

triggers(
  includeUnlisted: Boolean
  where: TriggerWhereInput
  search: TriggerSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [Trigger!]!
triggerDbNotificationErrors-Gets database notification errors for a trigger.

GraphQL schema:

triggerDbNotificationErrors(triggerId: ID!): [DatabaseNotificationError!]!

type DatabaseNotificationError {
  detail: String!
  raised_at: String!
  type: String!
}

User invite queries

userInvite-Gets a specific user invite.

GraphQL schema:

userInvite(
  where: UserInviteWhereInput
  search: UserInviteSearchInput
): UserInvite

type UserInvite {
  acceptedAt: String
  createdAt: String
  createdBy: User
  createdById: ID
  email: String!
  id: ID!
  isAccepted: Boolean
  organization: Organization!
  orgId: ID!
  roleIds: [String]
  roles: [JSON]
  sendEmail: Boolean
}
userInvites-Gets multiple user invites.

GraphQL schema:

userInvites(
  where: UserInviteWhereInput
  search: UserInviteSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["email"]]
): [UserInvite]

User management queries

me-Gets current user information.

GraphQL schema:

me: User

type User {
  createdAt: String
  favoriteActions: [UserFavoriteAction!]!
  id: ID
  isApiUser: Boolean
  isSuperuser: Boolean
  isTestUser: Boolean
  managedOrgs: [Organization!]!
  orgId: ID
  organization: Organization
  preferences: UserPreferences!
  roleIds: [String!]!
  roles: [JSON]
  sub: String
  username: String
  parentUserId: ID
  parentUsername: String
}
userOrganization-Gets the user's organization.

GraphQL schema:

userOrganization: Organization
user-Gets a specific user.

GraphQL schema:

user(where: UserWhereInput, search: UserSearchInput): User
users-Gets multiple users.

GraphQL schema:

users(
  where: UserWhereInput
  search: UserSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["username"]]
): [User!]!
getTestUsers-Gets test users.

GraphQL schema:

getTestUsers(where: UserWhereInput): [User!]!
getTestUserSession-Gets current test user session.

GraphQL schema:

getTestUserSession: User

Workflow analytics queries

timeSavedGroupByWorkflow-Gets time saved statistics grouped by workflow.

GraphQL schema:

timeSavedGroupByWorkflow(
  orgId: ID!
  workflowStatus: String
  updatedAt: String!
  useStatsTable: Boolean! = true
): [TimeSavedGroupByWorkflow!]!

type TimeSavedGroupByWorkflow {
  workflowId: ID!
  workflowName: String
  secondsSaved: Int
  totalExecutions: Int
  successfulExecutions: Int
  failedExecutions: Int
}
timeSavedGroupBySubOrg-Gets time saved statistics grouped by sub-organization.

GraphQL schema:

timeSavedGroupBySubOrg(
  orgId: ID!
  workflowStatus: String
  updatedAt: String!
  useStatsTable: Boolean! = true
): [TimeSavedGroupByOrg!]!

type TimeSavedGroupByOrg {
  workflowId: ID!
  workflowName: String
  secondsSaved: Int
  totalExecutions: Int
  ranForOrg: String
  }
workflowExecutionStats-Gets workflow execution statistics.

GraphQL schema:

workflowExecutionStats(
  orgId: ID!
  createdSince: String!
  rollUpTimeSaved: Boolean
  includeSubWorkflows: Boolean
): WorkflowExecutionStats

type WorkflowExecutionStats {
  delayed: Int!
  failed: Int!
  humanSecondsSaved: Int!
  paused: Int!
  pending: Int!
  running: Int!
  succeeded: Int!
}
workflowExecution-Gets a specific workflow execution.

GraphQL schema:

workflowExecution(
  where: WorkflowExecutionWhereInput
  search: WorkflowExecutionSearchInput
): WorkflowExecution

type WorkflowExecution {
  childExecutions: [WorkflowExecution!]!
  completionHandledExecution: WorkflowExecution
  completionHandlerExecutions: [WorkflowExecution!]!
  conductor: WorkflowExecutionConductor
  createdAt: String
  id: ID
  numAwaitingResponseTasks: Int
  numSuccessfulTasks: Int
  organization: Organization!
  orgId: ID!
  originatingExecutionId: ID
  parentExecution: WorkflowExecution
  parentExecutionId: ID
  parentTaskExecutionId: ID
  pendingTasks: [PendingTask]
  processedCompletionAt: String
  status: String
  subExecutions: [WorkflowExecution!]!
  taskLogs: [TaskLog!]!
  updatedAt: String
  workflow: Workflow!
}
workflowExecutions-Gets multiple workflow executions.

GraphQL schema:

workflowExecutions(
  where: WorkflowExecutionWhereInput
  search: WorkflowExecutionSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["createdAt"]]
  includeSubOrgs: Boolean
): [WorkflowExecution]
workflowExecutionContexts-Gets workflow execution contexts.

GraphQL schema:

workflowExecutionContexts(workflowExecutionId: ID!): JSON
dailyTimeSavedByDateRange-Gets daily time saved within a date range.

GraphQL schema:

dailyTimeSavedByDateRange(
  orgId: ID!
  startDate: String!
  endDate: String!
): [TimeSavedByDate!]!

type TimeSavedByDate {
  date: String!
  seconds: Int!
}

Workflow patch queries

workflowPatch-Gets a specific workflow patch.

GraphQL schema:

workflowPatch(id: ID!): WorkflowPatch!

type WorkflowPatch {
  id: ID!
  patchType: PatchType!
  patch: JSON!
  comment: String!
  commentDescription: String
  user: User
  workflowId: ID!
  foreignId: ID
  createdAt: String!
  updatedAt: String!
}
workflowPatches-Gets multiple workflow patches.

GraphQL schema:

workflowPatches(
  where: WorkflowPatchWhereInput
  orderBy: WorkflowPatchOrderByInput = createdAt_DESC
  limit: Int
  offset: Int
  createdSince: String
): [WorkflowPatch!]!

Workflow management queries

workflow-Gets a specific workflow.

GraphQL schema:

workflow(
  where: WorkflowWhereInput
  search: WorkflowSearch
): Workflow

type Workflow {
  autoInstallingForManagedOrgs: [Organization!]!
  action: Action
  clonedFrom: Workflow
  clonedFromId: ID
  cloneOverrides: JSON
  clones: [Workflow]!
  crates: [Crate!]
  completionListeners: [Trigger!]!
  createdAt: String
  createdBy: User
  createdById: ID
  description: String
  humanSecondsSaved: Int!
  id: ID
  input: [String!]!
  inputSchema: JSON
  isSynchronized: Boolean
  name: String
  notes: [WorkflowNote!]
  organization: Organization!
  orgId: ID!
  output: [JSON]!
  outputSchema: JSON
  packsUsed: [Pack!]!
  parentWorkflows: [WorkflowTask]
  permission: Permission
  schemaVersion: String
  tags: [Tag!]!
  tasks: [WorkflowTask!]!
  tasksObject: JSON
  taskActions: [Action!]!
  timeout: Int
  tokens: [JSON!]
  triggers: [Trigger]
  type: WorkflowType!
  unpackedFrom: Crate
  unpackedFromId: ID
  updatedAt: String
  updatedBy: User
  updatedById: ID
  varsSchema: JSON
  version: String
  visibleForOrganizations: [Organization!]!
}
workflows-Gets multiple workflows.

GraphQL schema:

workflows(
  where: WorkflowWhereInput
  search: WorkflowSearch
  hasListeners: Boolean
  hasParentWorkflows: Boolean
  hasTriggers: Boolean
  hasTriggerOfType: TriggerOfType
  hasTokens: Boolean
  isOptionsGenerator: Boolean
  isClone: Boolean
  isSyncClone: Boolean
  hasClones: Boolean
  isCrate: Boolean
  isCrateSource: Boolean
  hasTagIds: [ID!]
  excludeTagIds: [ID!]
  requireMatchingTasks: Boolean
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [Workflow!]!
workflowNote-Gets a specific workflow note.

GraphQL schema:

workflowNote(where: WorkflowNoteWhereInput): WorkflowNote

type WorkflowNote {
  id: ID
  title: String
  clonedFrom: WorkflowNote
  clonedFromId: ID
  createdAt: String
  content: String
  metadata: JSON
  index: Int!
  updatedAt: String
  workflow: Workflow
  workflowId: ID
}
workflowNotes-Gets multiple workflow notes.

GraphQL schema:

workflowNotes(
  where: WorkflowNoteWhereInput
  search: WorkflowNoteSearchInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["index"]]
  ): [WorkflowNote!]!
workflowTask-Gets a specific workflow task.

GraphQL schema:

workflowTask(where: WorkflowTaskWhereInput): WorkflowTask

type WorkflowTask {
  action: Action
  actionId: ID
  description: String
  humanSecondsSaved: Int
  id: ID
  input: JSON
  isMocked: Boolean
  join: Int
  metadata: JSON
  mockInput: JSON
  name: String
  next: [WorkflowTransition!]!
  packOverrides: [PackOverride!]
  publishResultAs: String
  retry: WorkflowTaskRetry
  runAsOrgId: String
  timeout: Int
  transitionMode: TransitionModes
  with: WorkflowTaskWithItems
  workflow: Workflow
  workflowId: ID
  securitySchema: JSON
}
workflowTasks-Gets multiple workflow tasks.

GraphQL schema:

workflowTasks(
  where: WorkflowTaskWhereInput
  limit: Int
  offset: Int
  order: [[String!]!] = [["name"]]
): [WorkflowTask!]!

Mutations

Action option mutations

createActionOptions-Creates multiple action options.

GraphQL schema:

createActionOptions(
  actionOptions: [ActionOptionInput!]!
  replace: Boolean
): [ActionOption]

Usage example:

operation_type: "mutation"
operation: "createActionOptions"
variable_values:
  actionOptions:
    - optionLabel: "Environment"
      optionValue: "production"
      organizationId: "{{ CTX.org_id }}"
      packConfigId: "{{ CTX.pack_config_id }}"
      resourceName: "server"
  replace: false
fields: "id, optionLabel, optionValue"

Clone operations

Component mutations

createComponent-Creates a new component.

GraphQL schema:

createComponent(component: CreateComponentInput!): Component

input CreateComponentInput {
  orgId: ID!
  name: String!
  description: String
  nodeTree: JSON!
  workflows: [ID]
  isSynced: Boolean
}
updateComponent-Updates an existing component.

GraphQL schema:

updateComponent(component: UpdateComponentInput!): Component
deleteComponent-Deletes a component.

GraphQL schema:

deleteComponent(id: ID!): Boolean
duplicateComponent-Duplicates an existing component.

GraphQL schema:

duplicateComponent(id: ID!): Component

Foreign object reference mutations

createForeignObjectReference-Creates a foreign object reference.

GraphQL schema:

createForeignObjectReference(
  foreignObjectReference: CreateForeignObjectReferenceInput
): ForeignObjectReference

input CreateForeignObjectReferenceInput {
  actionId: ID
  id: ID
  identifier: ID
  orgId: ID!
  packConfigId: ID
  referenceId: ID!
  workflowExecutionId: ID
}
createOrUpdateForeignObjectReference-Creates or updates a foreign object reference.

GraphQL schema:

createOrUpdateForeignObjectReference(
  foreignObjectReference: CreateForeignObjectReferenceInput
): ForeignObjectReference

Form mutations

createForm-Creates a new form.

GraphQL schema:

createForm(form: FormCreateInput!): Form

input FormCreateInput {
  clonedFromId: ID
  cloneOverrides: JSON
  description: String
  fields: [FormFieldInput!]
  id: ID
  isSynchronized: Boolean
  name: String
  orgId: ID!
  unpackedFromId: ID
}

Usage example:

operation_type: "mutation"
operation: "createForm"
variable_values:
  form:
    name: "User Information Form"
    description: "Collects user information for onboarding"
    orgId: "{{ CTX.org_id }}"
    fields:
      - type: "TEXT_INPUT"
        index: 0
        schema:
          label: "Full Name"
          required: true
fields: "id, name, description, fields { id, type, schema }"
submitForm-Submits form data and triggers associated workflow.

GraphQL schema:

submitForm(
  id: ID!
  values: JSON!
  triggerId: ID!
  orgId: ID!
): JSON
setFormTags-Sets tags for a form.

GraphQL schema:

setFormTags(form: SetFormTagsInput!): Form

input SetFormTagsInput {
  id: ID!
  tagIds: [ID!]!
}
shallowCloneForm-Creates a shallow clone of a form.

GraphQL schema:

shallowCloneForm(
  id: ID!
  orgId: ID!
  overrides: ShallowCloneOverridesInput
  : Form)
updateForm-Updates an existing form.

GraphQL schema:

updateForm(form: FormUpdateInput!): Form
deleteForm-Deletes a form.

GraphQL schema:

deleteForm(id: ID!): Void

Organization trigger instance mutations

updateOrgTriggerInstance-Updates an organization trigger instance.

GraphQL schema:

updateOrgTriggerInstance(
  orgTriggerInstance: OrgTriggerInstanceInput!
): OrgTriggerInstance

input OrgTriggerInstanceInput {
  id: ID
  isManualActivation: Boolean
  organization: OrganizationInput
  orgId: ID
  lastSearchedAt: String
  trigger: TriggerUpdateInput
  triggerId: ID
  state: JSON
}

Organization variable mutations

createOrgVariable-Creates a new organization variable.

GraphQL schema:

createOrgVariable(orgVariable: OrgVariableCreateInput!): OrgVariable

input OrgVariableCreateInput {
  cascade: Boolean!
  id: ID
  name: String!
  value: String!
  category: OrgVariableCategory
  orgId: ID!
  packConfigId: ID
}

Usage example:

operation_type: "mutation"
operation: "createOrgVariable"
variable_values:
  orgVariable:
    name: "api_endpoint"
    value: "https://api.example.com/v1"
    category: "general"
    cascade: true
    orgId: "{{ CTX.org_id }}"
fields: "id, name, value, category, cascade"
deleteOrgVariable-Deletes an organization variable.

GraphQL schema:

deleteOrgVariable(id: ID!): ID
updateOrgVariables-Updates multiple organization variables.

GraphQL schema:

updateOrgVariables(
  orgVariables: [OrgVariableUpdateInput!]!
): [OrgVariable!]!

input OrgVariableUpdateInput {
  cascade: Boolean
  category: OrgVariableCategory
  id: ID
  name: String!
  value: String
  orgId: ID
  packConfigId: ID
}

Organization management mutations

bulkCreateOrganizations-Creates multiple organizations in bulk.

GraphQL schema:

bulkCreateOrganizations(
  organizations: [OrganizationInput!]!
): [Organization!]!
bulkDeleteOrganizations-Deletes multiple organizations in bulk.

GraphQL schema:

bulkDeleteOrganizations(organizationIds: [ID!]!): Void
createOrganization-Creates a single organization.

GraphQL schema:

createOrganization(organization: OrganizationInput): Organization

input OrganizationInput {
  domain: String
  id: ID
  isEnabled: Boolean
  managingOrgId: ID
  name: String!
  orgSlug: String
  rocSiteId: String
  tid: String
  tagIds: [ID!]
}
createOrganizations-Creates multiple organizations.

GraphQL schema:

createOrganizations(
  organizations: [OrganizationInput!]!
): [Organization]
deleteOrganization-Deletes an organization.

GraphQL schema:

deleteOrganization(id: ID!): Void
updateManagedAndSubOrganizations-Updates managed and sub-organizations.

GraphQL schema:

updateManagedAndSubOrganizations(
  organization: OrganizationUpdateInput!
): Int
updateOrganization-Updates an organization.

GraphQL schema:

updateOrganization(organization: OrganizationUpdateInput): Organization
bulkUpdateOrganizationFeaturePreviewSettingByLabel-Bulk updates feature preview settings by label.

GraphQL schema:

bulkUpdateOrganizationFeaturePreviewSettingByLabel(
  isEnabled: Boolean!
  label: String!
  orgIds: [ID!]!
): [OrganizationFeaturePreviewSetting!]!

Pack configuration mutations

synchronizePackBundleConfigs-Synchronizes pack bundle configurations.

GraphQL schema:

synchronizePackBundleConfigs(
  orgId: ID!
  packBundleId: ID!
  primaryPackConfigId: ID!
): [SynchronizedPackConfig!]!
createPackConfig-Creates a new pack configuration.

GraphQL schema:

createPackConfig(packConfig: PackConfigCreateInput!): PackConfig

input PackConfigCreateInput {
  id: ID
  name: String!
  default: Boolean
  description: String
  config: JSON
  metadata: JSON
  orgId: ID!
  packId: ID!
}
deletePackConfig-Deletes a pack configuration.

GraphQL schema:

deletePackConfig(id: ID!, orgId: ID!): Void
refetchPackConfigRefOptions-Refetches pack configuration reference options.

GraphQL schema:

refetchPackConfigRefOptions(
  packConfigId: ID!
  reference: JSON
): JobRequestedResponse
testPackConfig-Tests a pack configuration.

GraphQL schema:

testPackConfig(packConfig: PackConfigTestInput!): JobRequestedResponse
updatePackConfig-Updates a pack configuration.

GraphQL schema:

updatePackConfig(packConfig: PackConfigUpdateInput!): PackConfig
updatePackConfigs-Updates multiple pack configurations.

GraphQL schema:

updatePackConfigs(
  packConfigs: [PackConfigUpdateInput!]!
): [PackConfig!]!

Pack mutations

generatePackOrBundleAuthUrl-Generates authorization URL for pack or bundle.

GraphQL schema:

generatePackOrBundleAuthUrl(
  orgId: ID!
  packBundleId: ID
  packConfigId: ID
  extra: JSON
): AuthUrlResponse

type AuthUrlResponse {
  authUrl: String
  error: String
}
installPack-Installs a pack for an organization.

GraphQL schema:

installPack(orgId: ID!, packId: ID!, name: String): Organization
getPackInstallations-Gets pack installation information.

GraphQL schema:

getPackInstallations(packId: ID!): PackInstalledByResponse
getPackPageUrl-Gets the URL for a pack page

GraphQL schema:

getPackPageUrl(integrationRef: String!, pagePath: String!): String
updatePack-Updates a pack.

GraphQL schema:

updatePack(pack: PackUpdateInput!): Pack

Page mutations

createPage-Creates a new page.

GraphQL schema:

createPage(
  page: PageCreateInput!
  preset: String
  nodes: [PageNodeInput]
): Page

input PageCreateInput {
  id: ID
  loader: Loader
  siteId: ID
  workflows: [WorkflowInput]
  name: String!
  path: String!
  variables: [JSON]
  orgId: ID!
  clonedFromId: ID
  isSynchronized: Boolean
  cloneOverrides: JSON
}
updatePage-Updates an existing page.

GraphQL schema:

updatePage(
  page: PageUpdateInput!
  nodes: [PageNodeInput]
): Page
deletePage-Deletes a page.

GraphQL schema:

deletePage(id: ID!): Void
updatePageNode-Updates a page node.

GraphQL schema:

updatePageNode(id: ID!, props: JSON!): PageNode
updatePageNodeByCraftId-Updates a page node by craft ID.

GraphQL schema:

updatePageNodeByCraftId(
  craftId: String!
  pageId: ID!
  props: JSON!
): PageNode

Site mutations

createSite-Creates a new site/app.

GraphQL schema:

createSite(site: SiteCreateInput!): Site

input SiteCreateInput {
  name: String
  domain: String
  orgId: ID!
  template: String
  theme: JSON
  pages: [PagesImportInput]
  clonedFromId: ID
  isSynchronized: Boolean
  cloneOverrides: JSON
}
updateSite-Updates an existing site/app.

GraphQL schema:

updateSite(site: SiteUpdateInput!): Site
updateSites-Updates multiple sites.

GraphQL schema:

updateSites(sites: [SiteUpdateInput!]!): [Site!]!
deleteSite-Deletes a site/app.

GraphQL schema:

deleteSite(id: ID!): Void
validateSiteCustomDomainDNS-Validates custom domain DNS settings.

GraphQL schema:

validateSiteCustomDomainDNS(id: ID!): DNSValidationResponse

type DNSValidationResponse {
  isValid: Boolean
  message: String
}

Tag mutations

createTag-Creates a new tag.

GraphQL schema:

createTag(tag: TagCreateInput!): Tag

input TagCreateInput {
  id: ID
  name: String
  description: String
  orgId: ID!
  color: String
}
deleteTag-Deletes a tag.

GraphQL schema:

deleteTag(id: ID!): ID
updateTag-Updates a tag.

GraphQL schema:

updateTag(tag: TagUpdateInput!): Tag
updateTags-Updates multiple tags.

GraphQL schema:

updateTags(tags: [TagUpdateInput!]!): [Tag!]!
setOrganizationTags-Sets tags for an organization.

GraphQL schema:

setOrganizationTags(tagIds: [ID!]!, orgId: ID!): Organization

Template mutations

createTemplate-Creates a new template.

GraphQL schema:

createTemplate(template: TemplateCreateInput!): Template

input TemplateCreateInput {
  body: String!
  clonedFromId: ID
  cloneOverrides: JSON
  contentType: String
  context: JSON
  description: String
  id: ID
  isShared: Boolean
  isSynchronized: Boolean
  language: String
  name: String!
  orgId: ID!
  tags: [TagInput!]
  unpackedFromId: ID
}

## Best Practices

### Query Optimization

1. **Limit Data Retrieval**: Only request the fields you actually need
2. **Use Pagination**: Implement proper limit and offset for large datasets
3. **Filter Early**: Apply filters at the query level rather than post-processing

### Error Handling

```yaml
# Example workflow task with error handling
- name: execute_graphql_query
  action: rewst.generic_graph_request
  parameters:
    operation_type: "query"
    operation: "workflows"
    variable_values:
      limit: 100
      where:
        orgId: "{{ CTX.org_id }}"
  on_failure:
    - log_error:
        message: "GraphQL query failed: {{ RESULT.error }}"

Security considerations

  1. Always validate user inputs before including in queries

  2. Use organization and permission filters to restrict data access

  3. Track usage patterns for potential security issues

Common use cases for the Generic GraphQL request action

Bulk data operations

Action configuration:

  • Operation type: mutation

  • Operation: updateOrgVariables

  • Variable values:

    {
      "orgVariables": [
        {
          "id": "var1",
          "name": "setting1",
          "value": "updated_value1"
        },
        {
          "id": "var2",
          "name": "setting2",
          "value": "updated_value2"
        }
      ]
    }

Complex reporting

Action configuration:

  • Operation type: query

  • Operation: workflows

  • Variable values:

    {
      "where": {
        "orgId": "{{ CTX.org_id }}"
      },
      "limit": 1000
    }
  • Fields:

    id
    name
    description
    createdAt
    updatedAt
    tasks {
      id
      name
      action {
        name
        pack {
          name
        }
      }
    }
    triggers {
      id
      name
      enabled
    }

Data synchronization

Action configuration:

  • Operation type: query

  • Operation: organizations

  • Variable values:

    {
      "where": {
        "managingOrgId": "{{ CTX.parent_org_id }}"
      },
      "order": [["name"]]
    }
  • Fields: id, name, domain, createdAt, managedOrgs { id, name }

Troubleshoot the Generic GraphQL request action

Permission denied

  • Verify the feature flag is enabled for your organization

Query syntax errors

  • Validate GraphQL syntax using a GraphQL validator

  • Check field names against the schema

  • Ensure variable types match the expected schema types

Rate limiting

  • Implement exponential backoff for retries

  • Consider breaking large operations into smaller batches

  • Monitor API usage patterns

Debug tips

  1. Begin with basic queries before building complex operations

  2. For debugging, use the raw_query parameter to see exact queries

  3. Review workflow execution logs for detailed error messages

  4. Build queries incrementally, adding fields and filters gradually

Schema Reference

The Generic GraphQL Request action provides access to Rewst's complete GraphQL schema. Key entity types include:

  • Organization: Core organizational data and settings

  • Workflow: Automation workflow definitions and execution data

  • Action: Available actions and their configurations

  • Trigger: Event triggers and their configurations

  • Form: Dynamic forms and field definitions

  • Template: Reusable templates and scripts

  • User: User accounts and permissions

  • Pack: Integration packs and their components

For detailed schema information, contact Rewst support or refer to the GraphQL schema documentation.

Last updated

Was this helpful?