orchkaDocs

Node Types

Orchka provides a variety of node types organized into categories. Each node serves a specific purpose in your workflow.

Triggers

Triggers are the starting points of your workflows. They define when and how a workflow begins execution.

Manual Trigger

The default trigger that allows manual execution of workflows.

Type: MANUAL_TRIGGER
Category: Triggers

Use Cases:

  • Testing workflows during development
  • On-demand automation tasks
  • Debugging and troubleshooting

Cron Trigger

Starts a workflow on a cron schedule.

Type: CRON_TRIGGER
Category: Triggers

Configuration:

  • Name: Node identifier
  • Cron Pattern: Schedule expression

Actions

Action nodes perform operations and can transform data.

HTTP Request

Makes HTTP requests to external APIs and services.

Type: HTTP_REQUEST
Category: Actions

Configuration:

FieldDescription
URLTarget endpoint
MethodGET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD
HeadersRequest headers (with enable/disable toggle)
BodyRequest body (JSON, text, form-data, x-www-form-urlencoded)
AuthNone, Bearer, Basic, API Key, or Credential

Authentication Options:

TypeDescription
NoneNo authentication
BearerAuthorization: Bearer <token>
BasicAuthorization: Basic <base64>
API KeyCustom header with API key
CredentialUse a stored credential

Advanced Settings:

  • Timeout: Request timeout in milliseconds (default: 30000)
  • Follow Redirects: Automatically follow HTTP redirects
  • Retry on Failure: Retry failed requests with exponential backoff
  • Max Retries: Maximum retry attempts (default: 3)

Social Media Actions

Publish to popular social platforms with dedicated nodes and credential types.

NodeTypeCredential
X PostX_POSTX
LinkedIn PostLINKEDIN_POSTLinkedIn
Facebook Page PostFACEBOOK_POSTFacebook Page
Instagram PostINSTAGRAM_POSTInstagram
Threads PostTHREADS_POSTThreads
Discord MessageDISCORD_MESSAGEDiscord
Reddit PostREDDIT_POSTReddit
Bluesky PostBLUESKY_POSTBluesky
Mastodon PostMASTODON_POSTMastodon
Pinterest PinPINTEREST_PINPinterest

See the Social Media Nodes reference for platform-specific fields and notes.


AI

AI nodes leverage large language models for intelligent automation.

AI Agent

Executes AI-powered tasks with tool calling capabilities.

Type: AI_AGENT
Category: AI

Configuration:

  • Model: AI model to use
  • Credential: Stored credential for the AI provider (optional)
  • System Prompt: Instructions for the AI agent
  • Tools: Connected AI Tool nodes for function calling

Supported Providers:

  • OpenAI (GPT-4.1, GPT-4o, o1, o3)
  • Anthropic (Claude Sonnet 4, Claude 3.7, Claude 3.5 Haiku)
  • Google (Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.0 Flash)

Authentication: Select a stored credential in the node settings. This is the only way — AI provider keys are deliberately not read from environment variables, because a process-wide key would be shared by every organization on the deployment. A node with no credential selected fails with a message telling you to attach one. See Credentials.

AI Generate

Simple text generation using AI models.

Type: AI_GENERATE
Category: AI

Configuration:

  • Model: AI model to use
  • Credential: Stored credential for the AI provider
  • System Prompt: Instructions for generation
  • Prompt/Input Variable: Text to process
  • Temperature: Creativity level (0-2)
  • Max Tokens: Maximum output length

Use Cases:

  • Content creation
  • Summarization
  • Translation
  • Text transformation

AI Classify

Classify content into predefined categories.

Type: AI_CLASSIFY
Category: AI

Configuration:

  • Model: AI model to use
  • Categories: Classification options with labels and descriptions
  • Include Confidence: Add confidence score (0-1)
  • Include Reasoning: Add explanation for classification

Built-in Templates:

  • Sentiment Analysis (positive/negative/neutral)
  • Intent Detection (question/request/complaint/feedback)
  • Priority Classification (urgent/high/medium/low)
  • Spam Detection (spam/not_spam)

AI Extract

Pull structured data out of unstructured input, against a JSON Schema you define. Unlike AI Generate, the output is an object, not prose.

Type: AI_EXTRACT
Category: AI

Configuration:

  • Model: AI model to use
  • Credential: required, matching the provider
  • System Prompt / Prompt: what to extract
  • Input Variable: expression selecting the text to read from
  • Output Schema: JSON Schema describing the shape to return
  • Temperature: defaults to 0.3 — lower than the other AI nodes, since extraction rewards consistency over invention

Built-in Templates:

  • Entity Extraction — a list of { name, type, value }
  • Contact Info — name, email, phone, company, each nullable
  • Summary — summary, keyPoints[], and a sentiment enum

AI Agent (Experimental)

Type: AI_AGENT_EXP
Category: AI

A second agent implementation built on the AI SDK rather than LangChain. It takes the same model and credential settings and exposes the same tools. It is kept alongside the main AI Agent while the two implementations are compared — prefer AI Agent unless you have a reason not to.

Control

Control nodes manage the flow of execution.

Condition (If)

Branches workflow based on an expression.

Type: IF_CONDITION
Category: Control

Configuration:

  • Expression: JSONata expression that evaluates to boolean
  • True Branch: Path when expression is true
  • False Branch: Path when expression is false

Example Expressions:

$input.status = "success"
$input.count > 10
$exists($input.email)

Wait

Pauses workflow execution for a specified duration or until a specific time.

Type: WAIT
Category: Control

Configuration:

ModeFieldsDescription
Durationvalue, unitWait for a fixed time period
UntiltimestampWait until a specific date/time

Duration Units: seconds, minutes, hours, days

Example - Duration Mode:

{
  "mode": "duration",
  "duration": {
    "value": 5,
    "unit": "minutes"
  }
}

Example - Until Mode:

{
  "mode": "until",
  "until": "{{ $input.scheduledTime }}"
}

Loop

Iterates over an array of items or a fixed count.

Type: LOOP
Category: Control

Configuration:

ModeFieldsDescription
ArrayarrayExpressionIterate over each element
CountcountIterate N times

Loop Context Variables:

  • $item - Current item in the iteration
  • $index - Current index (0-based)
  • $total - Total number of items

Example - Array Mode:

{
  "mode": "array",
  "arrayExpression": "{{ $input.users }}"
}

Example - Count Mode:

{
  "mode": "count",
  "count": 10
}

Switch

Routes workflow execution based on matching a value against multiple cases.

Type: SWITCH
Category: Control

Configuration:

  • Expression: Value to evaluate and match
  • Cases: Array of value/label pairs to match against
  • Default: Fallback when no case matches

Example Configuration:

{
  "expression": "{{ $input.status }}",
  "cases": [
    { "id": "case-1", "value": "pending", "label": "Pending" },
    { "id": "case-2", "value": "approved", "label": "Approved" },
    { "id": "case-3", "value": "rejected", "label": "Rejected" }
  ]
}

Output Handles:

  • One handle per case (connects to case-specific logic)
  • Default handle (when no case matches)

Merge

Converges multiple incoming branches into one output.

Type: MERGE
Category: Control

Configuration:

ModeDescription
AppendFlatten all inputs into one array
Merge by KeyJoin rows using a shared key field
Keep FirstUse the first non-empty value
Keep LastUse the last non-empty value
CombineMerge object fields
Custom ExpressionUse a JSONata expression

See the Merge Node reference for examples and custom expression inputs.


Visual

These carry no behaviour. The executor skips them at runtime, so they cost nothing and cannot fail.

Group

Type: GROUP
Category: Visual

A container for organising related nodes on the canvas.

Annotation

Type: ANNOTATION
Category: Visual

A free-text note pinned to the canvas, for explaining a workflow to whoever opens it next.

Initial

Type: INITIAL
Category: Visual

The placeholder a new workflow starts with. Replace it with a trigger — a workflow needs one to be runnable.

Next Steps

On this page