> For the complete documentation index, see [llms.txt](https://docs.flowstem.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flowstem.app/commands/basic-utilities.md).

# Basic utilities

Basic utilities coordinate timing, validate results, and make a workflow easier to understand.

## Wait

Pauses the workflow for a fixed duration.

* **Configure:** Duration.
* **Use it for:** Short delays when a website has no reliable element or page state to wait for.
* **Example:** Wait one second after opening an animated menu.

Prefer **Wait Element**, **Wait for URL**, or **Wait for Page Load** when a specific page state can be detected.

## Wait Element

Waits until an element exists, becomes visible, or becomes hidden.

* **Configure:** Element selector and condition: exists, visible, or hidden.
* **Use it for:** Dynamic content, loading indicators, dialogs, and delayed results.
* **Example:** Wait until `.results` is visible before extracting data.

## Assert

Checks a value and fails the command when the condition is not satisfied.

* **Configure:** Left value, operator, and right value when required.
* **Operators:** Equals, does not equal, contains, does not contain, or exists.
* **Example:** Assert that `$http_status` equals `200`.

By default a failed assertion stops the workflow. Enable **Continue on failure** when the failure should be logged without stopping later commands.

## Log Message

Writes a custom message to the run log.

* **Configure:** Message.
* **Variables:** Insert saved values into the message.
* **Example:** Log `Processing customer $customer_name` inside a loop.

## Show Alert

Displays a Flowstem message over the automation page and waits for confirmation.

* **Configure:** Message and screen position: upper, middle, or lower.
* **Use it for:** Human checkpoints in an otherwise automated workflow.
* **Example:** Ask the user to review a prepared form before submission.

The workflow remains paused until the alert is confirmed or the command times out.

## Comment

Adds a non-executing note to the workflow.

* **Configure:** Comment text.
* **Use it for:** Explaining a section, recording assumptions, or separating stages.
* **Example:** Add `The following commands process each search result` above a loop.

Comments do not affect runtime and do not create log entries for page activity.
