Skip to main content
The Input Text node types text into form fields, text areas, and other editable elements.

Parameters

Keystroke Tokens

The text field can contain keystroke tokens, which are pressed as keys instead of being typed as characters. This lets one node mix typing with keyboard navigation, for example tabbing between fields or pressing Escape to close a dialog. A node whose text is only keystroke tokens still clicks its target first, unless omit_focus is set. Both forms are useful: keep the selector when the keys must land in a specific field (see Clearing a Stubborn Field), and set omit_focus when focus is already where you want it and clicking again would be wrong (see Typing Into the Focused Field). A {{ctrl+c}} node is the case to watch, since clicking the element first can discard the selection you meant to copy.
Keystroke tokens are not variables, even though both use {{ }}. {{tab}} presses the Tab key, while {{context.inputs.username}} is replaced with a value. Only the tokens listed above are treated as keys. Any other {{ ... }} is handled as a variable or JSONata expression, exactly as it is anywhere else in this field.

Examples

Basic Text Input

Type into a text field:

Using Input Variables

Type dynamic values from workflow inputs:

Submit After Input

Type and press Enter to submit:

Append Text Without Clearing

Add text to existing content:

Using LLM_VISION

Type into a field identified by AI:

Moving Between Fields

Fill two fields in one node by tabbing between them:

Clearing a Stubborn Field

Some fields ignore the normal clear, for example because they re-populate themselves or hold a formatted value. Select the contents and delete them first:

Typing Into the Focused Field

When a preceding action already left focus where you want it, or clicking again would be wrong, omit_focus types into the focused element instead of resolving a selector and clicking it:

Slowing Down Typing

When an application drops or reorders characters because they arrive faster than it can process them, which usually shows up as a field holding only part of the value, slow the keystrokes down:
Set this only on the nodes that need it: at 100 a 400-character value takes about 40 seconds, where the default takes about two.

Entering Long Text

For a long body of text, pasting is far faster than typing it out character by character:

Data Transformation

Transform data before typing using JSONata:
This converts a date from YYYY-MM-DD format to MM/DD/YYYY format.

Notes

  • By default, the input field is cleared before typing new text
  • Use do_not_clear: true when you need to append to existing content
  • The submit_after_input option is useful for search fields that trigger on Enter
  • You can use JSONata expressions for data transformation
  • Pasting replaces the contents of the system clipboard. If the same workflow reads {{clipboard}} with an ExtractDatamodel node, extract the value before any node that pastes
  • paste_via_clipboard is ignored on a node whose text contains a keystroke token, so the text is typed instead. Put the paste in its own node if you need both
  • When the text begins with a keystroke token, the built-in clear is skipped automatically, so {{ctrl+a}}{{backspace}} starts from the field’s existing contents
  • typing_delay_ms, omit_focus and paste_via_clipboard require native actions, which workflows use by default. On a STATIC node in a workflow created with use_native_actions: false, they are ignored
  • For prepending text or custom handling of existing input content, first extract the current value using an ExtractDatamodel node, then combine it with your new text in the Input Text node (e.g., "{{context.inputs.prefix}}{{context.existing_value}}").