RPA Bot Monitoring and Logging
A deployed bot is not a set-and-forget solution. Applications change. Data formats shift. Network issues arise. Without monitoring, a bot can fail silently for hours — or days — while business transactions are missed and problems pile up. Robust monitoring and logging give you immediate visibility into every bot run, every transaction processed, and every error encountered.
The Three Layers of RPA Monitoring
┌──────────────────────────────────────────────────────┐ │ MONITORING LAYERS │ │ │ │ LAYER 3 – BUSINESS MONITORING │ │ "Did the business outcome happen correctly?" │ │ KPIs: STP rate, processing accuracy, turnaround time│ │ │ │ LAYER 2 – PROCESS MONITORING │ │ "Did the bot complete its workflow?" │ │ Checks: Job status, queue health, exception rate │ │ │ │ LAYER 1 – INFRASTRUCTURE MONITORING │ │ "Is the bot machine available and healthy?" │ │ Checks: VM uptime, CPU, memory, disk, network │ └──────────────────────────────────────────────────────┘
Orchestrator Monitoring Dashboard
The UiPath Orchestrator dashboard is the central monitoring hub. It shows in real time:
- How many jobs are currently running, idle, or pending
- Which robots are connected, disconnected, or busy
- Queue status — how many items are pending, in progress, completed, or failed
- Recent job outcomes — success, fault, stopped
- Alert notifications for failures and threshold breaches
Job Status Definitions
| Status | Meaning | Action Required |
|---|---|---|
| Successful | Job completed without errors | None — review summary |
| Faulted | Job stopped due to an unhandled exception | Investigate logs immediately |
| Stopped | Job manually stopped by an operator | Verify if intentional |
| Running | Job is currently executing | Monitor for expected duration |
| Pending | Job queued, waiting for an available robot | Check if robot pool is busy or offline |
Logging Levels in UiPath
UiPath sends log messages to the Orchestrator at different severity levels. Configure the minimum log level that gets captured — capturing everything is useful in development but creates noise in production.
| Log Level | Used For | Example |
|---|---|---|
| Verbose | Extremely detailed step-by-step trace (dev only) | "Attempting to click Submit button" |
| Trace | Detailed flow tracing | "Entering ForEach loop iteration 45" |
| Information | Normal processing milestones | "Invoice INV-2024-0451 posted successfully" |
| Warning | Non-critical issues worth noting | "Vendor name trimmed — leading spaces removed" |
| Error | Handled exceptions the bot recovered from | "SAP timeout — retried and succeeded" |
| Critical | Unrecoverable failures causing bot to stop | "SAP login failed after 3 retries — bot halted" |
In production, set the minimum log level to Information. In development and testing, use Verbose or Trace.
What to Log at Each Stage
Initialisation
Log: "InvoiceBot v1.2.0 started at {DateTime.Now}"
Log: "Config loaded — environment: Production"
Log: "SAP connection established successfully"
Log: "Outlook inbox opened — {emailCount} unread emails found"
Per-Transaction Processing
Log: "Processing invoice {invoiceNo} from {vendorName}"
Log: "Invoice amount: {amount} — within auto-approval limit"
Log: "Invoice {invoiceNo} posted to SAP — document: {sapDocNo}"
Log: "Confirmation email sent to {vendorEmail}"
Log: "Invoice {invoiceNo} completed in {duration} seconds"
Error Events
Log ERROR: "Selector not found — SAP amount field. Attempt 1 of 3."
Log ERROR: "Duplicate invoice detected: {invoiceNo} — skipping."
Log CRITICAL: "SAP login failed after 3 retries at {DateTime.Now}. Bot halted."
Save screenshot: "C:\ErrorLogs\SAP_Fail_{DateTime.Now}.png"
Completion
Log: "Bot run completed at {DateTime.Now}"
Log: "Processed: 148 | Success: 143 | Failed: 3 | Skipped: 2"
Log: "Average processing time per invoice: 58 seconds"
Log: "Summary email sent to ap.manager@company.com"
Custom Log Fields
UiPath lets you add custom fields to log entries — structured data beyond the basic message text. This enables powerful filtering and analysis in log management tools.
Log Message with custom fields: ├── Message: "Invoice processed" ├── TransactionID: invoiceNo ├── VendorName: vendorName ├── Amount: invoiceAmount ├── SAPDocNo: sapDocNo ├── Duration: processingSeconds └── BotName: "InvoiceBot_Prod_VM01" In Elasticsearch / Kibana, filter all logs by VendorName = "Acme Ltd" to see every invoice Acme submitted and its outcome.
Alerts and Notifications
Configure Orchestrator to send automatic alerts when specific events occur:
- A job faults (email + SMS to the operations team)
- A robot goes offline unexpectedly
- A queue backlog exceeds a defined threshold (e.g., more than 500 pending items)
- A job runs longer than its expected duration
- License usage exceeds 80% of capacity
Log Retention and Compliance
In regulated industries, bot logs are part of the audit trail. Define a retention policy:
- Keep detailed transaction logs for at least 7 years in financial services (varies by regulation)
- Archive logs to a long-term storage solution (Azure Blob Storage, AWS S3, on-premise archive)
- Ensure logs cannot be modified after writing — use immutable storage for compliance
- Include bot identity in every log entry so auditors can trace every action back to the specific bot and run
Monitoring KPIs for Operations Teams
| KPI | Formula | Target |
|---|---|---|
| Bot Uptime | Time bot ran ÷ Total scheduled time | > 98% |
| Success Rate | Successful transactions ÷ Total transactions | > 95% |
| Exception Rate | Failed transactions ÷ Total transactions | < 5% |
| Average Handle Time | Total run time ÷ Total transactions | Benchmark vs manual |
| MTTR (Mean Time to Recover) | Average time from failure to resolution | < 2 hours |
Summary
Monitoring and logging are the operational backbone of a production RPA programme. The Orchestrator dashboard gives real-time visibility into job status, robot health, and queue backlogs. Log messages at appropriate severity levels capture the full story of every bot run. Custom log fields enable powerful filtering and analysis. Alerts notify the team immediately when something goes wrong. Compliance industries require immutable, long-term log retention. Monitoring KPIs measure bot health objectively and support continuous improvement. A bot you cannot monitor is a bot you cannot trust.
