UiPath Activities Overview
Install the RPA Watch activity package in UiPath Studio and send execution reports directly from your workflows.
The RPAWatch.UiPath.Activities package adds three custom activities to UiPath Studio that let your workflows post execution reports — status, duration, per-record results, and optional file attachments — to the RPA Watch Ingest API. The package is published on NuGet and works with UiPath Studio 2021.10 or later running on the Windows runtime.
If you only want a high-level view, the package contains:
- Send Report — posts the final execution report to the Ingest API
- Create Details Table — initializes the record-level details DataTable
- Add Detail Row — appends a single record (success or failure) to that table
All three activities appear under the RPA Watch category in the Studio activity panel.

Prerequisites
Before you install the package, make sure you have:
- UiPath Studio 2021.10 or newer, configured for the Windows compatibility net6.0-windows) project type
- An RPA Watch account with at least the Account Admin role
- An API Key created from Account Settings → API Keys (see the https://rpawatch.com/docs/api-keys)
- A Flow and a Robot already registered in RPA Watch — copy their IDs from the Flows and Robots pages
The Flow ID and Robot ID are the link between the report you send and the entities shown on your dashboard. If a synced UiPath process already represents the flow, reuse that ID instead of creating a new one.
Install the package
1. Open your project in UiPath Studio
2. Click Manage Packages in the ribbon
3. Open Settings and confirm that the official NuGet feed https://api.nuget.org/v3/index.json is listed and enabled
4. In All Packages, search for RPAWatch.UiPath.Activities
5. Select the latest version and click Install, then Save
or you can download https://www.nuget.org/packages/RPAWatch.UiPath.Activities

Once installed, the three activities show up under RPA Watch in the activity panel.
## Configure connection arguments
The Send Report activity needs the API base URL and your API key on every call. You can paste these values directly into the activity for a quick test, but the recommended pattern is to declare workflow arguments or a Config dictionary so they can change between environments without editing the .xaml:
| Argument | Example value |
|---|---|
in_RPAWatchApiUrl | https://rpawatch.com |
in_RPAWatchApiKey | rpakey_XXXXXXXXX |
in_FlowId | 6f0a2c39-3d5e-4ca1-81fb-XXXXXX |
in_RobotId | 82XXXX |
The Flow ID is a GUID copied from the Flows page in RPA Watch. The Robot ID is the numeric identifier shown on the Robots page. Storing the API key in the Orchestrator Assets vault or in Windows Credential Manager keeps it out of source control.
Typical workflow shape
A typical RPA Watch–instrumented workflow uses C# expressions (the default for Studio 2026 projects) and looks like this:
Assign startedAt = DateTime.Now
Read Range Workbook → excelDataTable
Create Details Table → detailsTable
For Each Row in Data Table (excelDataTable → currentDataRow,
CurrentIndex → index)
Add Detail Row
Details Table = detailsTable
Sequence No = index + 1
Sequence No = index
Record ID = currentDataRow["National ID"].ToString()
Record Name = currentDataRow["First Name"].ToString() + " "
+ currentDataRow["Last Name"].ToString()
Status = currentDataRow["Flow Status"].ToString() == "Completed"
? "success" : "failed"
Result = currentDataRow["Log"].ToString()
Error Message = currentDataRow["Error"].ToString()
Send Report
API Base URL = in_RPAWatchApiUrl
API Key = in_RPAWatchApiKey
Flow ID = in_FlowId
Robot ID = in_RobotId
Started At = startedAt
Details = detailsTableTwo patterns worth remembering from this shape:
- *SequenceNo ← ForEachRow.CurrentIndex + 1.** Bind a workflow variable to the CurrentIndex property of For Each Row. CurrentIndex is 0-based, but Sequence No must be 1-based (the Ingest API rejects a report whose any row has sequence_no = 0). So feed index + 1 into Add Detail Row — no manual counter needed.
- Map a domain status to RPA Watch with a ternary. RPA Watch only understands success and failed at the row level — convert your source data with an inline expression, e.g. currentDataRow["Flow Status"].ToString() == "Completed" ? "success" : "failed".
The Status field on Send Report is auto-calculated from the Details table — success when every row succeeds, failed when every row fails, partial_success when the result is mixed, and success when no Details are provided. You can override it manually for workflows that do not produce per-record results.