public class PaymentWorkers {
private final PaymentRepository paymentRepository;
public PaymentWorkers(PaymentRepository paymentRepository) {
this.paymentRepository = paymentRepository;
}
@WorkerTask("ProcessPayment")
public PaymentResult processPayment(PaymentDetails paymentDetails) {
return this.paymentRepository.processPayment(paymentDetails);
}
@WorkerTask("RefundPayment")
public RefundResult refundPayment(String transactionId) {
return this.paymentRepository.refundPayment(transactionId);
}
@WorkerTask("GetPaymentStatus")
public PaymentStatus getPaymentStatus(String transactionId) {
return this.paymentRepository.getPaymentStatus(transactionId);
}
}class PaymentWorkers:
def __init__(self, payment_repository: PaymentRepository):
self.payment_repository = payment_repository
@worker_task(task_definition_name="ProcessPayment")
def process_payment(self, payment_details: PaymentDetails):
return self.payment_repository.process_payment(payment_details)
@worker_task(task_definition_name="RefundPayment")
def refund_payment(self, transaction_id: str):
return self.payment_repository.refund_payment(transaction_id)
@worker_task(task_definition_name="GetPaymentStatus")
def get_payment_status(self, transaction_id: str):
return self.payment_repository.get_payment_status(transaction_id)func (w *PaymentWorkers) ProcessPayment(task *model.Task) (interface{}, error) {
var paymentDetails = DecodePaymentDetails(task.InputData)
var result, err = w.Repo.ProcessPayment(paymentDetails)
if err != nil {
return nil, err
}
return map[string]interface{}{
"transactionID": result.TransactionID,
"status": result.Status,
"amount": result.Amount,
}, err
}
func (w *PaymentWorkers) RefundPayment(task *model.Task) (interface{}, error) {
var transactionID = task.InputData["transactionID"].(string)
var refunded, err = w.Repo.RefundPayment(transactionID)
return map[string]interface{}{
"refunded": refunded,
}, err
}
func (w *PaymentWorkers) GetPaymentStatus(task *model.Task) (interface{}, error) {
var transactionID = task.InputData["transactionID"].(string)
var status, err = w.Repo.GetPaymentStatus(transactionID)
if err != nil {
return nil, err
}
return map[string]interface{}{
"transactionID": status.TransactionID,
"status": status.Status,
"amount": status.Amount,
}, err
}
public class PaymentWorker : IWorkflowTask {
private readonly IPaymentRepository paymentRepository;
public string TaskType { get; }
public PaymentWorker(IPaymentRepository paymentRepository) {
this.paymentRepository = paymentRepository;
TaskType = "ProcessPayment";
}
public TaskResult Execute(Task task) {
var paymentDetails = task.InputData["paymentDetails"] as PaymentDetails;
var result = paymentRepository.ProcessPayment(paymentDetails);
return task.Completed(new Dictionary<string, object> {
{ "result", result }
});
}
}export async function processPayment(task) {
return {
outputData: await paymentRepository.processPayment(task.inputData)
};
}
export async function refundPayment(task) {
return {
outputData: await paymentRepository.refundPayment(task.inputData?.transactionId)
};
}
export async function getPaymentStatus(task) {
return {
outputData: await paymentRepository.getPaymentStatus(task.inputData?.transactionId)
};
}export async function processPayment(task: Task): Promise<Partial<TaskResult>> {
return {
outputData: await paymentRepository.processPayment(task.inputData)
};
}
export async function refundPayment(task: Task): Promise<Partial<TaskResult>> {
return {
outputData: await paymentRepository.refundPayment(task.inputData?.transactionId)
};
}
export async function getPaymentStatus(task: Task): Promise<Partial<TaskResult>> {
return {
outputData: await paymentRepository.getPaymentStatus(task.inputData?.transactionId)
};
}{
"createTime": 1759861689504,
"updateTime": 1759861689504,
"name": "ProcessTransaction",
"description": "Processes a financial transaction",
"version": 1,
"tasks": [
{
"name": "GetAccountInfo",
"taskReferenceName": "GetAccountInfo",
"inputParameters": {
"llmProvider": "Gemini",
"model": "gemini-2.0-flash",
"promptName": "ExtractAccountInfo",
"promptVariables": {
"accountSummary": "${workflow.input.accountSummary}"
}
},
"type": "LLM_TEXT_COMPLETE",
"decisionCases": {},
"defaultCase": [],
"forkTasks": [],
"startDelay": 0,
"joinOn": [],
"optional": false,
"defaultExclusiveJoinTask": [],
"asyncComplete": false,
"loopOver": [],
"onStateChange": {},
"permissive": false
},
{
"name": "switch",
"taskReferenceName": "switch_ref",
"inputParameters": {
"switchCaseValue": ""
},
"type": "SWITCH",
"decisionCases": {
"switch_case": [
{
"name": "FraudDetection",
"taskReferenceName": "FraudDetection",
"inputParameters": {
"transaction": "${workflow.input.transactionInfo}",
"account": "${GetAccountInfo.output.response}"
},
"type": "SIMPLE",
"decisionCases": {},
"defaultCase": [],
"forkTasks": [],
"startDelay": 0,
"joinOn": [],
"optional": false,
"defaultExclusiveJoinTask": [],
"asyncComplete": false,
"loopOver": [],
"onStateChange": {},
"permissive": false
}
]
},
"defaultCase": [
{
"name": "ProcessPayment",
"taskReferenceName": "ProcessPayment",
"inputParameters": {
"transaction": "${workflow.input.transactionInfo}",
"account": "${GetAccountInfo.output.response}"
},
"type": "SIMPLE",
"decisionCases": {},
"defaultCase": [],
"forkTasks": [],
"startDelay": 0,
"joinOn": [],
"optional": false,
"defaultExclusiveJoinTask": [],
"asyncComplete": false,
"loopOver": [],
"onStateChange": {},
"permissive": false
}
],
"forkTasks": [],
"startDelay": 0,
"joinOn": [],
"optional": false,
"defaultExclusiveJoinTask": [],
"asyncComplete": false,
"loopOver": [],
"evaluatorType": "value-param",
"expression": "switchCaseValue",
"onStateChange": {},
"permissive": false
},
{
"name": "SendNotification",
"taskReferenceName": "SendNotification",
"inputParameters": {
"account": "${GetAccountInfo.output.response}"
},
"type": "SIMPLE",
"decisionCases": {},
"defaultCase": [],
"forkTasks": [],
"startDelay": 0,
"joinOn": [],
"optional": false,
"defaultExclusiveJoinTask": [],
"asyncComplete": false,
"loopOver": [],
"onStateChange": {},
"permissive": false
}
],
"inputParameters": [
"accountSummary",
"transactionInfo"
],
"outputParameters": {},
"failureWorkflow": "",
"schemaVersion": 2,
"restartable": true,
"workflowStatusListenerEnabled": false,
"ownerEmail": "[email protected]",
"timeoutPolicy": "ALERT_ONLY",
"timeoutSeconds": 0,
"variables": {},
"inputTemplate": {},
"enforceSchema": true,
"metadata": {},
"maskedFields": []
}













public class UserWorkers {
private final UserRepository userRepository;
public UserWorkers(UserRepository userRepository) {
this.userRepository = userRepository;
}
@WorkerTask("GetUserInformation")
public UserProfile getUserInformation(String userID) {
return this.userRepository.getUserById(userID);
}
@WorkerTask("UpdateUserInformation")
public UpdateResult updateUserInformation(UserProfile newInfo) {
return this.userRepository.updateUserInformation(newInfo);
}
@WorkerTask("DeleteUser")
public DeleteResult deleteUser(String userID) {
return this.userRepository.deleteUser(userID);
}
}class UserWorkers:
def __init__(self, user_repository: UserRepository):
self.user_repository = user_repository
@worker_task(task_definition_name="GetUserInformation")
def get_user_information(self, user_id: str):
return self.user_repository.get_user_by_id(user_id)
@worker_task(task_definition_name="UpdateUserInformation")
def update_user_information(self, new_info: UserProfile):
return self.user_repository.update_user_information(new_info)
@worker_task(task_definition_name="DeleteUser")
def delete_user(self, user_id: str):
return self.user_repository.delete_user(user_id)func (w *UserWorkers) GetUserInformation(task *model.Task) (interface{}, error) {
var userID = task.InputData["ID"].(string)
var user, err = w.Repo.GetUserByID(userID)
if err != nil {
return nil, err
}
return map[string]interface{}{
"ID": user.ID,
"Name": user.Name,
"Email": user.Email,
}, err
}
func (w *UserWorkers) UpdateUserInformation(task *model.Task) (interface{}, error) {
var profile = DecodeUserProfile(task.InputData)
var updated, err = w.Repo.UpdateUserInformation(profile)
return map[string]interface{}{
"updated": updated,
}, err
}
func (w *UserWorkers) DeleteUser(task *model.Task) (interface{}, error) {
var userID = task.InputData["ID"].(string)
var deleted, err = w.Repo.DeleteUser(userID)
return map[string]interface{}{
"deleted": deleted,
}, err
}public class UserWorker : IWorkflowTask {
private readonly IUserRepository userRepository;
public string TaskType { get; }
public UserWorker(IUserRepository userRepository) {
this.userRepository = userRepository;
TaskType = "GetUserInformation";
}
public TaskResult Execute(Task task) {
var userId = task.InputData["userId"].ToString();
var user = userRepository.GetUserById(userId);
return task.Completed(new Dictionary<string, object> {
{ "result", user }
});
}
}export async function getUserInformation(task) {
return {
outputData: await userRepository.getUserById(task.inputData?.userId)
};
}
export async function updateUserInformation(task) {
return {
outputData: await userRepository.updateUser(task.inputData)
};
}
export async function deleteUser(task) {
return {
outputData: await userRepository.deleteUser(task.inputData?.userId)
};
}export async function getUserInformation(task: Task): Promise<Partial<TaskResult>> {
return {
outputData: await userRepository.getUserById(task.inputData?.userId)
};
}
export async function updateUserInformation(task: Task): Promise<Partial<TaskResult>> {
return {
outputData: await userRepository.updateUser(task.inputData)
};
}
export async function deleteUser(task: Task): Promise<Partial<TaskResult>> {
return {
outputData: await userRepository.deleteUser(task.inputData?.userId)
};
}



import io.orkes.conductor.client.ApiClient;
import io.orkes.conductor.client.ApiException;
import io.orkes.conductor.client.api.WorkflowApi;
import io.orkes.conductor.client.model.StartWorkflowRequest;
import io.orkes.conductor.client.model.StartWorkflowResponse;
public class WorkflowExecutor {
public static void main(String[] args) {
ApiClient client = new ApiClient();
client.setBasePath("https://api.orkes.io");
client.setApiKey("YOUR_API_KEY");
WorkflowApi api = new WorkflowApi(client);
StartWorkflowRequest request = new StartWorkflowRequest();
request.setName("ai-agent-workflow");
request.setVersion(1);
request.setInput(null);
try {
StartWorkflowResponse response = api.startWorkflow(request);
System.out.println("Workflow started successfully with ID: " + response.getWorkflowId());
} catch (ApiException e) {
System.err.println("Error starting workflow: " + e.getMessage());
}
}
}from conductor.client.configuration.configuration import Configuration
from conductor.client.configuration.settings.authentication_settings import AuthenticationSettings
from conductor.client.workflow.executor.workflow_executor import WorkflowExecutor
from conductor.client.workflow.executor.start_workflow_request import StartWorkflowRequest
config = Configuration(
base_url='https://api.orkes.io',
authentication_settings=AuthenticationSettings(
key_id='YOUR_KEY_ID',
key_secret='YOUR_KEY_SECRET'
)
)
executor = WorkflowExecutor(config)
request = StartWorkflowRequest(
name='ai-agent-workflow',
version=1,
input={}
)
workflow_id = executor.start_workflow(request)
print(f"Started workflow with ID: {workflow_id}")package main
import (
"fmt"
"log"
"github.com/conductor-sdk/conductor-go/sdk/client"
"github.com/conductor-sdk/conductor-go/sdk/model"
"github.com/conductor-sdk/conductor-go/sdk/settings"
"github.com/conductor-sdk/conductor-go/sdk/workflow/executor"
)
func main() {
apiClient := client.NewAPIClient(
settings.NewAuthenticationSettings("YOUR_KEY_ID", "YOUR_KEY_SECRET"),
settings.NewHttpSettings("https://api.orkes.io"),
)
workflowExecutor := executor.NewWorkflowExecutor(apiClient)
request := &model.StartWorkflowRequest{
Name: "ai-agent-workflow",
Version: 1,
Input: nil,
}
workflowID, err := workflowExecutor.StartWorkflow(request)
if err != nil {
log.Fatalf("Error starting workflow: %v", err)
}
fmt.Printf("Started workflow with ID: %s
", workflowID)
}using Conductor.Api;
using Conductor.Client;
using Conductor.Client.Authentication;
using Conductor.Client.Models;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var configuration = new Configuration
{
BasePath = "https://api.orkes.io",
AuthenticationSettings = new OrkesAuthenticationSettings(
keyId: "YOUR_KEY_ID",
keySecret: "YOUR_KEY_SECRET"
)
};
var executor = new WorkflowExecutor(configuration);
var request = new StartWorkflowRequest
{
Name = "ai-agent-workflow",
Version = 1,
Input = new Dictionary<string, object>
{
{ "userId", "123" },
{ "message", "Run AI agent" }
}
};
var workflowId = executor.StartWorkflow(request);
Console.WriteLine($"Started workflow with ID: {workflowId}");
}
}import { ConductorClient, WorkflowExecutor } from '@io-orkes/conductor-javascript'
const client = new ConductorClient({
serverUrl: 'https://api.orkes.io',
keyId: process.env.KEY_ID,
keySecret: process.env.KEY_SECRET
})
const workflowExecutor = new WorkflowExecutor(client)
const result = await workflowExecutor.startWorkflow({
name: 'ai-agent-workflow',
version: 1,
input: {
userId: '123',
message: 'Run AI agent'
}
})
console.log('Workflow started:', result.workflowId)






























































































