# Run a system flow without a widget

You can update visitor data when someone views a page, without showing a question, form, or widget.

Available on the Grow, Scale, and Pro plans.

Use a system flow to remember what visitors are interested in without interrupting them. It runs on page views, so you can update their data without asking a question or displaying a form.

You'll need project edit and publish access, plus the snippet installed on your website. Put page or audience conditions before actions that should run only for certain visitors. Choose actions that are safe to repeat when someone returns.

## Pick the page and what you'd like to remember

Choose a real page on your website that tells you something useful about a visitor's interests. For example, [WorkForge](https://workforge.rightmessage.com) could remember visits to its [software teams page](https://workforge.rightmessage.com/solutions/software-teams.html) for seven days.

A variable keeps that interest in the visitor's browser so you can use it later. It doesn't identify the visitor or update your email platform. If you need to update a contact's field or tag instead, use a supported provider action with a connected integration and an identified visitor.

## Create the system flow

1. Open **Flows**, then choose **New flow**.
2. Choose **System flow**.
3. Open **Settings** and enter a useful **Name**.
4. Open **Build**.
5. Choose **Add the first step**, then **Condition**.
6. Set the condition to match the current page's path, such as `/solutions/software-teams.html` for the WorkForge example.

![WorkForge referral capture flow Settings with System Flow enabled and no attached widget](https://rightmessage.com/help/screens/verify-flows-system-settings.light.webp)

The screenshot shows a system flow for referral capture. Your flow also has **System Flow** enabled and doesn't need an attached widget.

## Save the interest on the matching path

1. On the condition's **Yes** path, choose **+**, then **Set Variable**.
2. Enter `software_interest` in **Variable Name:**.
3. Enter `yes` in **Variable Value:**.
4. Set **Expires:** to **In...**, then enter `7` and choose **Days**.
5. Choose **Done**.
6. Leave the **No** path empty if other pages shouldn't run an action.

Keep the assignment inside **Yes**, not after the branches rejoin. That way, only visitors on the matching page reach it. Each time they reach the assignment, its seven-day lifetime starts again.

System flows also offer **Set Score** and **Set Segment**. **Set Score** adds or subtracts points rather than replacing a total. For a page-visit counter you want to keep across visits, use a variable calculation and decide when it may increment. See [flow variables](https://rightmessage.com/help/using-variables-in-flows).

**Set Field**, **Add Tag**, and **Remove Tag** update your connected provider when it supports the action. You can also use **Webhook**, **Redirect**, or **Code**, and supported connected app embeds can render directly into the page. A webhook needs the feature available on your plan and a destination you control.

Running without a widget doesn't make every action invisible. A redirect changes the page, and code or webhooks can affect other systems.

## Convert an existing flow if you don't need its widget

If you want to keep the questions or offers visitors already see, create a separate system flow instead. Each flow can then have its own conditions.

To convert a flow you no longer need to display:

1. Remove its questions, forms, offers, and messages. These display steps prevent conversion.
2. Detach every attached widget. Disabling a widget isn't enough.
3. Open **Settings**.
4. Turn on **System Flow**.

The switch's explanation tells you whether display steps, attached widgets, or both are blocking the change. Connected app embeds are allowed because they render into the website itself.

## Check both matching and nonmatching pages

Choose **Preview on your site** and use the debugger to check the flow on your real website.

1. Visit the matching page and inspect the saved variable, assigned segment, or destination update.
2. Visit a page that doesn't match. Check that it doesn't run the action.
3. Reload the matching page to check what happens when the flow runs again.
4. Review the whole project draft and [publish your changes](https://rightmessage.com/help/publishing-your-changes).

When the intended pages update the visitor's data and other pages leave it alone, it's working. A published system flow runs without a widget's **Enabled** switch. If you need to stop it later, follow [pause a flow](https://rightmessage.com/help/how-to-unpublish-or-draft-a-flow) to stop automatic execution without deleting it.
