- Getting Started
- Setup and Configuration
- Automation Projects
- Dependencies
- Types of Workflows
- Control Flow
- File Comparison
- Automation Best Practices
- Source Control Integration
- Debugging
- Logging
- The Diagnostic Tool
- Workflow Analyzer
- About Workflow Analyzer
- ST-NMG-001 - Variables Naming Convention
- ST-NMG-002 - Arguments Naming Convention
- ST-NMG-004 - Display Name Duplication
- ST-NMG-005 - Variable Overrides Variable
- ST-NMG-006 - Variable Overrides Argument
- ST-NMG-008 - Variable Length Exceeded
- ST-NMG-009 - Prefix Datatable Variables
- ST-NMG-011 - Prefix Datatable Arguments
- ST-NMG-012 - Argument Default Values
- ST-NMG-016 - Argument Length Exceeded
- ST-NMG-017 - Class name matches default namespace
- ST-DBP-002 - High Arguments Count
- ST-DBP-003 - Empty Catch Block
- ST-DBP-007 - Multiple Flowchart Layers
- ST-DPB-010 - Multiple instances of [Workflow] or [Test Case]
- ST-DBP-020 - Undefined Output Properties
- ST-DBP-021 - Hardcoded Timeout
- ST-DBP-023 - Empty Workflow
- ST-DBP-024 - Persistence Activity Check
- ST-DBP-025 - Variables Serialization Prerequisite
- ST-DBP-027 - Persistence Best Practice
- ST-DBP-028 - Arguments Serialization Prerequisite
- ST-USG-005 - Hardcoded Activity Properties
- ST-USG-009 - Unused Variables
- ST-USG-010 - Unused Dependencies
- ST-USG-014 - Package Restrictions
- ST-USG-017 - Invalid parameter modifier
- ST-USG-020 - Minimum Log Messages
- ST-USG-024 - Unused Saved for Later
- ST-USG-025 - Saved Value Misuse
- ST-USG-026 - Activity Restrictions
- ST-USG-027 - Required Packages
- ST-USG-028 - Restrict Invoke File Templates
- ST-USG-032 - Required Tags
- ST-USG-034 - Automation Hub URL
- Variables
- Arguments
- Imported Namespaces
- Coded automations
- Introduction
- Registering custom services
- Before and After contexts
- Generating code
- Generating coded test case from manual test cases
- Troubleshooting
- Trigger-based Attended Automation
- Object Repository
- The ScreenScrapeJavaSupport Tool
- Extensions
- About extensions
- SetupExtensions tool
- UiPathRemoteRuntime.exe is not running in the remote session
- UiPath Remote Runtime blocks Citrix session from being closed
- UiPath Remote Runtime causes memory leak
- UiPath.UIAutomation.Activities package and UiPath Remote Runtime versions mismatch
- The required UiPath extension is not installed on the remote machine
- Screen resolution settings
- Group Policies
- Cannot communicate with the browser
- Chrome extension is removed automatically
- The extension may have been corrupted
- Check if the extension for Chrome is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and Incognito mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- List of extensions for Chrome
- Chrome Extension on Mac
- Group Policies
- Cannot communicate with the browser
- Edge extension is removed automatically
- The extension may have been corrupted
- Check if the Extension for Microsoft Edge is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and InPrivate mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- List of extensions for Edge
- Extension for Safari
- Extension for Amazon WorkSpaces
- SAP Solution Manager plugin
- Excel Add-in
- Studio testing
- Troubleshooting
- About troubleshooting
- Assembly compilation errors
- Microsoft App-V support and limitations
- Internet Explorer X64 troubleshooting
- Microsoft Office issues
- Identifying UI elements in PDF with Accessibility options
- Repairing Active Accessibility support
- Validation of large Windows-legacy projects takes longer than expected
GSuite activities supported by the Activity Migrator tool when migrating Studio automation projects.
Refer to the tables below for the GSuite activities that are supported when using the Activity Migrator tool. Each row lists the Source classic activity, the Destination modern activity/activities it migrates to, and the most notable transformations the migrator performs.
Scopes
| Source activity | Destination activity/activities | Notes |
|---|---|---|
Google Workspace Scope (GSuiteApplicationScope) | GSuiteApplicationScope | Stays as-is; inner activities migrated in place. |
Use Google Drive (GoogleDriveApplicationScope) | Sequence (when UseConnectionService=true) or GSuiteApplicationScope (OAuth) | Auth-only scope; injects ConnectionId into child activities via scope context. OAuth path sets OAuthClient = Custom if both CredentialID and CredentialSecret are bound, otherwise UiPath. |
Use Google Document (GoogleDocsApplicationScope) | Sequence / GSuiteApplicationScope (+ optional CreateDocumentConnections prepended for CreateNew / CreateIfNotExists) | Document-lifecycle scope. The Action enum drives whether a Create activity is prepended; the new document's ID is wired into child activities through a pre-allocated newDocument variable. |
Use Google Spreadsheet (GoogleSheetsApplicationScope) | Sequence / GSuiteApplicationScope (+ optional CreateSpreadsheetConnections prepended for CreateNew / CreateIfNotExists) | Same shape as Docs scope; pre-allocates newSpreadsheet. |
Gmail
| Source activity | Destination activity/activities |
|---|---|
Send Email (SendEmail) | SendEmailConnections |
Get Mail Messages (GetMailMessages) | GetEmailListConnections (default) or GetEmailByIdConnections (+ optional MarkAsReadUnreadConnections) when EmailId is set. List path appends an Assign to convert List<GmailMessage> back to the classic GmailMessage[]. |
Change Labels (ChangeLabels) | RemoveEmailLabelsConnections + ApplyEmailLabelsConnections. Labels to remove are computed as email.LabelIds.Except(["SEND","DRAFT"]); labels to apply merge the builder + variable inputs, dedupe, and exclude reserved labels. |
Calendar
| Source activity | Destination activity/activities |
|---|---|
Add Attendee (AddAttendee) | GetEventByIdConnections + ModifyEventConnections (sets ChangeRequiredAttendees=AddRemove, wraps single email into an array). |
Create Event (CreateEvent) | CreateEventConnections (+ Assign for EventId, EventUrl outputs). |
Delete Event (DeleteEvent) | GetEventByIdConnections + DeleteEventConnections. Maps InstancesOption → DeleteType enum (THIS_EVENT/THIS_AND_FOLLOWING_EVENTS/ALL → SingleEvent/FutureOnly/PastAndFuture). |
Modify Event (ModifyEvent) | GetEventByIdConnections + ModifyEventConnections (+ Assign for EventId output). Sets ChangeRequiredAttendees=Overwrite. |
Search Events (SearchEvents) | GetEventByIdConnections (when EventId set) or GetEventListConnections. When the classic Result (raw Event[]) is bound, an HTTP bridge re-fetches the raw Event JSON; see HTTP Bridge below. |
Drive
| Source activity | Destination activity/activities |
|---|---|
Copy File (CopyDriveFile) | CopyFileConnections (+ a prepended GetFileFolderConnections when NewParentId is null, to resolve the file's current parent) (+ Assign for the Result ID). |
Move File (MoveDriveFile) | MoveFileConnections (+ a prepended GetFileFolderConnections when NewParentId is null). |
Create Folder (CreateFolder) | CreateFolderConnections (+ Assign for Result ID). ConflictResolution hardcoded to AddSeparate. |
Create Document (CreateDocument) | CreateDocumentConnections (+ Assign for Result ID). |
Create New Spreadsheet (CreateNewSpreadsheet) | CreateSpreadsheetConnections (+ two Assign activities: FileURL ← item.Url, SpreadsheetId ← item.ID). |
Delete File (DeleteFile) | DeleteFileOrFolderConnections. PermanentlyDelete hardcoded to true to match classic behaviour. |
Share File (CreateFilePermission) | ShareFileFolderConnections. |
Delete File Permission (DeleteFilePermission) | DeleteFileFolderPermissionConnections. |
Update File Permission (UpdateFilePermission) | UpdateFileFolderPermissionConnections (+ HTTP bridge for the Result output, see below). |
Get File Permissions (GetFilePermissions) | GetFileFolderPermissionsConnections (+ HTTP bridge for the Result output). |
Download File (DownloadFile) | DownloadFileConnections. ConflictResolution hardcoded to Replace to preserve classic always-overwrite behaviour. |
Upload File (UploadFile) | UploadFilesConnections (+ Assign for Result ID). FilesInputMode hardcoded to Single; LocalFilePath wrapped with LocalResource.FromPath(...). |
Find Files and Folders (FindFiles) | GetFileListConnections (+ optional Assign for FirstResultId) (+ HTTP bridge ForEach for the Result output). Hardcodes the search location to "root" (My Drive) — see action items below. |
Get File Info (GetFileInfo) | GetFileFolderConnections (+ HTTP bridge for the Result output). |
Documents
| Source activity | Destination activity/activities |
|---|---|
Read All Text (ReadAllText) | ReadTextConnections. ReadTextMode hardcoded to AllText. |
Insert Text (InsertText) | WriteTextConnections. Maps Position (START/END) → WriteTextMode (BeginningOfDocument/EndOfDocument). AT_INDEX is unsupported (action required). |
Replace Text (ReplaceText) | FindAndReplaceTextConnections. ReplaceBehavior hardcoded to AllReccurences. |
Get Document (GetDocument) | GetDocumentConnections (+ HTTP bridge for the Result output). |
Sheets
| Source activity | Destination activity/activities |
|---|---|
Add New Sheet (AddNewSheet) | AddSheetConnections. ConflictResolution hardcoded to Fail. |
Read Range (ReadRange) / Write Range (WriteRange) | ReadRangeConnections<DataTable> / WriteRangeConnections. Concatenates SheetName + cell/range reference into one "Sheet!Range" string. WriteRange.WriteMode hardcoded to Overwrite. |
Read Cell (ReadCell) / Write Cell (WriteCell) | ReadCellConnections<object> / WriteCellConnections. WriteCell.Value cast string → object. |
Read Column (ReadColumn) / Read Row (ReadRow) | ReadColumnConnections / ReadRowConnections (+ Assign to bridge DataRow.ItemArray for ReadRow). |
Append Row (AppendRow) | WriteRowConnections. WriteMode hardcoded to Append. |
Get Cell Color (GetCellColor) | GetCellColorConnections (+ HTTP bridge for the Color output). |
Delete Sheet (DeleteSheet) / (RenameSheet) | DeleteSheetConnections / RenameSheetConnections. |
Delete Range (DeleteRange) | DeleteRangeConnections. Maps Shift (UP/LEFT) → DeleteMode (Rows/Columns). |
Clear Range (ClearRange) | DeleteRangeConnections with DeleteMode hardcoded to None. |
Auto Fill Range (AutoFillRange) | AutoFillRangeConnections. |
Copy Paste Range (CopyPasteRange) | CopyPasteRangeConnections. |
Add Delete Columns (AddDeleteColumns) | DeleteColumnConnections (DELETE) or ForEach<int> + WriteColumnConnections (INSERT). |
Add Delete Rows (AddDeleteRows) | DeleteRowsConnections (DELETE) or ForEach<int> + WriteRowConnections (INSERT). |
Apps Script
| Source activity | Destination activity/activities |
|---|---|
Run Script (RunScript) | RunScriptConnections (+ Assign to convert IDictionary<string, object> → Dictionary<string, object> for the Result output). Flattens RequiredScopes (IEnumerable<IEnumerable<string>>) → string[] via SelectMany().ToArray(). |
Helper Activities
Several classic activities expose outputs typed as raw Google API types (Google.Apis.Drive.v3.Data.File, Permission, Calendar.v3.Data.Event, Sheets.v4.Data.Color, Docs.v1.Data.Document). The modern equivalents return UiPath wrapper types (GDriveRemoteItem, GDriveItemPermission, GSuiteEventItem, System.Drawing.Color, …). These types are not assignment-compatible, so a workflow that consumes the raw output downstream would break after migration.
The HTTP Bridge closes this gap. When the migrator detects a bound classic output and can resolve the relevant identifiers from the source as literal expressions, it appends an HttpRequestConnections + Assign pair:
- Assign (
System.Activities.Statements.Assign) - Google Workspace HTTP Request (
UiPath.GSuite.Activities.HttpRequestConnections)
The bridge is used by SearchEvents, UpdateFilePermission, GetFilePermissions, FindFiles, GetFileInfo, GetDocument, and GetCellColor.