Skip to main content

Reference

Field-by-field reference for every node and connection type, grouped by kind and listed alphabetically. Use it to look up exactly what a node or connection exposes—its configuration fields, the options each one offers, and what a node outputs for later steps to read.

For task-oriented guidance, see the rest of the user guide—Building automations, Triggers, Actions, and the others.

Every node also carries a Display tab with optional Title and Description fields, not repeated in the field tables below—see Building automations.

Triggers

How automations start. See Triggers for choosing one.

Automation Completed trigger

Starts the automation when another automation finishes. Shown in the picker as Automation Completed, under General Triggers.

Fields

FieldRequiredDescription
Target AutomationYesThe automation to watch for completion.
OutcomesYesWhich terminal outcomes to react to—Succeeded, Failed, or both. At least one is required.

The target cannot be the automation that owns the trigger.

Output

A completion snapshot of the target run: its execution identity, the payload that originally triggered it, timing, and—when it failed—an error summary.

Content trigger

Starts the automation when a content event occurs in a connected Brightspot CMS. Shown in the picker as Content, under Integration Triggers. Requires a Brightspot connection.

Fields

FieldRequiredDescription
ConnectionYesThe Brightspot connection whose CMS to watch.
SitesNoLimit to specific sites. Leave unset to match any site.
EventYesThe content event to fire on (see below).
FiltersNoNarrow which content matches. With none, all content matches.

Events

Published, Drafted, Revised, Merged, Scheduled, Unscheduled, Transitioned (a workflow transition), Archived, Restored, Deleted, Commented, and On Demand.

Filters

FilterMatches on
TypesOne or more content types.
FieldA field's value on the content.
ContentSpecific assets.
Match AllA group of filters that must all match.

Output

The event's payload—the affected content and event metadata. The exact shape depends on the selected event.

GitHub trigger

Starts the automation on a GitHub webhook event for a chosen repository. Shown in the picker as GitHub, under Integration Triggers. Requires a GitHub connection.

Fields

FieldRequiredDescription
ConnectionYesThe GitHub connection to use.
RepositoryYesThe repository to watch, as organization/repository.
EventYesThe event to fire on (see below).

Events

Push, Pull Request, Issues, Issue Comment, Pull Request Review, Pull Request Review Comment, Release, Create, Delete, and Workflow Run. Pull Request and Issues can be limited to specific actions; Create and Delete can be limited to branches or tags.

Output

The GitHub event's payload. The exact shape depends on the selected event.

Jira trigger

Starts the automation on a Jira event for a chosen project. Shown in the picker as Jira, under Integration Triggers. Requires a Jira connection.

Fields

FieldRequiredDescription
ConnectionYesThe Jira connection to use.
ProjectYesThe Jira project to watch.
JQL FilterNoAn optional JQL refinement, combined with the project filter—for example, priority in (High, Highest).
EventYesThe event to fire on (see below).

Events

Issue Created, Issue Updated, Issue Deleted, Comment Added, and Comment Updated. Issue Updated can be limited to changes in specific fields.

Output

The event's payload—the issue or comment involved.

note

Depending on the connection's authentication, the Jira webhook is registered automatically (OAuth) or set up by an administrator (API token). The node shows the current setup status.

On Demand trigger

Starts the automation when you run it yourself—with Run Automation in the editor—or when another automation calls it. Shown in the picker as On Demand, under General Triggers.

Fields

FieldRequiredDescription
PayloadNoThe structured input the run starts with—a Content Type (an existing content type's fields) or a Custom Shape (fields you define on the trigger). Leave unset (None) to start with no input.

Output

If a payload is set, the trigger outputs its fields for later steps to read. With no payload, it produces no output.

Schedule trigger

Starts the automation on a recurring schedule. Shown in the picker as Schedule, under General Triggers.

Fields

FieldRequiredDescription
PayloadNoStructured input for each scheduled run—a Content Type or a Custom Shape. Leave unset for none.
ScheduleYesThe recurrence, set as a cron expression.

Output

If a payload is set, the trigger outputs its fields; otherwise it produces no output.

note

The system checks for due schedules about once a minute, so a schedule that fires more often than once a minute may skip runs.

Webhook trigger

Starts the automation when an external system sends an HTTP POST to a generated URL. Shown in the picker as Webhook, under General Triggers.

Fields

FieldRequiredDescription
NameYesA label used as the node's name in the editor.
URLThe endpoint to POST to. Generated automatically and read-only.
Signing SecretA secret the external system signs its requests with. Generated on first save and kept stable afterward, so the sender's copy stays valid; unsigned requests are rejected.

Node actions

When the URL and signing secret are set, the node offers:

  • Fire Test—send a test delivery to confirm the wiring.
  • Deliveries—review past delivery attempts.

Output

The trigger does not define a fixed output schema; downstream steps read the posted request data through the variable picker.

Actions

The steps that do work. See Actions, Integrations, and AI and agents.

AI Agent action

Runs an AI agent on the automation server, drawing tools from one or more MCP servers. Shown in the picker as AI Agent, under AI Actions. Needs no connection. Supports human-in-the-loop.

Fields

FieldRequiredDescription
TemplateNoA reusable agent from the Agents catalog that steers how this step approaches its task. The prompt below is sent as the task on top of it.
PromptYesThe natural-language task for the agent. Accepts variables, so it can work on the trigger's data and earlier results.
MCP ServersNoThe tool sources the agent may use—a Brightspot environment or any MCP server. Add more than one to let the agent work across systems in a single run.
Payload TypeNoAn output shape the agent populates as structured data, in addition to its message.
Human in the LoopNoOpt-in. Set it to let the agent pause and ask a person before finishing, and choose the Providers the question is pushed to (for example, Slack)—every request is also answerable from the AI Approvals inbox. Left unset, the agent must finish on its own.

The node's Display-tab Description, when left blank, falls back to the start of the prompt.

Human-in-the-loop

When Human in the Loop is set, the agent can pause to ask a person for input—a choice or free text. The step waits until the request is answered, then the agent resumes with the answer.

Output

FieldDescription
messageThe agent's text response.
payloadThe structured result, when a payload type is set.

Automation action

Runs another automation through its on-demand trigger. Shown in the picker as Automation, under General Actions. Needs no connection.

Fields

The action carries one operation, Trigger, with these fields:

FieldRequiredDescription
Target AutomationYesThe automation to run.
Target TriggerYesWhich on-demand trigger of the target to start.
Input PayloadNoThe structured input to start the run with. Shown when the target trigger defines a Content Type payload.
Input Payload (JSON)NoThe input as a JSON object instead. Shown when the target trigger defines a Custom Shape payload; accepts variables, and must evaluate to a JSON object matching that shape.
Wait For CompletionNoWhen on, this step waits for the target to finish and outputs its completion snapshot—a failed outcome can follow the error path. When off (default), it starts the target and continues immediately.

Output

  • Fire-and-forget (wait off): a receipt identifying the run that was started.
  • Wait for completion (wait on): a completion snapshot with the outcome, timing, and any error summary.

AWS AgentCore action

Invokes a hosted AWS Bedrock AgentCore agent. Shown in the picker as AWS AgentCore, under AI Actions. Supports human-in-the-loop.

Fields

FieldRequiredDescription
AgentYesThe hosted agent to invoke, chosen from your AWS environment's catalog of AgentCore agents.
InputYesWhat to send the agent—a Prompt (text, accepts variables) or JSON (a structured payload, accepts variables).
Long-term Memory ScopeNoHow much the agent recalls between runs: this run only; this node; this automation (the default); this agent across the site; or the whole site.
Human in the LoopNoOpt-in. Set it to let the agent pause and ask a person before finishing, and choose the Providers the question is pushed to (for example, Slack)—every request is also answerable from the AI Approvals inbox. Left unset, the agent must finish on its own.

Human-in-the-loop

When Human in the Loop is set, the agent can pause to ask a person for input; the step waits for the answer and the agent resumes. While the agent works, its progress streams into the run.

Output

The agent's result, together with run telemetry. The result's shape is defined by the agent.

Content action

Operates on content in a connected Brightspot CMS. Shown in the picker as Content, under Integration Actions. Requires a Brightspot connection.

Fields

FieldRequiredDescription
ConnectionYesThe Brightspot connection to act on.
Target Content IDNoA variable resolving to the ID of the content to operate on.
OperationYesWhat to do (see below).

Operations

OperationDescriptionExtra fields
FetchRead the target content.
PublishPublish the target content.
SaveSave changes to the target content.Fields—a JSON object of field name to value, applied directly to the target content. Embedded Objects—an advanced list of field changes for embedded objects inside the content, one entry per object, each holding the object's id and its own JSON object of field name to value. Site—optional; the site to save in. It defaults to the connection's site when it pins exactly one, and otherwise the content keeps the site it already has.
ArchiveArchive the target content.
DeleteDelete the target content.
RestoreRestore the target content.
TransitionMove the content through a workflow.Workflow and Transition to apply.
Post CommentPost a comment on the target content's conversation.The comment to post.
Complete Work Stream ItemMark the target content complete in a work stream, so the next run of a work-stream query skips it.Work Stream—the work stream to mark the content complete in, typically the Content Query node's work stream output.

A Save fails—rather than reporting success—when a change targets no content actually present (a misspelled or stale id) or changes no stored value.

Output

The result returned by the connected CMS for the operation performed.

Content Query action

Resolves a query or a saved work stream to a list of content, to drive an automation across a set of items instead of a single event. Wire its results output into a Loop to process every match. Shown in the picker as Content Query, under Integration Actions. Requires a Brightspot connection.

Read-only, so a Content Query runs unchanged under a dry run—it always previews the real result set and count.

Fields

FieldRequiredDescription
ConnectionYesThe Brightspot connection to query.
SourceYesWhere the content list comes from—Custom Query or Work Stream (see below).

Sources

Custom Query builds the list from a content type and optional filters:

FieldRequiredDescription
SiteNoRestrict the query to one site. Defaults to the connection's site when it pins exactly one, otherwise every accessible site.
Content TypeYesThe type of content to query.
PredicateNoHow to narrow the type—Match Fields or Query Expression (see below). Leave unset to match every item of the type.
Max ResultsNoCaps how many items are returned and iterated. Defaults to 100; the CMS caps it at 1000.

Match Fields builds a predicate from field conditions in the editor:

  • Match—how to combine the conditions: All, Any, or None.
  • Conditions—a list of Condition clauses (Field, Operator, Value) and nested Groups, each with its own Match and conditions, so you can express a and (b or c). A condition's value accepts variables.

Query Expression is a raw query for filters the builder can't express—an operator outside the allowlist, or and/or/not combined with grouping:

FieldRequiredDescription
ExpressionYesA predicate expression using ? placeholders for values, e.g. headline contains ? and (cms.content.publishDate > ? or featured = ?). Supports and, or, not, parentheses, ?0/?1 positional binding, and keywords like missing.
ValuesNoValues substituted for the ? placeholders, in order. Each accepts variables. A note warns when the count doesn't match the expression's placeholders.

Work Stream runs across a saved, progress-tracked CMS work stream:

FieldRequiredDescription
Work StreamYesThe work stream to run across.
Include CompletedNoBy default only items not yet completed in the work stream are returned, so a re-run picks up where the last one left off. Turn on to return every item regardless of completion.
Max ResultsNoCaps how many items are returned and iterated. Defaults to 100; the CMS caps it at 1000.

Output

results—a list of matched content, each a summary with its id, type, and label. totalCount and truncated report the full match count and whether Max Results cut the list short. With a Work Stream source, the output also identifies the work stream, so a later step's Complete Work Stream Item operation can reference it.

Email action

Sends an email to one or more recipients. Shown in the picker as Email, under Notification Actions. Needs no connection; delivery is configured by an administrator.

Fields

FieldRequiredDescription
ToYesThe recipient email addresses. Accepts variables.
SubjectNoThe subject line. Accepts variables.
BodyNoThe message body, as rich text with basic formatting. Accepts variables.

Recipients who have opted out are skipped, and each message includes an unsubscribe link.

Output

FieldDescription
sentAddresses the message was sent to.
failedAddresses that failed, each with a reason.
skippedAddresses that were skipped (for example, opted out), each with a reason.

GitHub action

Runs one operation against a GitHub repository. Shown in the picker as GitHub, under Integration Actions. Requires a GitHub connection.

Fields

FieldRequiredDescription
ConnectionYesThe GitHub connection to use.
RepositoryYesThe repository to act on, as organization/repository.
OperationYesWhat to do (see below).

Operations

GroupOperations
Pull requestsCreate Pull Request, Get Pull Request, Update Pull Request, Merge Pull Request, Submit Pull Request Review, Add Reviewers.
IssuesCreate Issue, Get Issue, Update Issue.
Issues and pull requestsAdd Comment, Modify Assignees, Modify Labels.
BranchesCreate Branch, Get Branch, List Branches, Delete Branch.
Files and commitsGet File Contents, Create or Update File, Create Commit, Create Commit Status.
ReleasesCreate Release.
WorkflowsTrigger Workflow.

Each operation takes the inputs it needs—a pull request or issue number, a branch name, a file path and contents, and so on. Many text inputs accept variables.

Output

The result of the operation—for example, the created or fetched pull request, issue, branch, file, or commit. Some operations (such as merge or label changes) return no payload.

HTTP Request action

Sends an HTTP request to any URL. Shown in the picker as HTTP Request, under General Actions. Needs no connection.

Fields

FieldRequiredDescription
MethodYesThe HTTP method: GET, POST, PUT, PATCH, DELETE, HEAD, or OPTIONS.
URLYesThe request URL. Accepts variables.
Query ParametersNoName/value pairs appended to the URL; each can be enabled or disabled.
HeadersNoRequest headers; each can be enabled or disabled.
BodyNoThe request body. Available for methods that support one (POST, PUT, PATCH).
AuthNoOptional authentication applied to the request.
Follow RedirectsNoWhether to follow redirects. On by default.
Fail On Error StatusNoWhen on, a non-success status fails the step so the flow can follow its error path. Off by default.
Advanced
FieldDescription
Connect Timeout (ms), Read Timeout (ms)Per-request timeouts.
Response DestinationHow the response body is captured: Discard (status only), Headers Only, Inline (body in the payload), Storage (stream to storage), or Automatic (inline, spilling to storage if too large).
Inline Response: Max Size, Storage Response: Max SizeSize limits for the inline and storage tiers.
ResilienceOpt-in retry, timeout, and circuit-breaking for this step. Left unconfigured, a failure is terminal as before. Fields: Max Retries (0 disables), Initial Retry Delay, Backoff Multiplier, Max Retry Delay, and Jitter (randomize each delay by ±50% so many failing runs don't retry in lockstep); Attempt Timeout (fails a single attempt that runs too long, independent of retry); Enable Circuit Breaker with a Failure Threshold and Open Duration, so a struggling endpoint fails fast instead of being hammered once it has failed repeatedly. Retries are durable—a long backoff survives a restart—and each attempt is recorded, so the step's history shows every retry.
Dry Run: Outbound HTTPOverrides the site-wide policy for which methods this step sends during a dry runNone, Safe Methods Only, or All Methods. Leave unset to inherit the site setting.

Output

FieldDescription
status, statusTextThe HTTP status code and text.
headersResponse headers.
cookiesSet-Cookie values.
bodyThe raw body (inline and automatic modes).
jsonThe parsed body, when the response is JSON (inline and automatic modes).
storageItemA reference to the stored body (storage and automatic modes).

For safety, requests to private and loopback network addresses are blocked.

Jira action

Runs one operation against a Jira project. Shown in the picker as Jira, under Integration Actions. Requires a Jira connection.

Fields

FieldRequiredDescription
ConnectionYesThe Jira connection to use.
ProjectYesThe Jira project to act in.
OperationYesWhat to do (see below).

Operations

OperationKey inputs
Create IssueIssue type, summary, optional description, assignee, priority, labels, custom fields.
Get IssueIssue key.
Update IssueIssue key, plus the fields to change.
Assign IssueIssue key, assignee (blank to unassign).
Transition IssueIssue key, transition, optional comment.
Add CommentIssue key, comment body.
Search IssuesA JQL query, with optional paging and field selection.
Delete IssueIssue key; option to delete subtasks.
Add WorklogIssue key, time spent, optional comment and start time.
Link IssuesTwo issue keys, link type, optional comment.
Add WatcherIssue key, account.
Remove WatcherIssue key, account.

Output

The result of the operation—for most operations the affected issue or comment; for Search Issues, the matched issues with paging information.

Log action

Writes a message to the run's execution log, then continues. Shown in the picker as Log, under General Actions. Needs no connection.

Fields

FieldRequiredDescription
MessageNoThe line written to the execution log. Mix literal text with variables to record what a value holds at that point in the flow.
VariablesNoUpstream values recorded with the step for inspection, without being written into the message line. Use for complex objects, which read poorly inline—a variable in the message resolves to a flat string.

The message lands in the step's own execution log, never in the server log, so a Log step can stay in a live automation as a lightweight trace of what a value held—without the weight of a Script action.

Output

None. A Log step is transparent: it adds nothing of its own, and later steps keep referencing earlier outputs unchanged.

OpenAPI action

Calls an operation described by an OpenAPI specification. Shown in the picker as OpenAPI, under General Actions. Needs no connection of its own.

Fields

FieldRequiredDescription
Spec URLYesThe URL of the OpenAPI specification. Validated as you enter it.
OperationYesThe operation to call, chosen from the operations the spec defines.

Once you pick an operation, the action adds a field for each of that operation's path, query, and header parameters, and for its request-body properties. Many of these accept variables.

On the Advanced tab, Dry Run: Outbound HTTP overrides the site-wide policy for which methods this step sends during a dry runNone, Safe Methods Only, or All Methods. Leave unset to inherit the site setting.

Output

The operation's response, shaped by the response schema the specification defines for it.

Remote AI Agent action

Runs an AI agent through a connected Brightspot CMS—that CMS's own agent does the work with its tools. Shown in the picker as Remote AI Agent, under AI Actions. Supports human-in-the-loop.

Fields

FieldRequiredDescription
ConnectionYesThe Brightspot connection that runs the agent.
PersonaNoAn author persona from the connected CMS whose writing style the agent adopts.
PromptYesThe natural-language task for the agent. Accepts variables, so it can work on the trigger's data and earlier results.
Payload TypeNoAn output shape the agent populates as structured data, in addition to its message.
Human in the LoopNoOpt-in. Set it to let the agent pause and ask a person before finishing, and choose the Providers the question is pushed to (for example, Slack)—every request is also answerable from the AI Approvals inbox. Left unset, the agent must finish on its own.

The node's Display-tab Description, when left blank, falls back to the start of the prompt.

Human-in-the-loop

When Human in the Loop is set, the agent can pause to ask a person for input—a choice or free text. The step waits until the request is answered, then the agent resumes with the answer.

Output

FieldDescription
messageThe agent's text response.
payloadThe structured result, when a payload type is set.

Script action

Runs a script in a sandbox. Shown in the picker as Script, under General Actions. Needs no connection.

Fields

FieldRequiredDescription
LanguageYesThe script language and its source code.
DescriptionNoA note describing what the script does, for easy identification.
Output TypeNoThe shape of the value the script returns, so later steps can reference its fields.
Auto-generate Output TypeNoInfer the output type from the script's result on the last run, instead of declaring it by hand. Hidden once an output type is set.

Give the node a Display-tab Description for identification—see Building automations.

Script context

The script can read two values:

  • payload—the output of the preceding step.
  • input—the values you mapped into the step.

The value the script returns becomes the step's output.

Output

If an output type is declared, the step exposes its fields (a scalar or list value is exposed under result). With no declared type, the output shape is unknown to later steps until the script runs.

Limits

Scripts run in a sandbox with no access to the file system, the network, or the host. Several ceilings bound what one script may consume, because the server runs many scripts at once and none of them should be able to slow the others down. Script steps are intended for transforming data, and the defaults are set well above what that needs.

What is limitedDefault
Time to run3 seconds
CPU time used1 second
Statements executed1,000,000
Memory held at once32 MB
Memory allocated in total, including memory the script discards as it goes192 MB
Longest single string4,194,304 characters
Largest single typed array, such as a Uint8Array1,048,576 elements
Console output captured per run64 KB
Length of the script itself262,144 characters

For scale, a script that maps and filters a 50,000-item list and re-serializes it to JSON uses about 250,000 statements, under a tenth of a second, and under 4 MB of memory.

Cross a ceiling and the step fails with a message naming the one you crossed, so you can tell which value is in the way. Your administrator can change any of these. The two memory ceilings and the CPU ceiling depend on how the server is set up—an administrator can tell you which apply to your deployment—but the message you get always names the ceiling that stopped the script.

If you are hitting a limit, the usual fix is to move work out of the script rather than raise the ceiling: filter a list before the script rather than inside it, or split one large script into several steps.

Slack Message action

Posts a message to a Slack user or channel. Shown in the picker as Slack Message, under Notification Actions. Requires a Slack connection.

Fields

FieldRequiredDescription
ConnectionYesThe Slack connection to post through.
RecipientYesA user or channel to message. Accepts variables.
MessageNoThe message, as rich text with basic formatting. Accepts variables and is converted to Slack formatting.

Output

FieldDescription
recipientThe recipient the message was sent to.
channelSlack's resolved channel ID.
tsSlack's message timestamp, usable to thread replies.

Sleep action

Pauses the flow for a set duration, then continues. Shown in the picker as Sleep, under General Actions. Needs no connection.

Fields

FieldRequiredDescription
Sleep For (ms)YesHow long to pause, in milliseconds.

While paused, the run waits without consuming resources, then resumes and passes its incoming payload through unchanged.

Output

None.

note

A sleep longer than the automation's execution timeout is flagged in the editor.

Stop with Error action

Deliberately fails the run when the flow reaches it. Shown in the picker as Stop with Error, under General Actions. Needs no connection.

Place it on a path that should never be taken—the false branch of a condition guarding an expected value—so an unexpected outcome becomes a visible failed run instead of a silent success.

Fields

FieldRequiredDescription
Error MessageNoThe message recorded on the failed run. Accepts variables, so it can include the unexpected value. Left blank, a standard message is recorded.

The failure is unhandled by design—it does not follow an error path—so reaching this node always fails the run.

Output

None. The node always fails, so later steps never read from it.

Conditions

Routing the flow. See Conditions and branching.

AI Judgment condition

Routes the flow based on an AI agent's answer to a yes/no question. Shown in the picker as AI Judgment, under General Conditions. Routes to true when the agent answers yes, otherwise to false.

Fields

FieldRequiredDescription
TemplateNoA reusable agent from the Agents catalog whose guidelines the judgment applies—for example, a brand-aware evaluator.
ContextNoFraming for the judgment—the criteria or background the AI should weigh, such as "On-brand means a positive tone, no politics, and lifestyle topics."
QuestionYesThe yes/no question that decides the route. Accepts variables, so it can ask about the trigger's data and earlier results.
MCP ServersNoTool sources the agent may call to inform its judgment—for example, a Brightspot environment, to check whether matching content already exists. Leave empty to judge from the question alone.

Deciding a route must not change anything, so the agent is only ever offered read-only tools—in a live run as well as a dry run. Mutating work belongs in an AI Agent action after the branch.

Output

The incoming payload, passed through unchanged on the chosen path. The agent's reasoning for its answer is written to the step's log, so the branch choice is explainable afterward.

Expression condition

Routes the flow based on a boolean expression you build. Shown in the picker as Expression, under General Conditions. Routes to true when the expression is true, otherwise to false.

Fields

FieldRequiredDescription
ExpressionYesThe boolean expression to evaluate, built from the comparisons and combinators below.

Comparisons

A comparison tests one or two values, each a variable or a literal.

OperatorTests whether…
Equals (==)The two values are equal.
Not Equals (!=)The two values differ.
Greater Than (>), Less Than (<)One number is greater / less than another.
Greater Or Equal (>=), Less Or Equal (<=)One number is at least / at most another.
ContainsThe first value contains the second.
Matches RegexThe value matches a regular expression.
Is Empty, Is Not EmptyA single value is empty / not empty.
Is Truthy, Is Not TruthyA single value is truthy / not truthy.

Combinators

CombinatorTrue when…
All OfEvery condition inside it is true (AND).
Any OfAny condition inside it is true (OR).
NotThe condition inside it is false.

Combinators can nest, so you can build expressions of any depth. The editor shows a readable preview as you build.

Output

The incoming payload, passed through unchanged on the chosen path.

Random (A/B Split) condition

Routes the flow randomly, by a percentage you set—useful for A/B tests. Shown in the picker as Random (A/B Split), under General Conditions.

Fields

FieldRequiredDescription
True PercentageYesThe percentage of runs that route to true (0–100). The rest route to false. Defaults to 50.

Output

The incoming payload, passed through unchanged on the chosen path.

Script condition

Routes the flow based on a script's result. Shown in the picker as Script, under General Conditions. Routes to true when the script returns a truthy value, otherwise to false.

Fields

FieldRequiredDescription
LanguageYesThe script language and its source code.

Script context

The script can read two values:

  • payload—the output of the preceding step.
  • input—the values you mapped into the step.

A returned value of null, false, zero, an empty string, or an empty collection routes to false; any other value routes to true.

Limits

The same sandbox and the same ceilings as the Script action.

Output

The incoming payload, passed through unchanged on the chosen path.

Loops

Repeating part of a flow. See Loops and iteration.

Loop

Opens a loop that repeats the body between it and its paired Loop End once for each item in a list. Shown in the picker as Loop, under Control. Adding a loop scaffolds the Loop and Loop End pair together.

Fields

FieldRequiredDescription
SourceYesThe list to iterate over, taken from an upstream variable that produces an array.
ModeYesWhether iterations run serially (one after another) or in parallel. Serial iterations can see the previous iteration's results; parallel iterations run independently.
Failure PolicyNoWhat happens when an item's body fails: fail fast stops the loop on the first failure; best effort records it and continues.

Output

Inside the loop body, the Loop node's output is the current item. Reference its fields to act on each item in turn.

Loop End

Closes a loop and converges its body. Shown in the picker as Loop End, under Control. It is paired with a Loop node and is normally added together with it.

Fields

FieldRequiredDescription
Collect Results FromNoGather one value from every iteration into the loop's results output—a body node's whole output, or one of its fields. Leave unset to emit only the run stats. To combine several body nodes, funnel them through one node first and collect that.

Output

A summary of the loop:

FieldDescription
countThe number of iterations.
successCountHow many iterations succeeded.
failedCountHow many iterations failed.
resultsPresent only when Collect Results From is set. One entry per iteration, in order, shaped as the collected value—skipping any iteration that didn't complete.

A later step can branch on count/successCount/failedCount to react to partial failures, or consume results as the whole set the loop processed—for example, feeding every iteration's output into a single downstream AI action.

Connections

Authenticated links to external systems. See Connections for how to create one.

Brightspot connection

Connects to a Brightspot CMS instance so the Content trigger and Content action can act on it. Shown in the picker as Brightspot. Authenticates with OAuth 2.0, configured automatically from the instance's base URL. The target CMS must have the Esca server module installed—an administrator task—before connecting works.

Fields

FieldRequiredDescription
Instance NameNoA memorable name for the instance.
Base URLYesThe base URL of the Brightspot instance. Normalized to scheme, host, and port on save.
Basic AuthUsername, PasswordNoHTTP Basic credentials for reaching a protected lower environment that sits behind a gateway. Separate from the OAuth sign-in below.

Authentication

Authentication uses OAuth 2.0. The connection discovers the instance's OAuth endpoints from the base URL and registers itself automatically—you do not enter client credentials. Click Connect and sign in to the target CMS to authorize access. Once connected, the connection shows the signed-in user's name and email.

Custom OAuth connection

Connects to any OAuth 2.0 service, for use with the HTTP request and OpenAPI actions. Shown in the picker as Custom OAuth.

Fields

FieldRequiredDescription
NameYesA name for the connection.
Auto-config InputNoPaste a discovery URL (RFC 8414 / RFC 9728) or an OpenAPI 3 oauth2 security-scheme fragment. On save, the connection fills in the endpoints, scopes, and—where the provider supports it—client credentials. Leave blank to configure the fields by hand.

Authentication

The embedded Custom OAuth 2.0 authentication exposes the full OAuth configuration, either filled in by auto-config or entered manually:

FieldRequiredDescription
Client IDYesThe OAuth client ID.
Client SecretNoThe client secret (omit for public clients).
Authorize URLYesThe provider's authorization endpoint.
Token URLYesThe provider's token endpoint.
Revoke URLNoThe revocation endpoint, if the provider offers one.
ScopesNoThe scopes to request.
Scope DelimiterNoHow scopes are joined. Defaults to a space.
Token Endpoint Auth MethodNoHow credentials are sent to the token endpoint. Defaults to HTTP Basic.
Refresh RotatesNoWhether the provider issues a new refresh token on every refresh.
ResourceNoAn RFC 8707 resource indicator, sent on authorize and token requests.
Use PKCENoUse PKCE (S256). On by default; required by OAuth 2.1. Disable only for legacy servers that reject it.
Extra Authorize Params, Extra Token ParamsNoAdditional provider-specific parameters.

After configuring, click Connect to authorize.

GitHub connection

Connects to GitHub so the GitHub trigger and GitHub action can use it. Shown in the picker as GitHub.

Fields

FieldRequiredDescription
NameYesA name for the connection.
AuthYesThe authentication method—Personal Access Token or App Installation.

Authentication

Personal Access Token
FieldRequiredDescription
TokenYesA GitHub personal access token.

Personal access tokens are tied to a user account and stop working if that account is deactivated.

App Installation
FieldRequiredDescription
App IDYesThe GitHub App's ID.
Installation IDYesThe installation ID for the organization the app is installed in.
Private Key (PEM)YesThe app's RSA private key in PKCS#8 PEM format.

An app installation is tied to an organization rather than a person, so it survives personnel changes—the right choice for a shared connection. If GitHub gives you a PKCS#1 key (beginning -----BEGIN RSA PRIVATE KEY-----), convert it to PKCS#8 first.

Both methods use stored credentials, so there is no connect-and-redirect step.

Jira connection

Connects to a Jira site so the Jira trigger and Jira action can use it. Shown in the picker as Jira.

Fields

FieldRequiredDescription
NameYesA name for the connection.
Site URLYesThe Jira site URL, for example https://your-org.atlassian.net.
AuthYesThe authentication method—API Token or OAuth 2.0 (3LO).

Authentication

API Token
FieldRequiredDescription
EmailYesThe email address of the Atlassian account that owns the API token.
API TokenYesA token generated at id.atlassian.com under Security → API tokens.

A service account is recommended over a personal account for production, so the connection does not break when a person's access changes.

OAuth 2.0 (3LO)
FieldRequiredDescription
Client IDYesThe client ID of your Atlassian OAuth 2.0 (3LO) app.
Client SecretYesThe app's client secret.

After entering the credentials, save and click Connect to authorize the app. OAuth is required for triggers that register their Jira webhooks automatically, because Atlassian limits the dynamic-webhook endpoint to OAuth apps.

note

The connection's authentication method and site URL cannot be changed while OAuth is connected or while registered webhooks exist.

Slack connection

Connects to a Slack app so the Slack Message action can post messages and human-in-the-loop requests can be answered in Slack. Shown in the picker as Slack.

Fields

FieldRequiredDescription
App NameNoA memorable name for this Slack app. Falls back to the workspace name once connected.
AuthClient ID, Client SecretYesThe credentials of your Slack app, used for the OAuth install.
Signing SecretNoThe app's signing secret, used to verify Slack's interactive callbacks (such as approval button clicks). Found in the Slack app console under Basic Information → App Credentials.
Enable Channel ListNoEnables channel auto-complete in the recipient picker. Requires the app's channels:read scope to be approved.

Authentication

Enter the client ID and secret, save, then click Connect to install the app into your Slack workspace. Once installed, the connection can post as the app's bot. For creating and configuring the Slack app itself—scopes, redirect URL, and interactivity—see Setting up the Slack connection.

MCP servers

Tool sources for the AI Agent action and the AI Judgment condition, managed on the Connections page. See MCP servers for how to add one. Every server has a Name, which both labels it and identifies its tools to the agent.

Brightspot MCP server

The MCP endpoint of a Brightspot CMS. Shown in the picker as Brightspot. An MCP server is separate from a Brightspot connection—it authenticates against the CMS's MCP endpoint directly, matching how an administrator configured that endpoint.

Fields

FieldRequiredDescription
NameYesIdentifies the server and its tools to the agent.
MCP Endpoint URLYesThe full URL the CMS serves MCP at, for example https://cms.example.com/mcp.
AuthYesOAuth or API Key, matching how the endpoint is configured. The API key is sent as the X-API-Key header.

Authentication

With OAuth, everything is configured automatically: click Connect, sign in to the CMS, and authorize access—endpoints are discovered from the URL and a client is registered for you. With API Key, paste the key and save; there is no connect step.

Custom MCP server

Any remote MCP server, reached by URL. Shown in the picker as Custom. A Brightspot MCP endpoint can also be reached through this type, but the Brightspot server type is the first-class option.

Fields

FieldRequiredDescription
NameYesIdentifies the server and its tools to the agent.
Remote MCP Server URLYesThe URL the server is reached at.
Requires OAuthNoEnable when the server requires OAuth. Leave off for a public server—no credentials are sent.
Client IDNoShown when Requires OAuth is enabled. Leave blank to register a client dynamically at connect time; set it only when the server requires a pre-registered client.
Client SecretNoShown when Requires OAuth is enabled. The secret for the pre-registered client, if any.

Authentication

A public server needs nothing beyond its URL. For an OAuth server, enable Requires OAuth and click Connect—the OAuth endpoints are discovered from the URL, and unless you supplied a pre-registered client ID and secret, a client is registered dynamically as part of the flow.

Was this page helpful?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.