Liquid

When working with Elsa, you'll often want to write dynamic expressions. This page provides a glossary of various filters and tags you can use, in addition to the standard set that you can find in the Liquid documentation.

Elsa uses the Fluid library to implement Liquid. More tags and filters can be found there, as well as details on providing your own tags and filters.

Installing the Liquid Feature

The Liquid Expressions feature is provided by the following package:

dotnet package add Elsa.Liquid

You can enable the feature as follows:

Program.cs
services.AddElsa(elsa =>
{
   elsa.UseLiquid();
});

Configuration

The UseLiquid extension provides an overload that accepts a delegate that lets you configure the LiquidFeature, which itself exposes a delegate to configure FluidOptions.

For example:

Program.cs
services.AddElsa(elsa =>
{
   elsa.UseLiquid(liquid =>
   {
      liquid.FluidOptionstions += options =>
      {
         options.Encoder = HtmlEncoder.Default;
      }
   });
});

Filters, Tags and Objects

The following filters, tags and objects are available to Liquid expressions:

You can find more filters, tags and variables in the Liquid documentation.

Filters

json

The json filter serialises an input value to a JSON string. Example:

{{ some_value | json }}

base64

The base64 filter converts an input value into a base64 string. Example:

{{ some_value | base64 }}

Objects

Variables

The Variables object provides access to the workflow variables. For example, if your workflow has a variable called OrderId, you can get that workflow variable using the following Liquid expression:

{{ Variables.OrderId }}

Input

The Input object provides access to workflow input. Example:

{{ Input.OrderNumber }}

WorkflowInstanceId

The WorkflowInstanceId object provides access to the workflow instance ID of the currently executing workflow. Example:

{{ WorkflowInstanceId }}

WorkflowDefinitionId

The WorkflowDefinitionId object provides access to the workflow definition ID of the currently executing workflow. Example:

{{ WorkflowDefinitionId }}

WorkflowDefinitionVersionId

The WorkflowDefinitionVersionId object provides access to the workflow definition version ID of the currently executing workflow. Example:

{{ WorkflowDefinitionVersionId }}

WorkflowDefinitionVersion

The WorkflowDefinitionVersion object provides access to the workflow definition version of the currently executing workflow. Example:

{{ WorkflowDefinitionVersion }}

CorrelationId

The CorrelationId object provides access to the correlation ID of the currently executing workflow. Example:

{{ CorrelationId }}

Last updated