Skip to content

Action

Executes a task such as sending an email, creating a database record, or calling an external service.

Action node on the canvas

The Action node represents a concrete operation your backend executes. It is the most common node type in any workflow - every step that “does something” is modeled as an Action.

Use Action nodes wherever your workflow needs to perform work: sending an email to a customer, updating a record in your CRM, calling a third-party API, running a script, or generating a document. Most workflows consist primarily of Trigger nodes, Action nodes, and branching logic between them.

Action nodes are intentionally generic. The Action Type dropdown determines what kind of operation the node represents, and each type reveals its own configuration fields in the properties panel. Your backend interprets the selected type and properties to execute the actual operation.

Select the action type from the Action Type dropdown. Each type reveals a different set of configuration fields.

Sends an email message.

PropertyTypeDescription
AddressTextRecipient email address
CopyTextCC recipients
SubjectTextEmail subject line
BodyTextEmail body content
PriorityDropdownNormal / Low / High
RetriesNumberNumber of retry attempts on failure
Retry on FailureBooleanWhether to automatically retry on error

Updates an existing record in a data source.

PropertyTypeDescription
Data SourceDropdownCRM System / Hubspot
Object TypeDropdownOrder / Lead
Record IDTextIdentifier of the record to update
Fields to UpdateTextField mapping expression
Condition for UpdatesTextCondition that must be met before updating
Include DataBooleanWhether to include full record data in output

Calls an external HTTP endpoint.

PropertyTypeDescription
API URLTextEndpoint URL
HTTP MethodDropdownGET / POST / PUT / DELETE
HeadersTextRequest headers
BodyTextRequest body
Response FormatDropdownJSON / XML / Plain Text
Store ResponseDropdownVariable name to store the response in
Retry on FailureBooleanWhether to automatically retry on error

Creates a new record in a data source.

PropertyTypeDescription
Data SourceDropdownCRM System / Hubspot
Object TypeDropdownOrder / Lead
Fields to PopulateTextField mapping expression
AssignDropdownTeam or user to assign the record to
Include RecordBooleanWhether to include the created record in output

Runs a script in the specified language.

PropertyTypeDescription
Script LanguageDropdownJavaScript / Python
Script EditorTextThe script source code
Script StoringTextVariable name to store the script result in
Pass WorkflowBooleanWhether to pass workflow context to the script

Generates a document from a template.

PropertyTypeDescription
TemplateDropdownInvoice Template / Contract Template
Fields to PopulateTextData mapping for template variables
Output FormatDropdownPDF / DOCX
Save LocationDropdownGoogle Drive / Internal Storage
Send DocumentBooleanWhether to send the document after creation

All action types share the following fields:

PropertyTypeDescription
LabelTextDisplay name shown on the node card
DescriptionTextShort description of the node’s purpose
StatusDropdownActive / Draft / Disabled

Schemas

{
"type": "VerticalLayout",
"elements": [
{
"type": "MessageOnError",
"scope": "#/properties/missingPreviousVariable",
"text": "plugins.validation.missingDependency"
},
{
"label": "Select Action Type",
"type": "Select",
"scope": "#/properties/type"
},
{
"type": "Accordion",
"label": "General Information",
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#",
"schema": {
"required": [
"type"
]
}
}
},
"elements": [
{
"type": "Text",
"scope": "#/properties/label",
"label": "Title",
"placeholder": "Node Title..."
},
{
"type": "Select",
"scope": "#/properties/status",
"options": [
{
"label": "Active",
"value": "active",
"icon": "StatusActive"
},
{
"label": "Draft",
"value": "draft",
"icon": "StatusDraft"
},
{
"label": "Disabled",
"value": "disabled",
"icon": "StatusDisabled"
}
],
"label": "Status"
},
{
"type": "Text",
"scope": "#/properties/description",
"label": "Description",
"placeholder": "Type your description here..."
}
]
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/type",
"schema": {
"const": "sendEmail"
}
}
},
"type": "Accordion",
"label": "Email Settings",
"elements": [
{
"type": "Text",
"scope": "#/properties/sendEmail/properties/address",
"label": "Send To",
"placeholder": "user@example.com"
},
{
"type": "Text",
"scope": "#/properties/sendEmail/properties/copy",
"label": "CC / BCC",
"placeholder": "manager@example.com"
},
{
"type": "Text",
"scope": "#/properties/sendEmail/properties/subject",
"label": "Subject",
"placeholder": "Type your subject here..."
},
{
"type": "TextArea",
"scope": "#/properties/sendEmail/properties/body",
"label": "Email Body",
"placeholder": "Type your message here...",
"minRows": 5
},
{
"type": "Select",
"scope": "#/properties/sendEmail/properties/priority",
"label": "Priority",
"options": [
{
"label": "Normal",
"value": "normal"
},
{
"label": "Low",
"value": "low"
},
{
"label": "High",
"value": "high"
}
]
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Retry on Failure:"
},
{
"type": "Switch",
"scope": "#/properties/sendEmail/properties/retryOnFailure"
}
]
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Number of retries"
},
{
"type": "Text",
"scope": "#/properties/sendEmail/properties/retries",
"rule": {
"effect": "DISABLE",
"condition": {
"scope": "#/properties/sendEmail/properties/retryOnFailure",
"schema": {
"const": false
}
}
}
}
]
}
]
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/type",
"schema": {
"const": "updateRecord"
}
}
},
"type": "Accordion",
"label": "Update Record Settings",
"elements": [
{
"type": "Select",
"scope": "#/properties/updateRecord/properties/dataSource",
"label": "Data Source",
"options": [
{
"label": "CRM System",
"value": "crmSystem"
},
{
"label": "Hubspot",
"value": "hubspot"
}
]
},
{
"type": "Select",
"scope": "#/properties/updateRecord/properties/objectType",
"label": "Object Type",
"options": [
{
"label": "Order",
"value": "order"
},
{
"label": "Lead",
"value": "lead"
}
]
},
{
"type": "Text",
"scope": "#/properties/updateRecord/properties/recordId",
"label": "Record ID"
},
{
"label": "Fields to Update",
"type": "TextArea",
"scope": "#/properties/updateRecord/properties/fieldsToUpdate",
"placeholder": "Type your fields here",
"minRows": 5
},
{
"label": "Conditions for Update",
"type": "TextArea",
"scope": "#/properties/updateRecord/properties/conditionForUpdates",
"placeholder": "Type your conditions here",
"minRows": 5
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Include Updated Data in Workflow:"
},
{
"type": "Switch",
"scope": "#/properties/updateRecord/properties/includeData"
}
]
}
]
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/type",
"schema": {
"const": "makeApiCall"
}
}
},
"type": "Accordion",
"label": "API Call Settings",
"elements": [
{
"type": "Text",
"scope": "#/properties/makeAPICall/properties/apiUrl",
"label": "API Endpoint URL"
},
{
"type": "Select",
"scope": "#/properties/makeAPICall/properties/httpMethod",
"label": "HTTP Method",
"options": [
{
"label": "GET",
"value": "get"
},
{
"label": "POST",
"value": "post"
},
{
"label": "PUT",
"value": "put"
},
{
"label": "DELETE",
"value": "delete"
}
]
},
{
"label": "Headers",
"type": "TextArea",
"scope": "#/properties/makeAPICall/properties/headers",
"placeholder": "Type your headers here",
"minRows": 5
},
{
"label": "Body/Payload",
"type": "TextArea",
"scope": "#/properties/makeAPICall/properties/body",
"placeholder": "Type your body here",
"minRows": 5
},
{
"type": "Select",
"scope": "#/properties/makeAPICall/properties/responseFormat",
"label": "Expected Response Format",
"options": [
{
"label": "JSON",
"value": "json"
},
{
"label": "XML",
"value": "xml"
},
{
"label": "Plain Text",
"value": "plainText"
}
]
},
{
"type": "Select",
"scope": "#/properties/makeAPICall/properties/storeResponse",
"label": "Store Response in Variable",
"options": [
{
"label": "orderUpdateResponse",
"value": "orderUpdateResponse"
}
]
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Retry on Failure:"
},
{
"type": "Switch",
"scope": "#/properties/makeAPICall/properties/retryOnFailure"
}
]
}
]
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/type",
"schema": {
"const": "createRecord"
}
}
},
"type": "Accordion",
"label": "Record Settings",
"elements": [
{
"type": "Select",
"scope": "#/properties/createRecord/properties/dataSource",
"label": "Data Source",
"options": [
{
"label": "CRM System",
"value": "crmSystem"
},
{
"label": "Hubspot",
"value": "hubspot"
}
]
},
{
"type": "Select",
"scope": "#/properties/createRecord/properties/objectType",
"label": "Object Type",
"options": [
{
"label": "Order",
"value": "order"
},
{
"label": "Lead",
"value": "lead"
}
]
},
{
"label": "Fields to Populate",
"type": "TextArea",
"scope": "#/properties/createRecord/properties/fieldsToPopulate",
"placeholder": "Type your fields here",
"minRows": 5
},
{
"type": "Select",
"scope": "#/properties/createRecord/properties/assign",
"label": "Assign to User/Team",
"options": [
{
"label": "Sales Team",
"value": "salesTeam"
}
]
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Include Created Record in Workflow:"
},
{
"type": "Switch",
"scope": "#/properties/createRecord/properties/includeRecord"
}
]
}
]
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/type",
"schema": {
"const": "executeScript"
}
}
},
"type": "Accordion",
"label": "Script Settings",
"elements": [
{
"type": "Select",
"scope": "#/properties/executeScript/properties/scriptLanguage",
"label": "Script Language",
"options": [
{
"label": "JavaScript",
"value": "javaScript"
},
{
"label": "Python",
"value": "python"
}
]
},
{
"label": "Fields to Populate",
"type": "TextArea",
"scope": "#/properties/executeScript/properties/scriptEditor",
"placeholder": "Type your code here",
"minRows": 5
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Pass Workflow Variables to Script:"
},
{
"type": "Switch",
"scope": "#/properties/executeScript/properties/passWorkflow"
}
]
},
{
"type": "Text",
"scope": "#/properties/executeScript/properties/scriptStoring",
"label": "Store ScriptOutput in Variable"
}
]
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/type",
"schema": {
"const": "createNewDocument"
}
}
},
"type": "Accordion",
"label": "Document Settings",
"elements": [
{
"type": "Select",
"scope": "#/properties/createDocument/properties/template",
"label": "Template",
"options": [
{
"label": "Invoice Template",
"value": "invoiceTemplate"
},
{
"label": "Contract Template",
"value": "contractTemplate"
}
]
},
{
"label": "Fields to Populate",
"type": "TextArea",
"scope": "#/properties/createDocument/properties/fieldsToPopulate",
"placeholder": "Type your fields here",
"minRows": 5
},
{
"type": "Select",
"scope": "#/properties/createDocument/properties/outputFormat",
"label": "Output Format",
"options": [
{
"label": "PDF",
"value": "pdf"
},
{
"label": "DOCX",
"value": "docx"
}
]
},
{
"type": "Select",
"scope": "#/properties/createDocument/properties/saveLocation",
"label": "Save Location",
"options": [
{
"label": "Google Drive",
"value": "googleDrive"
},
{
"label": "Internal Storage",
"value": "internalStorage"
}
]
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Send Document viaEmail:"
},
{
"type": "Switch",
"scope": "#/properties/createDocument/properties/sendDocument"
}
]
}
]
}
]
}