docs/documentation/configuration/workflowdef/systemtasks/index.md
System tasks are built-in tasks that run on the Conductor server. They execute without external workers, allowing you to build workflows using common operations out of the box.
| System Task | Type | Description |
|---|---|---|
| HTTP | HTTP | Call any HTTP/REST endpoint. Supports GET, POST, PUT, DELETE with headers, body, and connection/read timeouts. |
| Inline | INLINE | Execute lightweight JavaScript or Python expressions server-side using GraalJS. Useful for data transformation, validation, and simple logic. |
| Event | EVENT | Publish events to external systems — Kafka, NATS, NATS Streaming, AMQP (RabbitMQ), SQS, or Conductor's internal queue. |
| Wait | WAIT | Pause workflow execution until a specified time, duration, or external signal. |
| Human | HUMAN | Wait for an external signal, typically a human approval or manual action. The task stays IN_PROGRESS until completed via API. |
| Kafka Publish | KAFKA_PUBLISH | Publish messages directly to a Kafka topic with configurable serializers and headers. |
| JSON JQ Transform | JSON_JQ_TRANSFORM | Transform JSON data using jq expressions. Powerful for reshaping, filtering, and aggregating data. |
| No Op | NOOP | Do nothing. Useful as a placeholder or to merge branches in fork/join patterns. |
| JDBC | JDBC | Execute SQL queries and updates against relational databases (MySQL, PostgreSQL, Oracle, etc.) with connection pooling and transaction management. |
These are also system tasks but control workflow execution flow rather than performing work:
| Operator | Type | Description |
|---|---|---|
| Fork/Join | FORK_JOIN | Execute tasks in parallel branches, then join. |
| Dynamic Fork | FORK_JOIN_DYNAMIC | Dynamically create parallel branches at runtime. |
| Join | JOIN | Wait for parallel branches to complete. |
| Switch | SWITCH | Conditional branching based on expressions or values. |
| Do While | DO_WHILE | Loop over tasks until a condition is met. |
| Sub Workflow | SUB_WORKFLOW | Execute another workflow as a task. |
| Start Workflow | START_WORKFLOW | Start another workflow asynchronously (fire-and-forget). |
| Set Variable | SET_VARIABLE | Set or update workflow-level variables. |
| Terminate | TERMINATE | Terminate the workflow with a specified status. |
| Dynamic | DYNAMIC | Determine the task type to execute at runtime. |
Conductor is the only open-source workflow engine with native AI system tasks. These tasks require the ai module to be enabled and provide direct integration with 14+ LLM providers, 3 vector databases, and MCP servers — no external frameworks or custom workers needed.
| Task | Type | Description |
|---|---|---|
| Chat Completion | LLM_CHAT_COMPLETE | Multi-turn conversational AI with optional tool calling. Supports all major LLM providers. |
| Text Completion | LLM_TEXT_COMPLETE | Single prompt completion. |
Supported providers: Anthropic (Claude), OpenAI (GPT), Azure OpenAI, Google Gemini, AWS Bedrock, Mistral, Cohere, HuggingFace, Ollama, Perplexity, Grok (xAI), StabilityAI, and more. Switch providers by changing a configuration parameter — no code changes required.
| Task | Type | Description |
|---|---|---|
| Generate Embeddings | LLM_GENERATE_EMBEDDINGS | Convert text to vector embeddings. |
| Store Embeddings | LLM_STORE_EMBEDDINGS | Store pre-computed embeddings in a vector database. |
| Index Text | LLM_INDEX_TEXT | Store text with auto-generated embeddings in a vector database. |
| Search Index | LLM_SEARCH_INDEX | Semantic search using a text query. |
| Search Embeddings | LLM_SEARCH_EMBEDDINGS | Search using embedding vectors directly. |
Supported vector databases: Pinecone, pgvector (PostgreSQL), and MongoDB Atlas Vector Search. These enable RAG (retrieval-augmented generation) pipelines as standard Conductor workflows.
| Task | Type | Description |
|---|---|---|
| Generate Image | GENERATE_IMAGE | Generate images from text prompts. |
| Generate Audio | GENERATE_AUDIO | Text-to-speech synthesis. |
| Generate Video | GENERATE_VIDEO | Generate videos from text or image prompts (async). |
| Generate PDF | GENERATE_PDF | Convert markdown to PDF documents. |
| Task | Type | Description |
|---|---|---|
| List MCP Tools | LIST_MCP_TOOLS | List available tools from an MCP server. |
| Call MCP Tool | CALL_MCP_TOOL | Execute a tool on an MCP server. |
MCP integration enables Conductor workflows to discover and use tools from any MCP-compatible server, and to expose Conductor workflows as MCP tools for use by LLMs and AI agents.
| Task | Replacement |
|---|---|
| Lambda | Use Inline instead. |
| Decision | Use Switch instead. |