Primitives

Primitives are built into Hyphen. They don't need to be registered — use them directly as step types in any workflow.

flowchart LR subgraph "Workflow" M["Matcher"] --> L["Loop"] L --> A["PbotApproval"] A --> F["PbotForm"] F --> T["Custom Table"] end
Primitive Type Value What It Does
Matcher matcher Compare two datasets — exact keys, numeric tolerance, date windows, fuzzy text. Outputs matched pairs and exceptions from both sides
Loop loop Two modes: foreach processes items in parallel with configurable concurrency; react runs an AI agent with tools, guardrails, and stuck detection
Approval PbotApproval Pause execution for human review. The reviewer sees context, makes a decision, and execution resumes
Form PbotForm Pause execution to collect external input via a form. Supports TTL and reminder intervals
Custom Table custom-table Multi-tenant data storage — read, write, update, and upsert operations with full audit logging

All primitives produce output that flows into context via @ path resolution, making their results available to subsequent steps.