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

# Use the tray app

> Read the ERP Sync agent's status from the Windows notification area, and pause, resume or trigger syncing.

The tray app is the ERP Sync agent's window on the machine it runs on. It shows what the Windows service is doing and
lets you control it. It does not sync anything itself: closing it does not stop the service, and syncing continues
in the background.

## Start the tray app

The tray app starts by itself for everyone who signs in to the agent computer. Setup arranges this. The service
also starts it for everyone who is signed in after an installation or an update. Its icon appears in the
notification area next to the clock. If you do not see it, click the **Show hidden icons** arrow.

To start it by hand, run `Omnilinker.ErpSync.Tray.exe` from the `tray` subfolder of the install folder, by default:

```text theme={null}
C:\Program Files\Omnilinker\ErpSync\current\tray
```

Only one copy can run at a time. Starting a second one shows "Omnilinker ERP Sync is already running in the system
tray."

To close it, right-click the icon and select **Exit**. It starts again at your next sign-in. To stop syncing, stop
the Windows service instead: `Stop-Service OmnilinkerErpSyncService` in PowerShell as Administrator.

## What you can do from the tray app

Everyone signed in to the computer can see the status, the logs and the settings (without the password or API key),
and can use **Sync Now**, **Resume Sync**, **Trigger Hash Check**, **Resume Hash Check**, **Test Now** in the status
window, the **Test ERP Connection** suggested action, **Mark All Read** and **Refresh Reference Data**.

These actions change the agent, and need a member of the local group **Omnilinker ERP Sync Operators** or an
administrator running the tray app elevated:

* the [setup wizard](/erp/setup-wizard), and **Validate**, **Refresh**, **Load**, **Test Connection** and **Save** in
  **Settings...**,
* **Enable Change Tracking** and **Disable Change Tracking**,
* **Pause Sync**, **Pause Hash Check** and **Cancel Hash Check**,
* **Clear All** in the status window's notifications.

For anyone else they fail with "Only an administrator of this PC can do that." See
[Who can change the agent](/erp/install-agent#who-can-change-the-agent).

## Icon colors

The icon is a colored circle. Its color shows the state the service last reported:

| Color          | State    | Meaning                                                             |
| -------------- | -------- | ------------------------------------------------------------------- |
| Green          | Idle     | The agent is ready and waiting for the next cycle.                  |
| Blue, animated | Syncing  | A sync is running.                                                  |
| Amber          | Paused   | You paused syncing.                                                 |
| Amber          | Starting | The service is starting, or the tray app is still connecting to it. |
| Red            | Error    | The last cycle failed. Hover over the icon to see the error.        |
| Gray           | Stopping | The service is shutting down.                                       |

A red badge with a number means that many events failed to send to Omnilinker after all retries. Above 9 it shows
`9+`.

The color does not tell you whether the tray app can reach the service. Hover over the icon: the tooltip starts with
**Omnilinker ERP Sync -** followed by **Ready**, **Waiting**, **Disconnected**, **Paused**, **Error:** and the error
text, **Connecting...**, **Starting...** or **Stopping...**. **Disconnected** means the tray app cannot reach the
service. When there is work in the queue, the tooltip also shows `Queue: <n> pending`, and the last finished
operation.

## Tray menu

Right-click the icon to open the menu. From top to bottom:

| Item                                                               | What it does                                                                                                                                                                                                                                 |
| ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status line                                                        | The same text as the tooltip. Not clickable.                                                                                                                                                                                                 |
| **Queue: Empty** or **Queue: `<n>` pending \| `<n>` failed**       | Events waiting to be sent to Omnilinker. Not clickable.                                                                                                                                                                                      |
| **Suggested Actions:**                                             | Shown only when there is an error. Offers up to three fixes, such as **Test ERP Connection**, **Test Cloud Connection**, **Check Settings**, **Retry Now**, **View Logs**, **Check Network**, **Contact Support** or **View Error Details**. |
| **Open Dashboard**                                                 | Opens **ERP Integration** > **Dashboard** in Omnilinker in your browser.                                                                                                                                                                     |
| **My Connection**                                                  | Opens this agent's connection in Omnilinker. Available once the agent is configured.                                                                                                                                                         |
| **Show Status...**                                                 | Opens the [Status window](#status-window).                                                                                                                                                                                                   |
| **Sync Now**                                                       | Asks the agent to look for changes now. Available when the agent is idle or paused.                                                                                                                                                          |
| **Pause Sync**                                                     | Pauses syncing. Available while a sync is running.                                                                                                                                                                                           |
| **Resume Sync**                                                    | Resumes syncing. Available while paused.                                                                                                                                                                                                     |
| Hash check line                                                    | For example **Hash Check: Disabled**, **Hash Check: Pending first run**, **Hash Check: 5m ago (no changes)** or **Hash Check: Running (1,200/5,000 - 24%)**. Not clickable.                                                                  |
| **Trigger Hash Check**                                             | Starts a hash check now. Available when hash checks are enabled and none is running.                                                                                                                                                         |
| **Progress Details**                                               | Shown while a hash check runs: products and brands checked, speed and estimated time left.                                                                                                                                                   |
| **Pause Hash Check**, **Resume Hash Check**, **Cancel Hash Check** | Control a running hash check without pausing the rest of the agent.                                                                                                                                                                          |
| **View Logs**                                                      | Opens the [Log viewer](#log-viewer).                                                                                                                                                                                                         |
| **Settings...**                                                    | Opens the [Settings window](#settings-window).                                                                                                                                                                                               |
| **Exit**                                                           | Closes the tray app. The service keeps running.                                                                                                                                                                                              |

Items that do not apply to the current state are grayed out.

A hash check compares the ERP data with what the agent last sent, to find changes. It is how the agent detects
changes unless WFM\_INT change tracking is enabled. See [Wapro](/erp/providers/wapro).

### Sync now, pause and resume

* **Sync Now** in hash scan mode starts a hash check. The agent picks up the request at its next polling cycle,
  within 60 seconds with the default `PollingIntervalSeconds`.
* **Pause Sync** stops the agent from detecting new changes until you select **Resume Sync**. **Sync Now** does not
  work while paused. Resume first.
* A pause is not kept when the service restarts. After a restart the agent syncs again.

## Notifications

The tray app shows Windows notifications when the state changes: **Sync Started**, **Sync Complete**,
**Service Ready**, **Sync Paused** and **Sync Error**. It also shows **Service Disconnected** ("Lost connection to
ERP Sync service.") when it loses contact with the service, and a message for the result of commands such as
**Trigger Hash Check**.

To silence them, turn off notifications for the app in Windows **Settings** > **System** > **Notifications**.

## Status window

Select **Show Status...** to open **Omnilinker ERP Sync - Status**. It refreshes every 2 seconds.

The header shows **Sync Status** with a **Cloud** and an **ERP** indicator. Below it are two tabs.

**Overview** shows:

* **Current Operations** and **Recently Completed**: what the agent is doing and has just done.
* **Queue Health**: how many events are waiting and whether the queue is growing.
* **System Health**: the state of each component. Use **Test Now** to check one again.
* **Notifications**: messages from the agent. Use **Mark All Read** or **Clear All**.
* **Entity Statistics**: per entity type, the **Total**, **Synced**, **Pending** and **Failed** counts.
* **Outbox Queue**: **Pending**, **Sent**, **Failed** and **Retrying** events.
* **Schedule** (**Last sync**, **Next sync**), **Hash Check** (**Last check**, **Changes found**), the last
  **Error**, and the agent **Version**.

**Performance** shows the queue depth, the **Error Rate** over the last 24 hours, current activity with throughput
and time left, **Performance Trends (Last 24 Hours)** (**Throughput**, **Avg Duration**, **Success Rate**), the
health of **ERP Connection**, **Cloud API** and **Outbox**, and **Recent Activity (Last 5 Operations)**.

The buttons at the bottom are **Pause** or **Resume**, **Sync Now**, **Open Dashboard** and **Close**.

For how these numbers relate to what you see in Omnilinker, see [Monitoring](/erp/monitoring).

## Settings window

Select **Settings...** to open **Omnilinker ERP Sync - Settings**. It has the same fields as the
[setup wizard](/erp/setup-wizard), plus a few more.

**Cloud Connection**

* **API URL** and **API Key**. The saved key is shown masked as `Current key: abcd...wxyz`. To change it, enter the
  new key and click **Validate**.
* **ERP Connection**: the connection this agent serves. Click **Refresh** to reload the list from Omnilinker.

**Database Connection**

* **Server / Host**, **Database Name**, **Username (leave empty for Windows Auth)** and **Password**. If a password
  is saved, leave **Password** empty to keep it.
* **Company ID (optional, for multi-company databases)**: restricts change tracking to one ERP company. Click
  **Load** to list the companies in the database, or type the numeric ID. Leave it empty for a single-company
  database.
* **Advanced Connection Options**: **Encrypt connection** and **Trust server certificate**.
* **Test Connection** checks the database settings from the service.

**ERP Change Tracking**

Enables or disables WFM\_INT change tracking in the ERP, with **Enable Change Tracking**, **Disable Change
Tracking** and **Refresh Reference Data**. Enabling it requires ticking the consent box first. See
[Wapro](/erp/providers/wapro) before you change it.

Click **Save** to apply the changes. **Save** is available once the API key is validated or already saved and a
connection is selected. The service picks up the new settings without a restart. **Cancel** closes the window
without saving.

## Log viewer

Select **View Logs** to open **Omnilinker ERP Sync - Logs**. **Sync Logs** lists the last 200 sync log entries from
the service, with the **Time**, **Date**, **Level**, **Category**, **Message** and **Entity** of each. Select an
entry to see its details.

* **Show:** filters the list: **All**, **Info+**, **Warning+** or **Errors Only**.
* **Refresh** reloads the entries from the service.
* **Clear Display** empties the list. It does not delete any logs.
* **Open Log Folder** opens the service's log folder, `%ProgramData%\Omnilinker\ErpSync\logs`, in Explorer. Everyone
  signed in can read the files there. See [Local files](/erp/configuration-reference#local-files).

For help with specific errors, see [Troubleshooting](/erp/troubleshooting).
