Skip to Content

Actionflow Node List

Nodes include database operations, AI execution, permission changes, API calls, Run code, For each, conditions, and integrations.

Setup guide: Build Actionflows.

Database

Query, insert, update, and delete on a selected table.

⚠️

Currently, a single database query node can retrieve a maximum of 1000 rows. For larger datasets, use loops to query in batches.

Call API

Run an API already configured under API, bind its response to output parameters, and expose the API result on the Actionflow.

Run AI

Run a configured Agent (set the Actionflow execution mode to asynchronous).

Run Actionflow

Call another Actionflow. A synchronous Actionflow cannot call an asynchronous one.

Set Variable

Assign values to declared Actionflow variables.

Current User

Get the current user ID and access token for the logged-in user.

Permissions

Grant or revoke roles for specific users.

Run Code

Extend backend Actionflow logic with JavaScript. See Develop with Run Code.

Files

Save external images, videos, and files and convert them to Momen’s native types.

Condition

Add branch logic. Conditions are evaluated left to right. Once a branch matches, it runs and the flow rejoins right after the condition block — later branches are not evaluated.

When no branch matches, the Actionflow does not fail. It skips the whole condition block and continues with the node that follows it.

To handle the “none of the above” case, set the last branch’s condition to Always as a fallback. To treat it as an error instead, put a Throw node inside that fallback branch.

For each

Iterate over each item in a list and run the inner actions for every element. The loop works as follows:

  1. Input: This node receives a list as its data source.
  2. Execution: It starts from the first item, runs all actions inside the loop, then moves to the next item until the list is exhausted.
  3. Output: In each iteration, you can use item data (item) and item index (index) as input for inner nodes.

To loop a fixed number of times, use the SEQUENCE formula to build an array of the desired length and use it as the loop data source.

Condition Loop

Run a block of logic repeatedly while a condition is true. The loop works as follows:

  1. Condition: Set a condition expression.
  2. Execution: If the condition is true, run all actions inside the loop; otherwise exit the loop.
  3. End: The loop stops when the condition becomes false.

To prevent infinite loops, a single condition loop can run at most 100 times.

Break Loop

Exit the innermost active loop.

Delay

Pause the Actionflow. When the flow reaches this node, it waits for the configured amount of time before continuing to the next node.

Parameters

ParameterDescriptionTypeRequired
DurationHow long to wait. Enter a fixed value, or bind an upstream node’s output to wait for a dynamic amount of time.BigIntYes
UnitUnit of the duration: Milliseconds, Seconds (default), Minutes, or Hours.EnumYes
⚠️

A single Delay node can wait at most 1 day. Longer durations will not run correctly.

⚠️

Delay is only supported in asynchronous Actionflows. The node cannot be added to a synchronous flow — switch the Actionflow execution mode to asynchronous first.

Throw

Abort the Actionflow with an error. When the flow reaches this node, it raises a runtime error, the Actionflow stops, and no downstream node runs.

A common pattern is to place it inside a Condition branch so the flow fails deliberately when a business check does not pass (out of stock, invalid input, and so on), returning the reason to the caller.

Parameters

ParameterDescriptionTypeRequired
Error messageText describing the error. Enter fixed text, or bind upstream node outputs to build a dynamic message.TextYes

Rollback behavior

Throw ends the Actionflow as a failure. Whether earlier work is rolled back depends on the execution mode and transaction:

  • Synchronous Actionflow: database operation nodes share one transaction, so a Throw rolls back the inserts, updates, and deletes that ran before it.
  • Asynchronous Actionflow: there is no cross-node database transaction, so a Throw does not roll back — data written earlier is kept.
⚠️

In either mode, external operations (API, AI, payment, files) are outside the database transaction and are not undone by a Throw. When external systems are involved, design your own idempotency, retry, or compensation logic.

Output

Return the Actionflow’s result and end the flow.

All Output nodes in an Actionflow share the same output type. Changing the structure on any one of them updates the others.

Parameters

ParameterDescriptionTypeRequired
Output typeData type of the Actionflow’s output. Callers read the result as this type.AnyNo

How it works

When the flow reaches this node, the Actionflow returns the node’s output value immediately and skips every node after the condition block. Use it to return early, for example as soon as a cached result is found.

  • An Output node can only be the last node of a condition branch. No other node can follow it.
  • Each condition block must keep at least one branch that continues past it. Output nodes cannot end every branch.
  • Every Actionflow has an Output node at the end of its main flow. It is created along with the Actionflow and cannot be deleted or renamed.

To end the flow with an error and trigger On failure, use a Throw node. An Output node ends the Actionflow as a success.

Gemini Veo 3.1

Video generation node. Veo 3.1 can generate up to ~8 seconds of high-fidelity 720p, 1080p, or 4K video with native audio (set the Actionflow execution mode to asynchronous).

Parameters

ParameterDescriptionTypeRequired
promptText prompt for the video. Supports audio prompts.TextYes
negativePromptWhat the video should not contain. Cannot be used together with any referenceImage1, referenceImage2, or referenceImage3 input, or the call will fail.TextNo
firstImageFirst frame of the video. Cannot be used together with any reference image field (referenceImage1–3), or the call will fail.ImageNo
lastImageLast frame of the video. Cannot be used together with any reference image field, must be used with firstImage, or the call will fail.ImageNo
referenceImage1/2/3Up to three reference images for style and content. If the matching referenceType is null, that slot has no effect.ImageNo
referenceType1/2/3Reference type: only "asset" or "style". "asset": reference provides material (scenes, objects, characters). "style": reference provides style (color, lighting, texture); at most one "style" image. If the matching referenceImage field is empty, that slot has no effect.TextNo
aspectRatioOnly "16:9" (default) or "9:16".TextNo
resolutionOnly "720p", "1080p", or "4k"; default 720p.TextNo
durationSecondsClip length in seconds; only 4, 6, or 8; default 8.IntegerNo
videoGenerated video output.VideoYes

Check verification code

Found under the Communication category of the node menu. Checks a verification code entered by the user inside an Actionflow. It is usually paired with a custom scenario to confirm, before a prize draw, a withdrawal, or another sensitive operation, that the user can receive codes at the given phone number or email address. For a complete example, see Use a custom scenario: confirm a prize draw by email.

Parameters

ParameterDescriptionTypeRequired
scenarioScenario of the code. Must match the scenario selected in Send verification code.EnumYes
sendToRecipient of the code, that is, the phone number or email address it was sent to.TextYes
codeCode entered by the user.TextYes

Output

ParameterDescriptionType
validtrue if the code matches the scenario and recipient and has not expired; otherwise false.Boolean

How it works

  • Checks codes sent by SMS and by email.
  • A code is invalidated as soon as it is checked successfully and cannot be reused.
⚠️

The node does not fail when a check fails. It only sets valid to false. Add a Condition node after it to branch on valid, and use a Throw node to stop the Actionflow when the check fails. Otherwise the following nodes run as usual.

⚠️

Do not use this node on codes sent for built-in scenarios such as register or login. A successful check invalidates the code, so the matching action will then reject it.

Send SMS - Twilio

Twilio is a widely used cloud communications platform. This node sends SMS verification codes, international logistics notifications, and other text messages.

To send verification codes for sign-up, sign-in, or any other scenario with this node, add it to the delivery Actionflow of a custom channel, then add a channel that uses that Actionflow under Action → Verification code → Delivery channels. See Deliver codes through your own provider.

1. Prerequisites (in the Twilio console)

  • Account: Sign up and open the Twilio Console .
  • Credentials: Copy Account SID and Auth Token (reveal the token before copying; keep it secret).
  • From number: Purchase or use a trial Twilio number enabled for SMS; that value goes in from_phone_number. Format must meet Twilio requirements (usually E.164 with country code, e.g. +12025550100).

2. Configure the node (in Momen)

The Inputs on the right map one-to-one to Twilio’s send API. See Twilio’s Message resource  for limits and behavior.

  • account_sid

    • How to fill: Account SID from Account Info in the Twilio console.
    • Example: ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • auth_token

    • How to fill: Auth Token for that account. Do not leak it or commit it to public repos.
  • from_phone_number

    • How to fill: The Twilio number that sends SMS; must be SMS-enabled and allowed as a sender in your project.
    • Example: +12025550100
  • to_phone_number

    • How to fill: Recipient mobile number.
    • Example: +13800138000

    Both from_phone_number and to_phone_number must be E.164 (with + and country code), e.g. +13800138000, or sending may fail.

  • message

    • How to fill: Plain-text body. Length and segmentation follow carrier and Twilio rules—refer to Twilio docs and errors. When the node delivers codes for a custom channel of Send verification code, include the code from the Actionflow inputs in the message body.
Last updated on