Skip to main content

Input Text

Types text into the input field that currently has focus.

Purpose

Types a string into the focused field — a username, a search term, a chat message. The text can embed variables with {{name}}, and you can declare run-time inputs the operator fills in before a run.

It can also clear the field first and press Enter afterwards, so a search or login can be one node instead of three.

When to use it

  • Filling a login form, a search box, or a chat message.
  • Entering per-run data supplied by the operator.
  • Typing a value another node computed or read.

When not to use it

  • To press system keys — Back, Home, Enter alone. Use Key Press.
  • To focus a field. This node types into whatever already has focus; it does not tap anything. Put a Click in front of it.
This node does not focus the field

The device types into whatever is currently focused. If nothing is focused, the text goes nowhere and the node still reports Success. Always tap the field with a Click node immediately before.

Requirements

A focused input field on the device.

How it runs

  1. Resolve the text. Whole-string {{name}} / ${name} placeholders were already replaced with their supplied values by the run pipeline; an expression text is evaluated now.
  2. If Clear before input is on, move the cursor to the end and backspace the existing characters.
  3. Send the resolved text to the device.
  4. If Submit after input is on, press Enter.
  5. Route Success; the output reports the typed length.

Settings

SettingTypeRangeDefaultWhat it does
Textstring or expressionWhat to type. Use {{name}} for a variable, or an {expr} evaluated at run time
Variable Name (list)list≤ 50 entriesDeclared run-time inputs: name, type, optional default
Clear before inputbooleanfalseDelete the field's existing content first
Submit after inputbooleanfalsePress Enter after typing
Wait afterinteger0–60000 msPause after typing

Declared inputs

Each entry in the Variable Name list has:

FieldNotes
nameIdentifier — letters, digits, underscore; cannot start with a digit
typeOne of string, integer, float, boolean, json, array
defaultOptional. Seeds Test Node / Test Flow runs and pre-fills the Run Condition form

Declared names become available to other nodes in the flow too — they are ordinary variables, not private to this node.

Placeholders must resolve

A {{name}} that is not a real variable or declared input is typed literally — the field receives the characters {{name}}. This fails silently and looks like a data bug, so declare before you reference.

Clear is bounded

Clear-before-input backspaces up to a fixed maximum number of characters. It is not a guaranteed "empty the field" for very long existing content.

Ports

PortTaken whenRequired
SuccessThe text was sent (output: the typed length)Yes
FailureText was empty, contained an unsupported character, or the field could not be clearedNo
TimeoutThe input command did not complete in timeNo
CancelledThe run was stopped while typingNo — never followed
FatalThe device is disconnectedNo — never followed

Basic example

Type a search term and submit it:

  • Text: alliance shop
  • Submit after input: on

Realistic example — a login step

Every Input Text is preceded by a Click that focuses its field. Clear before input on the first field means a half-filled form from a previous attempt does not corrupt the value.

Advanced example — per-run data

Declare account_name as an input with type string, then set Text to {{account_name}}.

The same saved flow now logs in as a different account per queue entry, with the operator supplying the value on the Run Condition form — no flow edit, no duplicate flows.

Best practices

  • Always Click the field first. This is the number-one cause of "the text went nowhere".
  • Use the {x} picker to insert a variable rather than typing braces by hand — it inserts a name that actually exists.
  • Turn on Submit after input to send a search or message in one node instead of chaining a Key Press.
  • Use Clear before input on forms that may be re-entered.
  • Verify the result. Follow the typing with a detection node that confirms the expected next screen.
  • Keep text to characters the target keyboard accepts.

Performance notes

  • Typing time scales with string length — the text is sent character by character to the device.
  • Clear before input costs extra time proportional to the existing content, because it backspaces. Skip it where the field is known to be empty.
  • Long strings in a loop are a common hidden cost; prefer short, targeted values.

Memory notes

  • The node holds only the resolved string. Declared inputs live in the run's execution context like any other variable.
  • Values supplied per run are seeded into the context at start; they are not re-read from disk during the run.

Common mistakes

MistakeWhat happensFix
No focused fieldText goes nowhere, node still reports SuccessClick the field immediately before
Undeclared {{name}}The literal text {{name}} is typedDeclare the variable or input first
Emoji or unsupported symbolsExits FailureRestrict to characters the keyboard accepts
Expecting the field to be emptiedClear is bounded to a maximum backspace countClear the field with the app's own control if it is long
Assuming Enter submitted the formSome forms need a button tapVerify with a detection node

Troubleshooting

Nothing is typed but the node reports Success. Nothing had focus. Add a Click on the field directly before this node.

The literal text {{username}} appears in the field. The placeholder does not resolve. Check spelling and that the variable or input is declared.

The node exits Failure on some inputs only. Unsupported characters. Test the exact string; many emulator keyboards reject non-ASCII.

The old value is still there. Clear before input is off, or the previous content exceeded the backspace bound.

FAQ

Are {{name}} and ${name} different? No — both are accepted and identical.

Can I type multi-line text? Submit after input sends Enter. For multi-line content, chain several nodes.

Do declared inputs belong only to this node? No. They are ordinary flow variables usable anywhere in the flow.

Does the default value apply to real runs? It seeds Test runs and pre-fills the Run Condition form; a value supplied for a real run overrides it.