Workflow processor