Workflow nodes derive from AutomationNode, which gives them typed input/output ports, execution state and a parameter set that the engine can drive. Drag them like any other component; the engine picks them up when the diagram is executed. See Workflow Engine for the execution model.

Base Node

Common behavior for every executable node.

AutomationNode

Base class for automation nodes that provides both visual representation and automation execution capabilities. Combines SkiaComponent visual behavior with IAutomationNode automation interface.

MemberKindDescription
new string IdPropertyGets the unique identifier for this automation node.
new string NamePropertyGets the display name of this automation node.
abstract string DescriptionPropertyGets the description of what this automation node does.
abstract NodeType NodeTypePropertyGets the type of this automation node.
NodeStatus StatusPropertyGets the current status of this automation node.
void SetExecutionStatus(NodeStatus status)MethodSets the execution status from a host (used for live workflow run visualization). The node status to display.
Dictionary<string, object> ConfigurationPropertyGets or sets the configuration parameters for this node.
IList<IConnectionPoint> InputConnectionsPropertyGets the input connection points for this automation node. Backed by the component's canvas connection points so serialization and the drawing manager see exactly the ports the automation runtime uses.
IList<IConnectionPoint> OutputConnectionsPropertyGets the output connection points for this automation node. Backed by the component's canvas connection points so serialization and the drawing manager see exactly the ports the automation runtime uses.
new bool IsEnabledPropertyGets a value indicating whether this node is currently enabled for execution.
event EventHandler<NodeExecutionEventArgs> StatusChangedEventEvent raised when the node's execution status changes.
event EventHandler<NodeErrorEventArgs> ErrorOccurredEventEvent raised when the node encounters an error during execution.
abstract Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default)MethodInitializes the automation node with the specified configuration. The configuration parameters for the node. Token to cancel the initialization. A task representing the initialization operation.
abstract Task<ValidationResult> ValidateAsync(Model.ExecutionContext inputData, CancellationToken cancellationToken = default)MethodValidates the current configuration and input data for this node. The input data to validate. Token to cancel the validation. A task containing the validation result.
abstract Task<NodeResult> ExecuteAsync(Model.ExecutionContext context, CancellationToken cancellationToken = default)MethodExecutes the automation node's logic with the provided execution context. The execution context containing input data and workflow state. Token to cancel the execution. A task containing the execution result.
abstract Dictionary<string, object> GetInputSchema()MethodGets the schema defining the input parameters this node expects. A dictionary describing the input schema.
abstract Dictionary<string, object> GetOutputSchema()MethodGets the schema defining the output parameters this node produces. A dictionary describing the output schema.
virtual Task ResetAsync()MethodResets the node to its initial state, clearing any cached data or temporary state.
virtual void ApplyNodeProperties()MethodApplies values from NodeProperties back to this node's public settable properties (by name) and updates Configuration. Name matching is case-insensitive.
void DrawNode(SKCanvas canvas, DrawingContext context)MethodPublic method to draw the node (used by WorkflowCanvas). The canvas to draw on. The drawing context.

Trigger Nodes

Start executions from user actions or schedules.

ManualTriggerNode

Automation node that triggers workflow execution manually through user interaction. Provides interactive buttons, keyboard shortcuts, and programmatic triggering capabilities.

MemberKindDescription
ManualTriggerNode()MethodInitializes a new instance of the ManualTriggerNode class.
event EventHandler<ManualTriggerEventArgs> ManuallyTriggeredEventEvent raised when the manual trigger is activated.
event EventHandler<TriggerConfirmationEventArgs> ConfirmationRequestedEventEvent raised when trigger confirmation is requested.
string TriggerTextPropertyGets or sets the text displayed on the trigger button.
string KeyboardShortcutPropertyGets or sets the keyboard shortcut for triggering (e.g., "Ctrl+Enter").
bool RequireConfirmationPropertyGets or sets whether confirmation is required before triggering.
string ConfirmationMessagePropertyGets or sets the confirmation message displayed to users.
bool IsTriggerablePropertyGets or sets whether the trigger is currently available for activation.
int ExecutionCountPropertyGets the number of times this trigger has been activated.
DateTime LastExecutionPropertyGets the time of the last manual trigger activation.
Dictionary<string, object> TriggerPayloadPropertyGets or sets additional payload data to include with trigger execution.
bool AutoResetPropertyGets or sets whether the trigger automatically resets to triggerable state after execution.
TimeSpan CooldownPeriodPropertyGets or sets the cooldown period between trigger activations.
bool IsInCooldownPropertyGets whether the trigger is currently in cooldown period.
TimeSpan CooldownRemainingPropertyGets the time remaining in the cooldown period.
override string DescriptionPropertyGets the description of what this automation node does.
override NodeType NodeTypePropertyGets the type of this automation node.
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default)MethodInitializes the manual trigger node with the specified configuration. The configuration parameters for the node. Token to cancel the initialization. A task representing the initialization operation.
override async Task<ValidationResult> ValidateAsync(Model.ExecutionContext inputData, CancellationToken cancellationToken = default)MethodValidates the current configuration for this manual trigger node. The input data to validate (not used for trigger nodes). Token to cancel the validation. A task containing the validation result.
override async Task<NodeResult> ExecuteAsync(Model.ExecutionContext context, CancellationToken cancellationToken = default)MethodExecutes the manual trigger and returns trigger information. The execution context. Token to cancel the execution. A task containing the execution result.
override Dictionary<string, object> GetInputSchema()MethodGets the schema defining the input parameters this node expects. Trigger nodes typically don't require input data. A dictionary describing the input schema.
override Dictionary<string, object> GetOutputSchema()MethodGets the schema defining the output parameters this node produces. A dictionary describing the output schema.
async Task<bool> TriggerAsync(string source = "Manual", Dictionary<string, object> additionalData = null)MethodManually triggers the workflow execution. The source of the trigger (Button, Keyboard, API, etc.). Additional data to include with the trigger. True if trigger was successful.
async Task<bool> TriggerFromButtonAsync()MethodTriggers the workflow when triggered by button click. True if trigger was successful.
async Task<bool> TriggerFromKeyboardAsync()MethodTriggers the workflow when triggered by keyboard shortcut. True if trigger was successful.
void Reset()MethodResets the trigger to be available for activation again.
void SetPayload(Dictionary<string, object> payload)MethodSets the trigger payload data. The payload data to set.
bool CanTrigger()MethodChecks if the trigger can currently be activated. True if the trigger can be activated.

TimerTriggerNode

Automation node that triggers workflow execution on a scheduled timer basis. Supports various timing patterns including intervals, cron expressions, and one-time execution.

MemberKindDescription
TimerTriggerNode()MethodInitializes a new instance of the TimerTriggerNode class.
event EventHandler<TimerTriggeredEventArgs> TimerTriggeredEventEvent raised when the timer triggers workflow execution.
TimerTriggerMode TriggerTypePropertyGets or sets the type of timer trigger (Interval, Cron, OneTime).
TimeSpan IntervalPropertyGets or sets the interval for interval-based triggers.
string CronExpressionPropertyGets or sets the cron expression for cron-based triggers.
DateTime? StartTimePropertyGets or sets the start time for the trigger schedule.
DateTime? EndTimePropertyGets or sets the end time for the trigger schedule.
bool IsTimerEnabledPropertyGets or sets whether the timer trigger is enabled.
int MaxExecutionsPropertyGets or sets the maximum number of executions (-1 for unlimited).
int ExecutionCountPropertyGets the current execution count.
DateTime LastExecutionPropertyGets the time of the last execution.
DateTime NextExecutionPropertyGets the time of the next scheduled execution.
bool IsRunningPropertyGets whether the timer is currently running.
override string DescriptionPropertyGets the description of what this automation node does.
override NodeType NodeTypePropertyGets the type of this automation node.
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default)MethodInitializes the timer trigger node with the specified configuration. The configuration parameters for the node. Token to cancel the initialization. A task representing the initialization operation.
override async Task<ValidationResult> ValidateAsync(Model.ExecutionContext inputData, CancellationToken cancellationToken = default)MethodValidates the current configuration for this timer trigger node. The input data to validate (not used for trigger nodes). Token to cancel the validation. A task containing the validation result.
override Task<NodeResult> ExecuteAsync(Model.ExecutionContext context, CancellationToken cancellationToken = default)MethodExecutes the timer trigger and returns trigger information. Note: This method is called by the timer, not directly by workflow execution. The execution context. Token to cancel the execution. A task containing the execution result.
override Dictionary<string, object> GetInputSchema()MethodGets the schema defining the input parameters this node expects. Trigger nodes typically don't require input data. A dictionary describing the input schema.
override Dictionary<string, object> GetOutputSchema()MethodGets the schema defining the output parameters this node produces. A dictionary describing the output schema.
void StartTimer()MethodStarts the timer based on the current configuration.
void StopTimer()MethodStops the timer.

Data Nodes

Read, transform and emit data.

DataInputNode

Automation node that provides manual data input capabilities for workflows. Supports JSON editing, form-based input, and programmatic data entry. Similar to n8n's "Set" node or Make.com's data input functionality.

MemberKindDescription
DataInputNode()MethodInitializes a new instance of the DataInputNode class.
string InputModePropertyGets or sets the input mode (JSON, Form, Code).
string JsonDataPropertyGets or sets the JSON data for JSON input mode.
Dictionary<string, object> FormDataPropertyGets or sets the form data for Form input mode.
List<FormField> FormFieldsPropertyGets or sets the form fields configuration for Form input mode.
bool AllowMultipleEntriesPropertyGets or sets whether multiple data entries are allowed.
List<Dictionary<string, object>> MultipleEntriesPropertyGets or sets the multiple data entries.
string DataSchemaPropertyGets or sets the JSON schema for input validation.
bool ValidateInputPropertyGets or sets whether to validate input data.
override string DescriptionPropertyGets the description of what this automation node does.
override NodeType NodeTypePropertyGets the type of this automation node.
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default)MethodInitializes the data input node with the specified configuration. The configuration parameters for the node. Token to cancel the initialization. A task representing the initialization operation.
override async Task<ValidationResult> ValidateAsync(Model.ExecutionContext inputData, CancellationToken cancellationToken = default)MethodValidates the current configuration and input data for this node. The input data to validate. Token to cancel the validation. A task containing the validation result.
override async Task<NodeResult> ExecuteAsync(Model.ExecutionContext context, CancellationToken cancellationToken = default)MethodExecutes the data input and returns the configured data. The execution context containing input data and workflow state. Token to cancel the execution. A task containing the execution result.
override Dictionary<string, object> GetInputSchema()MethodGets the schema defining the input parameters this node expects. A dictionary describing the input schema.
override Dictionary<string, object> GetOutputSchema()MethodGets the schema defining the output parameters this node produces. A dictionary describing the output schema.
void AddEntry(Dictionary<string, object> entry)MethodAdds a new entry to the multiple entries collection. The entry to add.
void RemoveEntry(int index)MethodRemoves an entry from the multiple entries collection. The index of the entry to remove.
void ClearEntries()MethodClears all entries from the multiple entries collection.

DataTransformNode

Automation node that transforms and manipulates data as part of workflow automation. Supports filtering, mapping, aggregation, and custom transformations on input data.

MemberKindDescription
string TransformTypePropertyGets or sets the type of transformation to perform (Map, Filter, Aggregate, Custom).
Dictionary<string, object> TransformConfigPropertyGets or sets the transformation configuration parameters.
List<FieldMapping> FieldMappingsPropertyGets or sets the field mappings for data transformation.
List<FilterCondition> FiltersPropertyGets or sets the filter conditions for data filtering.
string CustomScriptPropertyGets or sets the custom transformation script (for Custom transform type).
string OutputFormatPropertyGets or sets the output format for the transformed data.
bool PreserveOriginalPropertyGets or sets whether to preserve the original data alongside the transformed data.
override string DescriptionPropertyGets the description of what this automation node does.
override NodeType NodeTypePropertyGets the type of this automation node.
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default)MethodInitializes the data transform node with the specified configuration. The configuration parameters for the node. Token to cancel the initialization. A task representing the initialization operation.
override async Task<ValidationResult> ValidateAsync(Model.ExecutionContext inputData, CancellationToken cancellationToken = default)MethodValidates the current configuration and input data for this node. The input data to validate. Token to cancel the validation. A task containing the validation result.
override async Task<NodeResult> ExecuteAsync(Model.ExecutionContext context, CancellationToken cancellationToken = default)MethodExecutes the data transformation and returns the results. The execution context containing input data and workflow state. Token to cancel the execution. A task containing the execution result.
override Dictionary<string, object> GetInputSchema()MethodGets the schema defining the input parameters this node expects. A dictionary describing the input schema.
override Dictionary<string, object> GetOutputSchema()MethodGets the schema defining the output parameters this node produces. A dictionary describing the output schema.

DataSourceAutomationNode

Automation node that provides access to BeepDataSources for use in workflow pipelines. Allows querying databases, files, APIs, and other data sources as part of automation workflows.

MemberKindDescription
string DataSourceNamePropertyGets or sets the data source name.
string EntityNamePropertyGets or sets the name of the entity (table, collection, etc.) to query.
string QueryStringPropertyGets or sets the query string to execute against the data source. Can be SQL, MongoDB query, REST endpoint, etc. depending on the data source type.
Dictionary<string, object> QueryParametersPropertyGets or sets the parameters for the query.
string OutputFormatPropertyGets or sets the output format for the data (json, xml, csv, etc.).
int MaxRowsPropertyGets or sets the maximum number of rows to return.
bool UseCachePropertyGets or sets whether to use caching for query results.
TimeSpan CacheTimeoutPropertyGets or sets the cache timeout duration.
DataSourceAutomationNode()MethodInitializes a new instance of the DataSourceAutomationNode class.
DataSourceAutomationNode(IDMEEditor dmeEditor, IDMLogger logger, IErrorsInfo errorObject)MethodInitializes a new instance of the DataSourceAutomationNode class with data source manager dependencies. The DME editor instance for data source management. The logger instance for logging operations. The error handler instance.
void SetDataSourceManager(IDMEEditor dmeEditor, IDMLogger logger, IErrorsInfo errorObject)MethodSets the data source manager dependencies for this node. The DME editor instance for data source management. The logger instance for logging operations. The error handler instance.
override string DescriptionPropertyGets the description of what this automation node does.
override NodeType NodeTypePropertyGets the type of this automation node.
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default)MethodInitializes the data source automation node with the specified configuration. The configuration parameters for the node. Token to cancel the initialization. A task representing the initialization operation.
override async Task<ValidationResult> ValidateAsync(Model.ExecutionContext inputData, CancellationToken cancellationToken = default)MethodValidates the current configuration and input data for this node. The input data to validate. Token to cancel the validation. A task containing the validation result.
override async Task<NodeResult> ExecuteAsync(Model.ExecutionContext context, CancellationToken cancellationToken = default)MethodExecutes the data source query and returns the results. The execution context containing input data and workflow state. Token to cancel the execution. A task containing the execution result.
override Dictionary<string, object> GetInputSchema()MethodGets the schema defining the input parameters this node expects. A dictionary describing the input schema.
override Dictionary<string, object> GetOutputSchema()MethodGets the schema defining the output parameters this node produces. A dictionary describing the output schema.

Logic Nodes

Branching and external calls.

ConditionalNode

Automation node that provides conditional branching logic for workflow automation. Evaluates conditions and directs flow to different paths based on results.

MemberKindDescription
ConditionalNode()MethodInitializes a new instance of the ConditionalNode class.
List<ConditionRule> ConditionsPropertyGets or sets the list of conditions to evaluate.
string LogicOperatorPropertyGets or sets the logic operator to combine conditions (AND, OR).
string DefaultPathPropertyGets or sets the default path when conditions don't match (true, false, custom path name).
bool EvaluateAllConditionsPropertyGets or sets whether to evaluate all conditions or stop at first match.
Dictionary<string, List<IAutomationNode>> ConditionalPathsPropertyGets or sets the conditional execution paths.
bool AllowCustomPathsPropertyGets or sets whether custom named paths are allowed beyond true/false.
override string DescriptionPropertyGets the description of what this automation node does.
override NodeType NodeTypePropertyGets the type of this automation node.
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default)MethodInitializes the conditional node with the specified configuration. The configuration parameters for the node. Token to cancel the initialization. A task representing the initialization operation.
override async Task<ValidationResult> ValidateAsync(Model.ExecutionContext inputData, CancellationToken cancellationToken = default)MethodValidates the current configuration and input data for this node. The input data to validate. Token to cancel the validation. A task containing the validation result.
override async Task<NodeResult> ExecuteAsync(Model.ExecutionContext context, CancellationToken cancellationToken = default)MethodExecutes the conditional logic and returns the result with the chosen path. The execution context containing input data and workflow state. Token to cancel the execution. A task containing the execution result.
override Dictionary<string, object> GetInputSchema()MethodGets the schema defining the input parameters this node expects. A dictionary describing the input schema.
override Dictionary<string, object> GetOutputSchema()MethodGets the schema defining the output parameters this node produces. A dictionary describing the output schema.

HttpRequestNode

Automation node that makes HTTP requests as part of workflow automation. Supports GET, POST, PUT, DELETE methods with configurable headers, authentication, and data transformation.

MemberKindDescription
string UrlPropertyGets or sets the URL for the HTTP request.
string MethodPropertyGets or sets the HTTP method (GET, POST, PUT, DELETE, etc.).
Dictionary<string, string> HeadersPropertyGets or sets the HTTP headers to include in the request.
string RequestBodyPropertyGets or sets the request body content.
string AuthTypePropertyGets or sets the authentication type (None, Bearer, Basic, ApiKey).
string AuthTokenPropertyGets or sets the authentication token or credentials.
int TimeoutSecondsPropertyGets or sets the request timeout in seconds.
bool FollowRedirectsPropertyGets or sets whether to follow HTTP redirects automatically.
string ResponseFormatPropertyGets or sets the expected response format for parsing (json, xml, text, binary).
override string DescriptionPropertyGets the description of what this automation node does.
override NodeType NodeTypePropertyGets the type of this automation node.
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default)MethodInitializes the HTTP request node with the specified configuration. The configuration parameters for the node. Token to cancel the initialization. A task representing the initialization operation.
override async Task<ValidationResult> ValidateAsync(Model.ExecutionContext inputData, CancellationToken cancellationToken = default)MethodValidates the current configuration and input data for this node. The input data to validate. Token to cancel the validation. A task containing the validation result.
override async Task<NodeResult> ExecuteAsync(Model.ExecutionContext context, CancellationToken cancellationToken = default)MethodExecutes the HTTP request and returns the response. The execution context containing input data and workflow state. Token to cancel the execution. A task containing the execution result.
override Dictionary<string, object> GetInputSchema()MethodGets the schema defining the input parameters this node expects. A dictionary describing the input schema.
override Dictionary<string, object> GetOutputSchema()MethodGets the schema defining the output parameters this node produces. A dictionary describing the output schema.