A workflow is a trigger followed by a chain of actions. The trigger decides when a contact enters; the actions decide what happens to them. Each action is a node you drop on the canvas and wire to the next one, and IcloneU ships a full palette of them — messaging, flow control, contact updates, human handoff and a couple of advanced calls. This guide is the field reference: what every action node does, the exact options it exposes, and the handful of caveats worth knowing before you build.
Every action in this guide is a node inside Automations ▸ Workflows. Workflows is the one Automations tab that's fully live, and its entire node palette is available to you — nothing below is hidden behind a switch, with two clearly-marked exceptions (Integration and Issue Code) that need a beta feature before they can do anything. Add a trigger to your workflow first, then chain the actions below onto it.
How actions fit together
A workflow always starts with a trigger; everything after it is an action — a node you drop on the canvas. You connect each node's output port to the next node, and when the trigger fires the contact travels down the wires from one action to the next. The rest of this guide walks the action nodes grouped the way the node picker groups them: messaging, flow control, contact updates, human handoff and advanced.
Some actions simply do their thing and continue. Others branch: Condition sends the contact out Matches conditions or Doesn't match, External Request out Success or Error, AI Agent out Completed or Abandoned. And many fields accept {{variables}} — a contact's name, a value collected earlier in the flow, or a run variable like {{rv_name}} produced by a step above.
The Comment node is a canvas sticky note — A note for your team — never sent to users and never part of the run. Use it to annotate a flow for teammates. It has no ports, you can't wire it to anything, and the engine skips it entirely, so it never sends a message or changes a contact.
Send messages
The Send Message node is the workhorse of most workflows — it delivers one or more chat messages to the contact on the same channel the trigger fired on. Inside it you build a stack of elements: click New item to add one, drag the handle to reorder them, and they're sent in order. A single node can mix several parts (say, a line of text, an image, then another line).
The element types you can add:
| Element | What it sends |
|---|---|
| Text | A message with variables, emoji and an optional bold title; can carry buttons. |
| Image | An uploaded picture, with an optional title and subtitle; can carry buttons. |
| Video | An uploaded video clip; can carry buttons. |
| Audio | An uploaded audio file. |
| File | An uploaded document. |
| Delay | A short 1–30 second pause between messages, optionally showing a typing indicator. |
| WhatsApp Template | An approved WhatsApp message template with its variables mapped (WhatsApp only). |
| List Message | A WhatsApp interactive list of selectable options (WhatsApp only). |
WhatsApp Template and List Message are WhatsApp-only — they appear in the New item menu only when the workflow's trigger runs on WhatsApp; every other element works on any channel. And the inline Delay element (a 1–30s pause inside a Send Message) is not the same as the Delay and Schedule node in the next section — that node pauses the whole flow, this one just spaces out messages.
Text, image and video elements can carry tappable buttons. Open a button to set its Button title and Button type. Three types are available:
| Button | What a tap does |
|---|---|
| Open website | Opens a Website URL, with a Webview display size (browser, small, medium or full screen). |
| Call number | Dials a Telephone number from the contact's phone. |
| Continue in workflow | Routes the tap to whatever you wire to that button's own output port on the canvas. |
When a Send Message node holds two or more elements, a Show elements in carousel switch can send them as one swipeable card stack. Alongside Send Message, the Comment Reply node posts a public reply to the Facebook or Instagram comment that started the workflow; it uses the same message editor, so you can drop in variables and attachments, and the character limit follows the platform.
Control the flow
Condition splits the flow in two based on rules about the contact or the message. Choose whether all or any of your rules must match, then add rules — each is a field (Tag, Email, Platform, Engagement Score, a custom field, a value from an earlier step, and more), an operator (is, is not, contains, >, <, exists, doesn't exist…) and a value. The node has two outputs, Matches conditions and Doesn't match, and the contact follows whichever one they satisfy.
Delay and Schedule pauses the flow. Pick Wait a duration — an amount plus seconds, minutes, hours or days, up to 365 days — or Fire at a date, either a Specific date or a date read From a contact field (for example {{cf_appointment}}), with an optional offset before or after. You can also gate when it resumes with Only continue during: Anytime, Use reply timing (your account's reply schedule and timezone) or Custom hours.
Randomizer sends contacts down 2 to 10 weighted paths whose percentages must add up to 100%. Turn Random path every time on for an independent draw on every visit (contests, lotteries) or leave it off to keep each contact on the same branch (A/B testing).
Go To Automation jumps the contact into another automation's start node — handy for reusing a shared sub-flow. It's a terminal action: the current flow stops there, so anything wired after it never runs.
Because Go To Automation is terminal, put it last on its branch — it has no output port and nothing downstream will fire. If you point it at the automation it already lives in, IcloneU warns you: You selected the current automation — this will create an infinite loop unless a condition breaks out.
Update the contact
These actions write straight to the contact's record — no message is sent to the contact.
- Set Tag — add or remove one tag on the contact. Pick the Operation (Add tag or Remove tag) and choose the tag from your account's tags.
- Set Custom Field — set the value of a lead field. The Value box accepts {{variables}}, and the new value is available to later nodes right away as {{cf_field}}.
- Set Opt-in — Opt the contact in to automated broadcasts and sequences on this channel.
- Set Opt-out — Opt the contact out of automated broadcasts and sequences on this channel. Their direct replies are unaffected.
Archive Contact does exactly what its description says: Archive the contact: hide it from your contact list and exclude it from automated broadcasts and sequences. Conversation history is kept and the contact can be restored.
Archive Contact is a soft-archive, not a permanent deletion. The person drops out of your contact list and out of automated sends, but their whole conversation history stays and you can restore them at any time from their profile. If you need to permanently remove personal data, that's the separate Erase personal data action on the contact profile, not this node.
Hand to a human
When the AI should step back, these actions move the conversation into your team's inbox — and one of them just pings the team without changing the conversation at all.
- Hand off to a human — Hands the conversation to a human agent: it joins the agent queue and the AI stops responding. Wait messages and auto-return to AI still apply.
- Close & return to AI — Returns the conversation to the AI, which resumes responding — regardless of the current handover state.
- Assign / transfer to agent — Assigns or transfers the conversation to a specific agent, or auto-assigns by round-robin. Pick a name under Assign to, or leave it on Auto-assign (round-robin).
Notify Admin alerts your team without touching the conversation or the contact. Write the Notification message (variables like {{contact.name}} are welcome), choose whether it reaches the Whole team or Only the automation owner, and optionally Include a link to the conversation.
Notify Admin posts an In-app alert to your team — that's the channel to rely on for time-sensitive nudges. An Email delivery toggle is present in the node too, but treat the in-app alert as the dependable one.
Advanced actions
AI Agent hands the live conversation to a Clone you choose, with a Goal and an optional list of Fields to collect. The Clone converses until it reaches the goal or the contact drops off, up to a Max iterations cap (1–50). Each collected field becomes available downstream as {{rv_field_key}} and is saved to the contact on success, and the node branches Completed or Abandoned. You'll need at least one Clone on the account — create one in Account Settings if the picker is empty.
External Request makes an HTTP call to your own server or any public API: a method (GET, POST, PUT, PATCH or DELETE), a URL, query parameters, headers and a body, all variable-aware. Under Response mappings you pull values out of the JSON reply with a JSONPath and save each under a Variable name that later nodes read as {{rv_name}}. The node branches Success or Error, so you can react when the call fails. It's self-contained — it doesn't depend on any connected service.
Actions that need a beta feature
Two action nodes sit in everyone's palette but can't do their job unless your account is in the matching beta. You can drop them on the canvas, but they'll have nothing to act on and won't do anything when the workflow runs.
Integration needs a connection, which you create on the Connectors tab, and Issue Code needs a pool of codes, which you set up on the Code Pools tab. Both tabs are still in beta, so for most accounts these two nodes just show an empty picker — No connections configured. Go to the Connectors page to set one up. and No code pools yet — create one first. — and stay inert. If you're not in the beta, skip them.
- Integration — Run an action on a connected service (Google Sheets, Klaviyo, etc.). Once you have a connection, you choose an action and fill its parameters; without one, the picker is empty.
- Issue Code — Hand out one unique code from a finite pool, then branch to "exhausted" once empty. It branches Issued or Exhausted and exposes the code as {{rv_issued_code}} — but only once a code pool exists.
Frequently asked
Drag from a node's output port to the next node. The contact follows the wires down from the trigger. Nodes like Condition, Randomizer, External Request, AI Agent and Issue Code have more than one port, so you can send each outcome down a different branch.
WhatsApp Template and List Message. They appear in the Send Message New item menu only when the workflow's trigger runs on WhatsApp. Text, image, video, audio, file and the inline delay work on every channel.
No. Archive Contact is a reversible soft-archive — it hides the contact from your list and excludes them from automated broadcasts and sequences, but their conversation history is kept and you can restore them from their profile. Permanent removal is the separate Erase personal data action on the contact profile.
Three: Open website (opens a URL), Call number (dials a phone number) and Continue in workflow (routes the tap to whatever you wire to that button's output port). You set each button's Button title and Button type in the button editor. Buttons attach to text, image and video elements.
Those two nodes rely on features that are still in beta — Integration needs a connection from the Connectors tab and Issue Code needs a pool from the Code Pools tab. Until your account has access, the pickers stay empty and the nodes do nothing when the workflow runs.
Nothing — it's a sticky note for your team. The Comment node has no ports and the engine skips it, so it never sends anything or affects the run. It's purely there to annotate the canvas.
Notify Admin posts an in-app alert to your team, which is the channel to count on. There's also an Email delivery toggle, but rely on the in-app alert for anything time-sensitive.
Last updated July 9, 2026 · Automations