Skip to main content

System nodes

Use built-in TaskJuice nodes for workflow logic, AI, HTTP requests, transformations, and reusable workflows.

System nodes are built into TaskJuice. They do not require choosing a third-party app.

User-facing system nodes

NodeCategoryUse it for
AI GenerateAIGenerate text from a prompt and selected model.
AI ExtractAIExtract structured JSON from text using a schema.
BranchControl flowRoute to two or more paths using conditions.
DelayControl flowPause for a fixed duration before continuing.
HTTP RequestData and developerCall an arbitrary HTTP API with optional auth and retries.
LoopControl flowRepeat by count, array item, or condition.
ParallelControl flowRun multiple branches concurrently and merge their outputs.
Call WorkflowReusableInvoke another published workflow.
RespondData and developerAnswer the caller of a Respond-mode webhook with an authored HTTP response.
SortData and developerOrder a batch by one or more fields, with an optional Top-N.
SwitchControl flowRoute by matching one selector value against cases.
TransformData and developerApply ordered data transformations.
Voice AgentAIAnswer a phone call with a realtime voice model (details).
Only implemented nodes appear in the Add Node panel

Disabled, incomplete, or future-facing catalog rows are intentionally hidden from the user-facing node picker.

AI Generate

Use AI Generate to produce text from a prompt. Configure the model, prompt, and any context values the prompt needs.

Best for summaries, drafts, classifications that do not need strict JSON output, and generated user-facing copy.

AI Extract

Use AI Extract when the workflow needs structured data from unstructured text. Configure the source text and expected schema.

Best for extracting fields from emails, tickets, notes, uploaded text, or app records.

Remember the conversation (AI Agent memory)

An AI Agent can remember what each customer said in earlier runs. On the agent, click + on the Memory port to add a Memory sub-node. Open it and turn on Remember the conversation.

Each customer gets their own memory, matched by a trigger field that is different for each customer, like their phone number. For a known messaging trigger, like Twilio Incoming SMS, that field is picked for you, and the panel reads Remembering per: Sender phone number. Click Change to pick a different trigger field.

For any other trigger, pick the field yourself, like the customer's phone number or email. Pick a field the sender can't fake, like the phone number on a text, because anyone who types in someone else's email could see that person's past chats. You can't save or publish until you do. A fixed value, like 'shared', is refused, because it would put every customer in one conversation.

The agent reads back up to the last 20 messages, from the customer and the agent. It forgets each message 90 days after it was sent.

Two limits to know:

  • The agent only remembers messages it handled itself, so a first text sent by a plain Send SMS step or another workflow, or a reply your staff send by hand, is not in its memory. If your workflow opens the conversation, describe that opening message in the agent's instructions (its System Prompt), for example: "You texted new leads asking if they want a quote."
  • Deleting and re-adding the agent, or duplicating the workflow, starts with a fresh memory.

Branch

Use Branch to route to two or more paths using conditions. Each condition should be clear enough that another builder can understand why a record enters that path.

Delay

Use Delay to pause for a fixed duration. Configure the duration and unit in the node panel.

HTTP Request

Use HTTP Request to call an API directly from a workflow. Configure method, URL, headers, query parameters, body, timeout, and retry behavior.

To upload a file as the entire request body (a signed upload URL, for example), set Body Encoding to binary and Body to { "file": "{{ $steps.<step>.data.file }}" }.

Use a dedicated app action instead when TaskJuice already provides one for that app. App actions are easier to maintain and usually handle authentication more safely.

Loop

Use Loop when a workflow should repeat over items or until a condition changes. Keep loop bodies focused and test with small sample inputs before publishing.

Parallel

Use Parallel to run independent branches at the same time. Configure branch labels and merge behavior so downstream nodes receive predictable output.

Call Workflow

Use Call Workflow to invoke another published workflow. This is best for shared business processes that multiple workflows need to reuse.

Respond

Use Respond to answer the HTTP caller of a webhook trigger whose Response mode is Respond node. Configure the status code, the content type (json, text, xml, or empty), the body — the node's mapped input for JSON, or a template for text and XML — and any allow-listed headers. The response is sent the moment the node runs; nodes after it keep running in the background. Outside a synchronous request (a node test, Run now, or a workflow on Immediate ACK) the node succeeds but sends nothing and says so in its output. The webhook trigger reference lists every rule: the status ranges, the header allow-list, the 256 KiB body bound, and which nodes may run before a Respond node.

Sort

Use Sort to put a batch of items in a deterministic order, such as "newest first", "highest score first, then alphabetical", or "top 10 by amount". Sort works on the items array a batch trigger, a merge of several steps, an RSS or polling cycle, or a Code node produces. It reorders the items and, optionally, keeps only the first N.

Order at the source when you can

If the upstream service can return data already ordered, prefer that, for example a SQL ORDER BY, a SOQL ORDER BY, or an API sort parameter. Sort is for in-memory collections that arrive in no particular order: webhook array batches, merged multi-step output, RSS or polling cycles, and Code node output.

Add one or more sort keys in the node panel. The first key is primary, and each key after it breaks the previous keys' ties, so "by status, then by date descending" is two keys in that order. Drag a key, or use the keyboard, to change its priority. Each key has its own ascending or descending direction, and each key is a dot-path into every item, such as score, createdAt, or attributes.priority. A sort key reads a field on each item in the batch; it is not a workflow expression.

Sort gives you three guarantees that make output reproducible across runs:

  • A documented order for every value. Across different value types, items order by a fixed rank: true and false first, then numbers, then text, then objects and arrays. Within a type, the natural order applies. There is never an engine-dependent surprise.
  • Missing and null values always sort last, in both ascending and descending order. A missing field, an explicit null, and a not-a-number value are treated the same way, so incomplete records sink to the bottom rather than scattering through the list. Descending order does not pull them to the top.
  • A stable order on ties. When two items have the same values for every key, they keep their original input order, so re-running the same workflow produces the same result.

To keep only the best results, set Keep top N: after sorting, Sort keeps the first N items and drops the rest. Leave it blank to keep every item. The test result panel shows how many items came in, how many went out, and how many the limit dropped.

Switch

Use Switch when one selector value should choose one of several paths. Add a default path for values you do not recognize.

Transform

Use Transform to reshape data before it reaches another node. Prefer explicit transformations with clear target fields over hiding complex logic in one expression.

Was this helpful?