---
title: "Workflow Service"
slug: "workflow-service"
description: "Set up a workflow in the Workflow Service"
tags: ["worker", "task", "operational control", "workflow service"]
status: "update"
updated: 2025-04-23T09:23:06Z
published: 2025-04-23T09:23:06Z
canonical: "support.lusid.com/workflow-service"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.lusid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflow Service

The Workflow Service enables you to connect and control movement of data throughout LUSID, its [ecosystem of applications](/v1/docs/understanding-all-the-applications-in-the-finbourne-platform), and external systems, allowing you to model data and business operational controls.

For example, you could create a workflow to load some quotes into the LUSID Quote Store. Your workflow could detect when quotes are loaded and trigger Luminesce to check for any outlier quotes. Exceptions and outliers could be written to a child task for manual resolution.

You can model a workflow process using the following components:

- A [task definition](/v1/docs/how-do-i-create-a-task-definition) defines a workflow modelled as a Mealy state machine.
- A [task](/v1/docs/how-do-i-create-a-task) is an occurrence of a workflow, existing in *states* such as ‘Pending’, ‘In progress’, ‘Screening securities’, ‘Done’.
- *A state transition*, caused by a *trigger*, moves a task from a start state to an end state.
- A *field* is a transport mechanism for data in a workflow, and can be used in a [guard](/v1/docs/using-guards-to-add-conditions-to-workflow-state-transitions) to conditionally allow a state transition to succeed.
- A [worker](/v1/docs/how-do-i-create-a-worker) is a unit of functionality that can access LUSID data. It takes input parameters in the form of fields from a task, and returns a list of output items that can be reported back to the original task, or to other tasks.
- An [action](/v1/docs/using-actions-to-run-workers-create-child-tasks-and-trigger-parent-tasks) is an activity, defined in a state transition, to be taken on completion of that transition. For example, start a worker, create a child task or trigger a parent task.

Today, you can call APIs to model a workflow, create task definitions and tasks, transition between states and trigger workers. [See how to model a simple workflow to approve new or updated data.](/v1/docs/using-the-workflow-service-to-approve-new-or-updated-data)

LUSID is also able to instantiate tasks in response to system events, and state transitions occur automatically. [See how to use system event handlers in your workflows.](/v1/docs/how-do-i-use-system-event-handlers-to-automatically-create-or-update-tasks)

Providing you have appropriate permissions, you can interact with the Workflow Service using the [LUSID web app](https://www.lusid.com/app/home) via the **Workflow Service** menu:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(784).png)

Alternatively, you can interact with the Workflow Service programmatically:

- Using the [Workflow Service REST API](https://www.lusid.com/docs/api/workflow/intro)
- Using the [Workflow Service SDK](/v1/docs/understanding-all-the-applications-in-the-finbourne-platform) in various languages
- If you have a Luminesce license, using [dedicated read and write providers](/v1/docs/using-luminesce-to-readwrite-to-the-workflow-service).

**Tutorials**: *Get started by doing something tangible*

- [Using the Workflow Service to approve new or updated data](/v1/docs/using-the-workflow-service-to-approve-new-or-updated-data)
- [Setting up a data quality control to check new pricing data for outliers](/v1/docs/setting-up-a-data-quality-control-to-check-new-pricing-data-for-outliers)

**Reference**: *Understand concepts and implications*

- [Understanding Workflow Service terminology](/v1/docs/understanding-workflow-service-terminology)
- [Using guards to add conditions to workflow state transitions](/v1/docs/using-guards-to-add-conditions-to-workflow-state-transitions)
- [Using actions to run workers, create child tasks and trigger parent tasks](/v1/docs/using-actions-to-run-workers-create-child-tasks-and-trigger-parent-tasks)
- [Using stacks to identify and manage recurring issues](/v1/docs/using-stacks-to-identify-and-manage-recurring-issues)

**How-to guides**: *Get something done*

- [How do I create a task definition?](/v1/docs/how-do-i-create-a-task-definition)
- [How do I create a task?](/v1/docs/how-do-i-create-a-task)
- [How do I create a worker?](/v1/docs/how-do-i-create-a-worker)
- [How do I use system event handlers to automatically create or update tasks?](/v1/docs/how-do-i-use-system-event-handlers-to-automatically-create-or-update-tasks)
