Getting started
Rules Engine Widgets
Paragraph node
5 min
the paragraph element node displays narrative text on the page and can either show fixed copy or dynamically rendered content driven by your workflow data overview the paragraph node renders a block of text in your ui and exposes that same text as an output value that downstream nodes can reuse via {{dataflow\ getbynodeid("\<paragraph id>")}} it is ideal for summaries, explanations, confirmations, and any content that mixes static copy with dynamic placeholders like user names, balances, or api generated text core fields paragraph id system generated identifier that uniquely represents this paragraph instance (for example, id 17657908090002012) use this id when referencing the paragraph’s value in other nodes, such as {{dataflow\ getbynodeid("id 17657908090002012")}} content mode controls how the paragraph content is resolved at runtime options dynamic (use data from previous nodes) – text is treated as a template and can reference variables and node outputs; it will be replaced by data coming from upstream nodes fixed text (always show configured text) – text is static and always shows exactly what you configured, regardless of workflow data paragraph content the actual text displayed in the paragraph, such as building the future of web development with modern, accessible, and beautiful components when dynamic mode is selected, this field supports templates like hi {{user name}}, your balance is ${{account balance}} or {{dataflow\ current() summary}} note optional internal note field (add a note…) for implementation comments, context, or todo items does not affect rendering or data flow; it is only visible in the editor how to configure add the paragraph node drag a paragraph element node into your layout where you want descriptive or summary text to appear confirm or review the auto generated paragraph id for later references choose a content mode select dynamic (use data from previous nodes) when you want the paragraph to reflect current workflow data or templates (e g , ai summaries, api results, or user specific values) select fixed text (always show configured text) when you want copy that never changes at runtime, such as legal disclaimers or static descriptions enter paragraph content for dynamic mode write template based content, e g , hi {{user name}}, your balance is ${{account balance}} reference upstream data with helpers like {{dataflow\ current() summary}} or {{dataflow\ getbynodeid("api node id") description}} for fixed text mode enter plain text that should always be rendered as is building the future of web development with modern, accessible, and beautiful components connect upstream and downstream nodes upstream nodes (api, ai, condition, input, etc ) provide the values used in your templates downstream nodes (email, notification, logging, ai, etc ) can reuse the resolved paragraph text via {{dataflow\ getbynodeid("\<paragraph id>")}} example flows api summary to email api node → paragraph (dynamic) with content {{dataflow\ current() summary}} → email node the paragraph node renders the api’s summary field on the page and exposes that same summary for the email node to include in the message body personalized balance message user/auth node → account api node → paragraph (dynamic) with hi {{user name}}, your balance is ${{account balance}} the user sees a personalized message, and other nodes (e g , logs or notifications) can pull the same text from the paragraph node’s output static marketing copy paragraph (fixed text) with building the future of web development with modern, accessible, and beautiful components the copy always displays the same message and can still be referenced downstream if you need consistent wording in multiple places why the paragraph node is helpful provides a simple way to surface narrative or summary text that stays in sync with your data, without writing custom rendering logic lets you centralize messaging once the paragraph is defined, any downstream node can reuse the exact resolved text with {{dataflow\ getbynodeid("\<id>")}}, reducing duplication and copy drift dynamic mode supports debounced, data driven updates, so content reacts quickly to changes while keeping edits and saves smooth in the editor