> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexwash.com/llms.txt
> Use this file to discover all available pages before exploring further.

# No Controller Integration

> Run FlexWash even without a controller integration. Keep your existing signaling workflow and gain a modern POS, CRM, and analytics layer on top of it.

FlexWash works even when we don't integrate directly with your wash controller. You keep using whatever method already sends washes to the tunnel, and FlexWash handles checkout, memberships, and reporting alongside it.

## How it works

Without a controller integration, FlexWash does not send washes to the
controller automatically. The [Wash Queue](/operations/transactions/wash-queue) on the
loading screen is optional and informational only. It shows the loader which
package each car is paying for, but the loader is responsible for actually
firing the wash on the controller.

## Signaling the wash

You need an independent mechanism to tell the controller which package to run.
Common approaches we see in the field:

* **Push Button Station (PBS)**: A physical button panel wired to the
  controller. The loader presses the button matching the customer's package. This
  is the most reliable option and what we recommend for any non-integrated site.
* **Driver-side window markings**: The CSA writes a short code for the package
  on the driver-side window with a washable marker. The loader reads the code and
  fires the matching wash.
* **Two-way radio**: The CSA radios the package to the loader, who fires the
  matching wash.

Use whatever signaling method fits your operation.

<Info>
  See [Controller Integrations](/technical/controllers/controller-integrations) for the list
  of controllers we integrate with directly.
</Info>
