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.
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
- 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. - If Clear before input is on, move the cursor to the end and backspace the existing characters.
- Send the resolved text to the device.
- If Submit after input is on, press Enter.
- Route Success; the output reports the typed length.
Settings
| Setting | Type | Range | Default | What it does |
|---|---|---|---|---|
| Text | string or expression | — | — | What to type. Use {{name}} for a variable, or an {expr} evaluated at run time |
| Variable Name (list) | list | ≤ 50 entries | — | Declared run-time inputs: name, type, optional default |
| Clear before input | boolean | — | false | Delete the field's existing content first |
| Submit after input | boolean | — | false | Press Enter after typing |
| Wait after | integer | 0–60000 ms | — | Pause after typing |
Declared inputs
Each entry in the Variable Name list has:
| Field | Notes |
|---|---|
name | Identifier — letters, digits, underscore; cannot start with a digit |
type | One of string, integer, float, boolean, json, array |
default | Optional. 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
| Port | Taken when | Required |
|---|---|---|
| Success | The text was sent (output: the typed length) | Yes |
| Failure | Text was empty, contained an unsupported character, or the field could not be cleared | No |
| Timeout | The input command did not complete in time | No |
| Cancelled | The run was stopped while typing | No — never followed |
| Fatal | The device is disconnected | No — 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
| Mistake | What happens | Fix |
|---|---|---|
| No focused field | Text goes nowhere, node still reports Success | Click the field immediately before |
Undeclared {{name}} | The literal text {{name}} is typed | Declare the variable or input first |
| Emoji or unsupported symbols | Exits Failure | Restrict to characters the keyboard accepts |
| Expecting the field to be emptied | Clear is bounded to a maximum backspace count | Clear the field with the app's own control if it is long |
| Assuming Enter submitted the form | Some forms need a button tap | Verify 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.
Related nodes
- Click — focus the field first
- Key Press — Enter, Back and other system keys
- Variable — compute the value to type
- Find Image — verify the result
Related pages
- Variables and Memory — declaring run-time inputs