VOOZH about

URL: https://www.nuget.org/packages/ActFlow/

⇱ NuGet Gallery | ActFlow 1.1.1




👁 Image
ActFlow 1.1.1

dotnet add package ActFlow --version 1.1.1
 
 
NuGet\Install-Package ActFlow -Version 1.1.1
 
 
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ActFlow" Version="1.1.1" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ActFlow" Version="1.1.1" />
 
Directory.Packages.props
<PackageReference Include="ActFlow" />
 
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ActFlow --version 1.1.1
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ActFlow, 1.1.1"
 
 
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ActFlow@1.1.1
 
 
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ActFlow&version=1.1.1
 
Install as a Cake Addin
#tool nuget:?package=ActFlow&version=1.1.1
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

<p align="center"> <img src="https://github.com/user-attachments/assets/e7750a92-fe96-4742-8327-a34978d587fe" width="200" height="200" /> </p>

👁 Build and Publish
👁 Nuget
👁 Nuget
👁 GitHub last commit (branch)
👁 GitHub commit activity (branch)
👁 Static Badge
👁 Static Badge
👁 Static Badge

ActFlow

ActFlow is a simple, no-code, workflow system that takes in a set of activities and strings them together as workflows. The intention for this is to enable you to run complex business logic by means of script files instead of hardwired integrations. This makes it significantly easier to make workflows such as one for waiting and answering emails, keep a database updated with data an LLM found from an email, integrity check data in a database, etc. The ActFlow engine in of itself is very independent and does not require any complex scheduling system to run.

<img alt="ezgif-38bb13d50e11c73e" src="https://github.com/user-attachments/assets/ab0b15c4-cb63-4206-88c4-fcab62f7cb6d" />

By its core, it consists of a set of workers and activities. Workers execute activities, while activities define some input data for the workers.

All workers and activities are JSON serializable

To make this work, you must add a modifier to the default TypeInfoResolver for a JsonSerializer instance like this: JsonSerializerOptions(){ TypeInfoResolver = new DefaultJsonTypeInfoResolver().WithAddedModifier(JsonExtensions.AddNativePolymorphicTypInfo) }

How to Use (CLI)

For just using ActFlow, you can install the CLI tool by entering

dotnet tool install ActFlow.CLI -g

You can then call the CLI tool by the actflow command.

How to Use (Docker)

You can also choose to use the Docker image. This requires that you have a config.json config on your computer that contains the IWorker configuration. Simply change the bind mount in the docker-compose.yaml

After you have set that up, you can start the docker container:

docker compose up -d

This will then start the HTTP server of the CLI, open on port 5523 as well as a web server where you can interact with your workflows.

Developing

Start by installing the NuGet package ActFlow into your project. This package contains the actual engine used to run the workflows. You can add whichever integration nuget package afterwards, to give you workers and activities (I will assume you have ActFlow.Integrations.Core installed for the following). You can then setup the ActFlow engine by doing the following:

var engine = new ActFlowEngine(new List<IWorker>()
{
	new NoActivityWorker("a"),
 new CreateContextWorker("b")
});

This has now defined an engine instance with two workers, NoActivityWorker with the ID a and a CreateContextWorker with the id b. The IDs are important, since they are used by activities to know what worker to run (this also means you can have multiple workers with different configurations).

You can then run the following script (represented in JSON):

{
	"Name":"test workflow",
	"Globals":{ "noactivityworker":"a", "createcontextworker":"b" },
	"Activities": [
		{
			"$type":"NoActivity",
			"WorkerID":"${{noactivityworker}}"
		},
		{
			"$type":"CreateContextActivity",
			"WorkerID":"${{createcontextworker}}",
			"Context": {
				"$type":"StringContext",
				"Text":"abc"
			}
		}
	]
}

You can execute is as:

var state = await engine.Execute(
 JsonSerializer.Deserialize<Workflow>(
 ..., 
 JsonSerializerOptions() { 
 TypeInfoResolver = 
 new DefaultJsonTypeInfoResolver()
 .WithAddedModifier(JsonExtensions.AddNativePolymorphicTypInfo) 
 }
 )
 );

This will run the script, and return the final state of the execution. The result of each step will be visible through the ContextStore property. As an example, the resulting context of the last activity will be accessible through the key b.Text where it will give the result "abc".

Using this simple system syntax, you can combine many different activities to create complex business logic.

Integrations

Each of the integrations below can be found as NuGet packages by their name.

  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • Conditional If
      • Compares two string values against each other. True or false redirects to different activity indexes in the workflow file.
    • Conditional (user) If
      • Same as the conditional if, but where one of the values is a user input.
    • Create Context
      • Directly creates a new context.
    • Insert Globals
      • Insert some global values that can be used across the entire workflow.
    • No Action
      • A placeholder activity that does nothing.
    • Load File
      • Loads the content of a file in the persistent directory into context.
    • Save File
      • Saves some text to a file in the persistent directory.
    • List Files
      • Lists files in a given path in the persistent directory.
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • DatabaseSharp
    • Execute STP
      • Execute a STP with some parameters and get the result.
    • Execute SQL
      • Execute a free SQL string and get the result.
    • Execute SQL to CSV
      • Execute a free SQL string and save the resulting table to a CSV file.
    • Insert Workflow From Databaser
      • Fetch a workflow from a database and insert it after this activity.
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • Reply to Email
      • Reply to a given email
    • Send Email
      • Send a new email
    • Wait for Email
      • Wait for a reply on a given email
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • Extract Value From JSON
      • Given some text, extract some data by means of a JSONPath
    • Extract Value From JSON File
      • Given some file, extract some data by means of a JSONPath
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • ML.NET
    • Train Text Classitifer
      • Train a text classifier with some data
    • Classify Text
      • Classify some text
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • OpenWebUISharp
    • Extract Data From Text
      • Extract data from text using a LLM
    • Extract Data From Text (RAG)
      • Extract data from text using a LLM (RAG)
    • Query
      • Query an LLM
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • Extract Values from XML
      • Given some text, extract values to a dictionary
    • Extract Values from XML file
      • Given some file, extract values to a dictionary
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • Execute Javascript
      • Execute some javascript code
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • Delay
      • Wait for some specified amount of time
    • Cron Wait
      • Wait for the next occurence from some Cron expression
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • SerializableHttps
    • Execute HTTP
      • Executes a HTTP request with automatic JSON serialization/deserialization
  • 👁 Static Badge
    👁 Nuget
    👁 Nuget
    • Evaluate
      • Evaluate a mathmatical expression
Product Versions Compatible and additional computed target framework versions.
.NET net10.0 net10.0 is compatible.  net10.0-android net10.0-android was computed.  net10.0-browser net10.0-browser was computed.  net10.0-ios net10.0-ios was computed.  net10.0-maccatalyst net10.0-maccatalyst was computed.  net10.0-macos net10.0-macos was computed.  net10.0-tvos net10.0-tvos was computed.  net10.0-windows net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (12)

Showing the top 5 NuGet packages that depend on ActFlow:

Package Downloads
ActFlow.Integrations.DatabaseSharp

DatabaseSharp workflow activities for ActFlow

ActFlow.Integrations.XML

XML workflow activities for ActFlow

ActFlow.Integrations.Core

Core workflow activities for ActFlow

ActFlow.Integrations.JSON

JSON workflow activities for ActFlow

ActFlow.Integrations.EMail

Email workflow activities for ActFlow

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.1 41 6/16/2026
1.1.0 213 6/11/2026
1.0.24 97 5/27/2026
1.0.23 103 5/27/2026
1.0.22 210 5/27/2026
1.0.21 117 5/27/2026
1.0.20 117 5/27/2026
1.0.19 99 5/27/2026
1.0.18 108 5/27/2026
1.0.17 232 5/26/2026
1.0.16 101 5/25/2026
1.0.15 84 5/25/2026
1.0.14 91 5/24/2026
1.0.13 99 5/24/2026
1.0.12 167 5/22/2026
1.0.11 102 5/21/2026
1.0.10 89 5/20/2026
1.0.9 158 5/20/2026
1.0.8 189 3/10/2026
1.0.7 109 3/10/2026
Loading failed