Automation Nodes
The executable node types the workflow engine runs, plus the trigger components
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.
On this page
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.
| Member | Kind | Description |
|---|---|---|
new string Id | Property | Gets the unique identifier for this automation node. |
new string Name | Property | Gets the display name of this automation node. |
abstract string Description | Property | Gets the description of what this automation node does. |
abstract NodeType NodeType | Property | Gets the type of this automation node. |
NodeStatus Status | Property | Gets the current status of this automation node. |
void SetExecutionStatus(NodeStatus status) | Method | Sets the execution status from a host (used for live workflow run visualization). The node status to display. |
Dictionary<string, object> Configuration | Property | Gets or sets the configuration parameters for this node. |
IList<IConnectionPoint> InputConnections | Property | Gets 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> OutputConnections | Property | Gets 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 IsEnabled | Property | Gets a value indicating whether this node is currently enabled for execution. |
event EventHandler<NodeExecutionEventArgs> StatusChanged | Event | Event raised when the node's execution status changes. |
event EventHandler<NodeErrorEventArgs> ErrorOccurred | Event | Event raised when the node encounters an error during execution. |
abstract Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default) | Method | Initializes 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) | Method | Validates 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) | Method | Executes 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() | Method | Gets the schema defining the input parameters this node expects. A dictionary describing the input schema. |
abstract Dictionary<string, object> GetOutputSchema() | Method | Gets the schema defining the output parameters this node produces. A dictionary describing the output schema. |
virtual Task ResetAsync() | Method | Resets the node to its initial state, clearing any cached data or temporary state. |
virtual void ApplyNodeProperties() | Method | Applies 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) | Method | Public 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.
| Member | Kind | Description |
|---|---|---|
ManualTriggerNode() | Method | Initializes a new instance of the ManualTriggerNode class. |
event EventHandler<ManualTriggerEventArgs> ManuallyTriggered | Event | Event raised when the manual trigger is activated. |
event EventHandler<TriggerConfirmationEventArgs> ConfirmationRequested | Event | Event raised when trigger confirmation is requested. |
string TriggerText | Property | Gets or sets the text displayed on the trigger button. |
string KeyboardShortcut | Property | Gets or sets the keyboard shortcut for triggering (e.g., "Ctrl+Enter"). |
bool RequireConfirmation | Property | Gets or sets whether confirmation is required before triggering. |
string ConfirmationMessage | Property | Gets or sets the confirmation message displayed to users. |
bool IsTriggerable | Property | Gets or sets whether the trigger is currently available for activation. |
int ExecutionCount | Property | Gets the number of times this trigger has been activated. |
DateTime LastExecution | Property | Gets the time of the last manual trigger activation. |
Dictionary<string, object> TriggerPayload | Property | Gets or sets additional payload data to include with trigger execution. |
bool AutoReset | Property | Gets or sets whether the trigger automatically resets to triggerable state after execution. |
TimeSpan CooldownPeriod | Property | Gets or sets the cooldown period between trigger activations. |
bool IsInCooldown | Property | Gets whether the trigger is currently in cooldown period. |
TimeSpan CooldownRemaining | Property | Gets the time remaining in the cooldown period. |
override string Description | Property | Gets the description of what this automation node does. |
override NodeType NodeType | Property | Gets the type of this automation node. |
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default) | Method | Initializes 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) | Method | Validates 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) | Method | Executes 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() | Method | Gets 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() | Method | Gets 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) | Method | Manually 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() | Method | Triggers the workflow when triggered by button click. True if trigger was successful. |
async Task<bool> TriggerFromKeyboardAsync() | Method | Triggers the workflow when triggered by keyboard shortcut. True if trigger was successful. |
void Reset() | Method | Resets the trigger to be available for activation again. |
void SetPayload(Dictionary<string, object> payload) | Method | Sets the trigger payload data. The payload data to set. |
bool CanTrigger() | Method | Checks 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.
| Member | Kind | Description |
|---|---|---|
TimerTriggerNode() | Method | Initializes a new instance of the TimerTriggerNode class. |
event EventHandler<TimerTriggeredEventArgs> TimerTriggered | Event | Event raised when the timer triggers workflow execution. |
TimerTriggerMode TriggerType | Property | Gets or sets the type of timer trigger (Interval, Cron, OneTime). |
TimeSpan Interval | Property | Gets or sets the interval for interval-based triggers. |
string CronExpression | Property | Gets or sets the cron expression for cron-based triggers. |
DateTime? StartTime | Property | Gets or sets the start time for the trigger schedule. |
DateTime? EndTime | Property | Gets or sets the end time for the trigger schedule. |
bool IsTimerEnabled | Property | Gets or sets whether the timer trigger is enabled. |
int MaxExecutions | Property | Gets or sets the maximum number of executions (-1 for unlimited). |
int ExecutionCount | Property | Gets the current execution count. |
DateTime LastExecution | Property | Gets the time of the last execution. |
DateTime NextExecution | Property | Gets the time of the next scheduled execution. |
bool IsRunning | Property | Gets whether the timer is currently running. |
override string Description | Property | Gets the description of what this automation node does. |
override NodeType NodeType | Property | Gets the type of this automation node. |
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default) | Method | Initializes 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) | Method | Validates 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) | Method | Executes 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() | Method | Gets 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() | Method | Gets the schema defining the output parameters this node produces. A dictionary describing the output schema. |
void StartTimer() | Method | Starts the timer based on the current configuration. |
void StopTimer() | Method | Stops 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.
| Member | Kind | Description |
|---|---|---|
DataInputNode() | Method | Initializes a new instance of the DataInputNode class. |
string InputMode | Property | Gets or sets the input mode (JSON, Form, Code). |
string JsonData | Property | Gets or sets the JSON data for JSON input mode. |
Dictionary<string, object> FormData | Property | Gets or sets the form data for Form input mode. |
List<FormField> FormFields | Property | Gets or sets the form fields configuration for Form input mode. |
bool AllowMultipleEntries | Property | Gets or sets whether multiple data entries are allowed. |
List<Dictionary<string, object>> MultipleEntries | Property | Gets or sets the multiple data entries. |
string DataSchema | Property | Gets or sets the JSON schema for input validation. |
bool ValidateInput | Property | Gets or sets whether to validate input data. |
override string Description | Property | Gets the description of what this automation node does. |
override NodeType NodeType | Property | Gets the type of this automation node. |
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default) | Method | Initializes 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) | Method | Validates 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) | Method | Executes 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() | Method | Gets the schema defining the input parameters this node expects. A dictionary describing the input schema. |
override Dictionary<string, object> GetOutputSchema() | Method | Gets the schema defining the output parameters this node produces. A dictionary describing the output schema. |
void AddEntry(Dictionary<string, object> entry) | Method | Adds a new entry to the multiple entries collection. The entry to add. |
void RemoveEntry(int index) | Method | Removes an entry from the multiple entries collection. The index of the entry to remove. |
void ClearEntries() | Method | Clears 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.
| Member | Kind | Description |
|---|---|---|
string TransformType | Property | Gets or sets the type of transformation to perform (Map, Filter, Aggregate, Custom). |
Dictionary<string, object> TransformConfig | Property | Gets or sets the transformation configuration parameters. |
List<FieldMapping> FieldMappings | Property | Gets or sets the field mappings for data transformation. |
List<FilterCondition> Filters | Property | Gets or sets the filter conditions for data filtering. |
string CustomScript | Property | Gets or sets the custom transformation script (for Custom transform type). |
string OutputFormat | Property | Gets or sets the output format for the transformed data. |
bool PreserveOriginal | Property | Gets or sets whether to preserve the original data alongside the transformed data. |
override string Description | Property | Gets the description of what this automation node does. |
override NodeType NodeType | Property | Gets the type of this automation node. |
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default) | Method | Initializes 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) | Method | Validates 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) | Method | Executes 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() | Method | Gets the schema defining the input parameters this node expects. A dictionary describing the input schema. |
override Dictionary<string, object> GetOutputSchema() | Method | Gets 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.
| Member | Kind | Description |
|---|---|---|
string DataSourceName | Property | Gets or sets the data source name. |
string EntityName | Property | Gets or sets the name of the entity (table, collection, etc.) to query. |
string QueryString | Property | Gets 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> QueryParameters | Property | Gets or sets the parameters for the query. |
string OutputFormat | Property | Gets or sets the output format for the data (json, xml, csv, etc.). |
int MaxRows | Property | Gets or sets the maximum number of rows to return. |
bool UseCache | Property | Gets or sets whether to use caching for query results. |
TimeSpan CacheTimeout | Property | Gets or sets the cache timeout duration. |
DataSourceAutomationNode() | Method | Initializes a new instance of the DataSourceAutomationNode class. |
DataSourceAutomationNode(IDMEEditor dmeEditor, IDMLogger logger, IErrorsInfo errorObject) | Method | Initializes 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) | Method | Sets 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 Description | Property | Gets the description of what this automation node does. |
override NodeType NodeType | Property | Gets the type of this automation node. |
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default) | Method | Initializes 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) | Method | Validates 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) | Method | Executes 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() | Method | Gets the schema defining the input parameters this node expects. A dictionary describing the input schema. |
override Dictionary<string, object> GetOutputSchema() | Method | Gets 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.
| Member | Kind | Description |
|---|---|---|
ConditionalNode() | Method | Initializes a new instance of the ConditionalNode class. |
List<ConditionRule> Conditions | Property | Gets or sets the list of conditions to evaluate. |
string LogicOperator | Property | Gets or sets the logic operator to combine conditions (AND, OR). |
string DefaultPath | Property | Gets or sets the default path when conditions don't match (true, false, custom path name). |
bool EvaluateAllConditions | Property | Gets or sets whether to evaluate all conditions or stop at first match. |
Dictionary<string, List<IAutomationNode>> ConditionalPaths | Property | Gets or sets the conditional execution paths. |
bool AllowCustomPaths | Property | Gets or sets whether custom named paths are allowed beyond true/false. |
override string Description | Property | Gets the description of what this automation node does. |
override NodeType NodeType | Property | Gets the type of this automation node. |
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default) | Method | Initializes 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) | Method | Validates 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) | Method | Executes 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() | Method | Gets the schema defining the input parameters this node expects. A dictionary describing the input schema. |
override Dictionary<string, object> GetOutputSchema() | Method | Gets 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.
| Member | Kind | Description |
|---|---|---|
string Url | Property | Gets or sets the URL for the HTTP request. |
string Method | Property | Gets or sets the HTTP method (GET, POST, PUT, DELETE, etc.). |
Dictionary<string, string> Headers | Property | Gets or sets the HTTP headers to include in the request. |
string RequestBody | Property | Gets or sets the request body content. |
string AuthType | Property | Gets or sets the authentication type (None, Bearer, Basic, ApiKey). |
string AuthToken | Property | Gets or sets the authentication token or credentials. |
int TimeoutSeconds | Property | Gets or sets the request timeout in seconds. |
bool FollowRedirects | Property | Gets or sets whether to follow HTTP redirects automatically. |
string ResponseFormat | Property | Gets or sets the expected response format for parsing (json, xml, text, binary). |
override string Description | Property | Gets the description of what this automation node does. |
override NodeType NodeType | Property | Gets the type of this automation node. |
override Task<bool> InitializeAsync(Dictionary<string, object> configuration, CancellationToken cancellationToken = default) | Method | Initializes 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) | Method | Validates 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) | Method | Executes 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() | Method | Gets the schema defining the input parameters this node expects. A dictionary describing the input schema. |
override Dictionary<string, object> GetOutputSchema() | Method | Gets the schema defining the output parameters this node produces. A dictionary describing the output schema. |