diff --git a/docs/cwrmm/custom-fields/deploy-todyl-sgn-connect.md b/docs/cwrmm/custom-fields/deploy-todyl-sgn-connect.md
new file mode 100644
index 000000000..e530491fe
--- /dev/null
+++ b/docs/cwrmm/custom-fields/deploy-todyl-sgn-connect.md
@@ -0,0 +1,33 @@
+---
+id: 'e21d58b1-9fd5-4888-9e1f-788420313237'
+slug: /e21d58b1-9fd5-4888-9e1f-788420313237
+title: 'Deploy Todyl SGN Connect'
+title_meta: 'Deploy Todyl SGN Connect'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Select the Operating System for auto installing Todyl SGN Connect agent.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Select the Operating System for auto installing Todyl SGN Connect agent. However, the [Install Todyl SGN Connect](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940) task can still be run manually, independent of this field.
+
+## Dependencies
+
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Custom Field Setup Location
+
+**Custom Fields Path:** `SETTINGS` ➞ `Custom Fields`
+
+## Details
+
+| Name | Level | Type | Options | Default Value | Editable | Description |
+| ---- | ----- | ---- | ------- | ------------- | -------- | ----------- |
+| Deploy Todyl SGN Connect | COMPANY | Dropdown |
- Disabled
- Windows Workstation and Windows Server
- Windows Workstation
- Windows Server
| | Yes | Select the Operating System for auto installing Todyl SGN Connect agent. |
+
+## Completed Custom Field
+
+
diff --git a/docs/cwrmm/custom-fields/exclude-todyl-deployment-device.md b/docs/cwrmm/custom-fields/exclude-todyl-deployment-device.md
new file mode 100644
index 000000000..037b15026
--- /dev/null
+++ b/docs/cwrmm/custom-fields/exclude-todyl-deployment-device.md
@@ -0,0 +1,34 @@
+---
+id: 'ee6d7b42-0783-422a-a820-8ef36aab0713'
+slug: /ee6d7b42-0783-422a-a820-8ef36aab0713
+title: 'Exclude Todyl Deployment Device'
+title_meta: 'Exclude Todyl Deployment Device'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Flag this Custom Field to exclude the Device/Endpoint from Todyl SGN Connect agent auto-deployment.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Flag this Custom Field to exclude the Device/Endpoint from Todyl SGN Connect agent auto-deployment. However, the [Install Todyl SGN Connect](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940) task can still be run manually, independent of this field.
+
+## Dependencies
+
+- [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237)
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Custom Field Setup Location
+
+**Custom Fields Path:** `SETTINGS` ➞ `Custom Fields`
+
+## Details
+
+| Name | Level | Type | Default Value | Editable | Description |
+| ---- | ----- | ---- | ------------- | -------- | ----------- |
+| Exclude Todyl Deployment Device | ENDPOINT | Flag | | Yes | Flag this Custom Field to exclude the Device/Endpoint from Todyl SGN Connect agent auto-deployment. |
+
+## Completed Custom Field
+
+
diff --git a/docs/cwrmm/custom-fields/exclude-todyl-deployment-site.md b/docs/cwrmm/custom-fields/exclude-todyl-deployment-site.md
new file mode 100644
index 000000000..5496ff674
--- /dev/null
+++ b/docs/cwrmm/custom-fields/exclude-todyl-deployment-site.md
@@ -0,0 +1,34 @@
+---
+id: 'b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d'
+slug: /b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d
+title: 'Exclude Todyl Deployment Site'
+title_meta: 'Exclude Todyl Deployment Site'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Flag this Custom Field to exclude the Site from Todyl SGN Connect agent auto-deployment.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Flag this Custom Field to exclude the Site from Todyl SGN Connect agent auto-deployment. However, the [Install Todyl SGN Connect](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940) task can still be run manually, independent of this field.
+
+## Dependencies
+
+- [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237)
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Custom Field Setup Location
+
+**Custom Fields Path:** `SETTINGS` ➞ `Custom Fields`
+
+## Details
+
+| Name | Level | Type | Default Value | Editable | Description |
+| ---- | ----- | ---- | ------------- | -------- | ----------- |
+| Exclude Todyl Deployment Site | SITE | Flag | | Yes | Flag this Custom Field to exclude the Site from Todyl SGN Connect agent auto-deployment. |
+
+## Completed Custom Field
+
+
diff --git a/docs/cwrmm/custom-fields/todyl-desktop-policy-key.md b/docs/cwrmm/custom-fields/todyl-desktop-policy-key.md
new file mode 100644
index 000000000..6799d7f34
--- /dev/null
+++ b/docs/cwrmm/custom-fields/todyl-desktop-policy-key.md
@@ -0,0 +1,34 @@
+---
+id: '8656e3f6-5cfc-49b9-a700-cbf453744576'
+slug: /8656e3f6-5cfc-49b9-a700-cbf453744576
+title: 'Todyl Desktop Policy Key'
+title_meta: 'Todyl Desktop Policy Key'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Todyl Deployment Key for Desktop Agents.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Todyl Deployment Key for Desktop Agents.
+
+## Dependencies
+
+- [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237)
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Custom Field Setup Location
+
+**Custom Fields Path:** `SETTINGS` ➞ `Custom Fields`
+
+## Details
+
+| Name | Level | Type | Default Value | Editable | Description |
+| ---- | ----- | ---- | ------------- | -------- | ----------- |
+| Todyl Desktop Policy Key | COMPANY | Text Box | | Yes | Todyl Deployment Key for Desktop Agents. |
+
+## Completed Custom Field
+
+
diff --git a/docs/cwrmm/custom-fields/todyl-laptop-policy-key.md b/docs/cwrmm/custom-fields/todyl-laptop-policy-key.md
new file mode 100644
index 000000000..ab8528c5a
--- /dev/null
+++ b/docs/cwrmm/custom-fields/todyl-laptop-policy-key.md
@@ -0,0 +1,34 @@
+---
+id: '894b9f2c-e0ac-4351-a312-f7f55865e32a'
+slug: /894b9f2c-e0ac-4351-a312-f7f55865e32a
+title: 'Todyl Laptop Policy Key'
+title_meta: 'Todyl Laptop Policy Key'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Todyl Deployment Key for Laptop Agents.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Todyl Deployment Key for Laptop Agents.
+
+## Dependencies
+
+- [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237)
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Custom Field Setup Location
+
+**Custom Fields Path:** `SETTINGS` ➞ `Custom Fields`
+
+## Details
+
+| Name | Level | Type | Default Value | Editable | Description |
+| ---- | ----- | ---- | ------------- | -------- | ----------- |
+| Todyl Laptop Policy Key | COMPANY | Text Box | | Yes | Todyl Deployment Key for Laptop Agents. |
+
+## Completed Custom Field
+
+
diff --git a/docs/cwrmm/custom-fields/todyl-server-policy-key.md b/docs/cwrmm/custom-fields/todyl-server-policy-key.md
new file mode 100644
index 000000000..2843edc4f
--- /dev/null
+++ b/docs/cwrmm/custom-fields/todyl-server-policy-key.md
@@ -0,0 +1,34 @@
+---
+id: 'e7b46cfc-c872-4d3c-b317-2b59a6c9679d'
+slug: /e7b46cfc-c872-4d3c-b317-2b59a6c9679d
+title: 'Todyl Servers Policy Key'
+title_meta: 'Todyl Servers Policy Key'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Todyl Deployment Key for Server Agents.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Todyl Deployment Key for Server Agents.
+
+## Dependencies
+
+- [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237)
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Custom Field Setup Location
+
+**Custom Fields Path:** `SETTINGS` ➞ `Custom Fields`
+
+## Details
+
+| Name | Level | Type | Default Value | Editable | Description |
+| ---- | ----- | ---- | ------------- | -------- | ----------- |
+| Todyl Servers Policy Key | COMPANY | Text Box | | Yes | Todyl Deployment Key for Server Agents. |
+
+## Completed Custom Field
+
+
diff --git a/docs/cwrmm/groups/todyl-sgn-connect-deployment.md b/docs/cwrmm/groups/todyl-sgn-connect-deployment.md
new file mode 100644
index 000000000..b7db5b7db
--- /dev/null
+++ b/docs/cwrmm/groups/todyl-sgn-connect-deployment.md
@@ -0,0 +1,64 @@
+---
+id: '34482e9f-122f-490d-b3c8-1e1d466bbc77'
+slug: /34482e9f-122f-490d-b3c8-1e1d466bbc77
+title: 'Todyl SGN Connect Deployment'
+title_meta: 'Todyl SGN Connect Deployment'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Group for machines where Todyl SGN Connect deployment is enabled but application is not installed.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Group for machines where Todyl SGN Connect deployment is enabled but application is not installed.
+
+## Dependencies
+
+- [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237)
+- [Exclude Todyl Deployment Device](/docs/ee6d7b42-0783-422a-a820-8ef36aab0713)
+- [Exclude Todyl Deployment Site](/docs/b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d)
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Group Setup Location
+
+- **Group Path:** `ENDPOINTS` ➞ `Groups`
+- **Group Type:** `Dynamic Group`
+
+## Group Summary
+
+- **Group Name:** `Todyl SGN Connect Deployment`
+- **Description:** `Group for machines where Todyl SGN Connect deployment is enabled but application is not installed.`
+
+
+## Group Criteria
+
+The group is defined by the following **criteria blocks**, joined by an **OR**. Each block uses **AND** logic between its conditions.
+
+| Block | Criteria Name | Operator | Value(s) |
+|-------|-----------------------|-----------------|-------------------------------------------|
+| 1 | Deploy Todyl SGN Connect | Contains any of | `Windows Workstation`, `Windows Workstation and Windows Server` |
+| 1 | OS Type | Equal | `Windows` |
+| 1 | Endpoint Type | Not Equal | `Server` |
+| 1 | Installed Software Name | Does Not Contain any of | `SGN Connect` |
+| 1 | Exclude Todyl Deploy Device | Equal | `False` |
+| 1 | Exclude Todyl Deploy Site | Equal | `False` |
+| 2 | Deploy Todyl SGN Connect | Contains any of | `Windows Server`, `Windows Workstation and Windows Server` |
+| 2 | OS Type | Equal | `Windows` |
+| 2 | Endpoint Type | Equal | `Server` |
+| 2 | Installed Software Name | Does Not Contain any of | `SGN Connect` |
+| 2 | Exclude Todyl Deploy Device | Equal | `False` |
+| 2 | Exclude Todyl Deploy Site | Equal | `False` |
+
+- **Block 1:** Targets Windows Workstations (not servers)
+- **Block 2:** Targets Windows Servers
+
+**Logic:**
+A machine joins the group if it meets ALL criteria in Block 1 OR ALL criteria in Block 2.
+
+
+
+## Completed Group
+
+
diff --git a/docs/cwrmm/monitors/todyl-sgn-connect-deployment.md b/docs/cwrmm/monitors/todyl-sgn-connect-deployment.md
new file mode 100644
index 000000000..e84caef81
--- /dev/null
+++ b/docs/cwrmm/monitors/todyl-sgn-connect-deployment.md
@@ -0,0 +1,73 @@
+---
+id: '373305fd-1b01-488e-9105-ada540040fc0'
+slug: /373305fd-1b01-488e-9105-ada540040fc0
+title: 'Todyl SGN Connect Deployment'
+title_meta: 'Todyl SGN Connect Deployment'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Run the Automation to deploy Todyl SGN Connect on windows machines where deployment is enabled but agent is not installed.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Run the [Automation](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940) to deploy Todyl SGN Connect on windows machines where deployment is enabled but agent is not installed.'
+
+## Dependencies
+
+- [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237)
+- [Exclude Todyl Deployment Device](/docs/ee6d7b42-0783-422a-a820-8ef36aab0713)
+- [Exclude Todyl Deployment Site](/docs/b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d)
+- [Todyl Desktop Policy Key](/docs/8656e3f6-5cfc-49b9-a700-cbf453744576)
+- [Todyl Laptop Policy Key](/docs/894b9f2c-e0ac-4351-a312-f7f55865e32a)
+- [Todyl Servers Policy Key](/docs/e7b46cfc-c872-4d3c-b317-2b59a6c9679d)
+- [Todyl SGN Connect Deployment](/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77)
+- [Install Todyl SGN Connect](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940)
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Monitor Setup Location
+
+**Monitors Path:** `ENDPOINTS` ➞ `Alerts` ➞ `Monitors`
+
+## Monitor Summary
+
+- **Name:** `Todyl SGN Connect Deployment`
+- **Description:** `Run the Automation to deploy Todyl SGN Connect on windows machines where deployment is enabled but agent is not installed.`
+- **Type:** `Application`
+- **Severity:** `Others`
+- **Family:** `Security`
+
+
+
+## Targeted Resources
+
+- **Target Type:** `Device Groups`
+- **Group Name:** `Todyl SGN Connect Deployment`
+
+
+
+## Conditions
+
+- **Application Status:** `Not Installed`
+- **Application Name:** `Contains`
+- **Enter Value:** `SGN Connect`
+- **Add Automation:** `Install Todyl SGN Connect`
+
+
+
+## Ticket Resolution
+
+**Automatically Resolve:** `Disabled`
+
+
+
+## Monitor Output
+
+**Output:** `Do not Generate Ticket`
+
+
+
+## Completed Monitor
+
+
\ No newline at end of file
diff --git a/docs/cwrmm/tasks/install-todyl-sgn-connect.md b/docs/cwrmm/tasks/install-todyl-sgn-connect.md
new file mode 100644
index 000000000..c1af14aae
--- /dev/null
+++ b/docs/cwrmm/tasks/install-todyl-sgn-connect.md
@@ -0,0 +1,320 @@
+---
+id: 'c23cdc78-f90e-4aba-b77e-4dff9d612940'
+slug: /c23cdc78-f90e-4aba-b77e-4dff9d612940
+title: 'Install Todyl SGN Connect'
+title_meta: 'Install Todyl SGN Connect'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl']
+description: 'Installs the Todyl SGN Connect on Windows systems using the appropriate deployment key for servers, laptops, or desktops.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Summary
+
+Installs the Todyl SGN Connect on Windows systems using the appropriate deployment key for servers, laptops, or desktops.
+
+## Dependencies
+
+- [Todyl Desktop Policy Key](/docs/8656e3f6-5cfc-49b9-a700-cbf453744576)
+- [Todyl Laptop Policy Key](/docs/894b9f2c-e0ac-4351-a312-f7f55865e32a)
+- [Todyl Servers Policy Key](/docs/e7b46cfc-c872-4d3c-b317-2b59a6c9679d)
+- [Solution: Todyl SGN Connect Deployment](/docs/41308550-ea69-4cca-aa0d-9e6f02fcab43)
+
+## Sample Run
+
+
+
+## User Parameters
+
+| Name | Example | Accepted Values | Required | Default | Type | Description |
+|------------------|-----------|---------------------|----------|---------|------------|-----------------------------------------------------------------------------|
+| Force | `Yes` | `Yes`, `No` | `No` | `No` | `Flag` | If enabled, forces installation even if SGN Connect is already installed. |
+
+## Custom Fields
+
+| Name | Level | Type | Required | Description |
+|---------------------|---------|------|----------|------------------------------------------------|
+| Todyl Desktop Policy Key | Company | Text | Yes | Todyl Deployment Key for Desktop Agents. |
+| Todyl Laptop Policy Key | Company | Text | Yes | Todyl Deployment Key for Laptop Agents. |
+| Todyl Servers Policy Key | Company | Text | Yes | Todyl Deployment Key for Server Agents. |
+
+## Task Setup Path
+
+- **Tasks Path:** `AUTOMATION` ➞ `Tasks`
+- **Task Type:** `Script Editor`
+
+## Task Creation
+
+### Description
+
+- **Name:** `Install Todyl SGN Connect`
+- **Description:** `Installs the Todyl SGN Connect on Windows systems using the appropriate deployment key for servers, laptops, or desktops.`
+- **Category:** `Application`
+
+
+
+### Parameters
+
+| Parameter Name | Required Field | Parameter Type | Default Value |
+| -------------- | -------------- | -------------- | ------------- |
+| Force | Disabled | Flag | Disabled |
+
+**Force:**
+ 
+
+
+
+### Script Editor
+
+#### Row 1: Set Pre-defined Variable ( @laptopDeploymentKey@ = Todyl Laptop Policy Key )
+
+- **Variable Name:** `laptopDeploymentKey`
+- **Type:** `Custom Field`
+- **Custom Field:** `Todyl Laptop Policy Key`
+- **Continue on Failure:** `False`
+- **Operating System:** `Windows`
+
+
+
+#### Row 2: Set Pre-defined Variable ( @desktopDeploymentKey@ = Todyl Desktop Policy Key )
+
+- **Variable Name:** `desktopDeploymentKey`
+- **Type:** `Custom Field`
+- **Custom Field:** `Todyl Desktop Policy Key`
+- **Continue on Failure:** `False`
+- **Operating System:** `Windows`
+
+
+
+#### Row 3: Set Pre-defined Variable ( @serverDeploymentKey@ = Todyl Server Policy Key )
+
+- **Variable Name:** `serverDeploymentKey`
+- **Type:** `Custom Field`
+- **Custom Field:** `Todyl Server Policy Key`
+- **Continue on Failure:** `False`
+- **Operating System:** `Windows`
+
+
+
+#### Row 4: PowerShell script
+
+- **Use Generative AI Assist for script creation:** `False`
+- **Expected time of script execution in seconds:** `600`
+- **Continue on Failure:** `False`
+- **Run As:** `System`
+- **Operating System:** `Windows`
+- **PowerShell Script Editor:**
+
+```PowerShell
+<#
+.SYNOPSIS
+ Installs the Todyl SGN Connect agent on Windows devices using company-level deployment keys from CW RMM.
+
+.DESCRIPTION
+ This script automates the installation of the Todyl SGN Connect agent. It determines the device type (server, laptop, or desktop)
+ and uses the corresponding company-level custom field deployment key for installation. The script supports forced reinstallation,
+ verifies installation success, and cleans up temporary files.
+
+.PARAMETER laptopDeploymentKey
+ Company-level custom field named "Todyl Laptop Policy Key". Used for laptops.
+
+.PARAMETER desktopDeploymentKey
+ Company-level custom field named "Todyl Desktop Policy Key". Used for desktops.
+
+.PARAMETER serverDeploymentKey
+ Company-level custom field named "Todyl Server Policy Key". Used for servers.
+
+.PARAMETER force
+ If set to 1, Yes, or True, forces installation even if SGN Connect is already installed.
+
+.NOTES
+ - Requires administrative privileges.
+ - Designed for use with CW RMM or similar remote management platforms.
+ - Deployment keys must be provided via company-level custom fields.
+
+.EXAMPLE
+ .\Install-TodylAgentCWRMM.ps1
+ Installs SGN Connect using the appropriate deployment key based on device type.
+
+#>
+
+#region Globals
+$ErrorActionPreference = 'Stop'
+$ProgressPreference = 'SilentlyContinue'
+[Net.ServicePointManager]::SecurityProtocol = [Enum]::ToObject([Net.SecurityProtocolType], 3072)
+#endRegion
+
+#region Variables
+$appName = 'SGN Connect'
+$workingDirectory = '{0}\_Automation\Script\{1}' -f $env:ProgramData, $appName
+$appPath = '{0}\SGNConnect_Latest.exe' -f $workingDirectory
+$downloadURL = 'https://download.todyl.com/sgn_connect/SGNConnect_Latest.exe'
+$sgnExecutablePath = 'C:\Program Files\SGN Connect\Current\sgnconnect.exe'
+#endRegion
+
+#region Functions
+function Test-TodylInstall {
+ [CmdletBinding()]
+ [OutputType([bool])]
+ param (
+ [Parameter(Mandatory)][String]$SoftwareName
+ )
+
+ $uninstallPaths = @(
+ 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',
+ 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
+ )
+ $uninstallInfo = Get-ChildItem $uninstallPaths -ErrorAction SilentlyContinue |
+ Get-ItemProperty |
+ Where-Object {
+ $_.DisplayName -match [Regex]::Escape($SoftwareName)
+ }
+ if ($uninstallInfo) {
+ return $true
+ } else {
+ return $false
+ }
+}
+#endRegion
+
+#region CW RMM Variables
+$laptopDeploymentKey = '@laptopDeploymentKey@'
+$desktopDeploymentKey = '@desktopDeploymentKey@'
+$serverDeploymentKey = '@serverDeploymentKey@'
+$force = '@Force@'
+#endRegion
+
+#region Set Script Variables
+if ([String]::IsNullOrEmpty($laptopDeploymentKey) -or $laptopDeploymentKey -match 'laptopDeploymentKey@$' -or $laptopDeploymentKey -eq 'NA') {
+ $laptopDeploymentKey = ''
+}
+
+if ([String]::IsNullOrEmpty($desktopDeploymentKey) -or $desktopDeploymentKey -match 'desktopDeploymentKey@$' -or $desktopDeploymentKey -eq 'NA') {
+ $desktopDeploymentKey = ''
+}
+
+if ([String]::IsNullOrEmpty($serverDeploymentKey) -or $serverDeploymentKey -match 'serverDeploymentKey@$' -or $serverDeploymentKey -eq 'NA') {
+ $serverDeploymentKey = ''
+}
+
+if ($force -match '1|Yes|True') {
+ $force = $true
+} else {
+ $force = $false
+}
+#endRegion
+
+#region Install Check
+if (-not (Test-TodylInstall -SoftwareName $appName)) {
+ Write-Information ('Todyl {0} is not installed. Proceeding with installation.' -f $appName) -InformationAction Continue
+} elseif ($force) {
+ Write-Information ('Todyl {0} is already installed and force parameter is enabled. Proceeding with installation.' -f $appName) -InformationAction Continue
+} else {
+ return ('Todyl {0} is already installed and force parameter is not enabled. Skipping installation.' -f $appName)
+}
+#endregion
+
+#region Get Computer Information
+$computerSystem = Get-CimInstance -ClassName Win32_ComputerSystem
+$myOS = (Get-CimInstance -ClassName Win32_OperatingSystem).ProductType
+#endRegion
+
+#region Set Todyl Installation Key
+if ($myOS -eq 1) {
+ Write-Information ('Todyl {0} is a server. Setting installation key.' -f $appName) -InformationAction Continue
+ if ($serverDeploymentKey -eq '') {
+ throw ('Todyl {0} server deployment key not provided. Exiting installation.' -f $appName)
+ } else {
+ $todylKey = $serverDeploymentKey
+ }
+} elseif ($computerSystem.PCSystemType -eq 2) {
+ Write-Information ('Todyl {0} is a laptop. Setting installation key.' -f $appName) -InformationAction Continue
+ if ($laptopDeploymentKey -eq '') {
+ throw ('Todyl {0} laptop deployment key not provided. Exiting installation.' -f $appName)
+ } else {
+ $todylKey = $laptopDeploymentKey
+ }
+} else {
+ Write-Information ('Todyl {0} is a desktop. Setting installation key.' -f $appName) -InformationAction Continue
+ if ($desktopDeploymentKey -eq '') {
+ throw ('Todyl {0} desktop deployment key not provided. Exiting installation.' -f $appName)
+ } else {
+ $todylKey = $desktopDeploymentKey
+ }
+}
+#endRegion
+
+#region Working Directory
+if ( !(Test-Path -Path $workingDirectory) ) {
+ try {
+ New-Item -Path $workingDirectory -ItemType Directory -Force -ErrorAction Stop | Out-Null
+ } catch {
+ throw ('Failed to Create {0}. Reason: {1}' -f $workingDirectory, $($Error[0].Exception.Message))
+ }
+}
+#endRegion
+
+#region Download
+try {
+ Invoke-WebRequest -Uri $downloadURL -OutFile $appPath -UseBasicParsing -ErrorAction Stop
+} catch {
+ throw ('Failed to download {0}. Reason: {1}' -f $appName, $($_.Exception.Message))
+}
+Unblock-File -Path $appPath -ErrorAction SilentlyContinue
+#endRegion
+
+#region Install SGN Connect
+$arguments = @(
+ '/Silent',
+ '/DeployKey',
+ "$todylKey"
+)
+try {
+ $procInfo = Start-Process -FilePath $appPath -ArgumentList $arguments -Wait -PassThru
+} catch {
+ throw ('Failed to install {0}. Reason: {1}' -f $appName, $($Error[0].Exception.Message))
+}
+#endRegion
+
+#region Run SGNConnect
+if ($procInfo.ExitCode -eq 0) {
+ if (Test-Path -Path $sgnExecutablePath) {
+ Start-Process -FilePath $sgnExecutablePath
+ } else {
+ throw ('SGN Connect executable not found at expected path.')
+ }
+} else {
+ throw ('{0} installation failed with exit code {1}.' -f $appName, $procInfo.ExitCode)
+}
+#endRegion
+
+#region Install Verification
+if (Test-TodylInstall -SoftwareName $appName) {
+ return ('Todyl {0} installation completed successfully.' -f $appName)
+} else {
+ throw ('Todyl {0} installation failed with exit code {1}.' -f $appName, $procInfo.ExitCode)
+}
+#endregion
+
+#region Cleanup
+Remove-Item -Path $appPath -Force -ErrorAction SilentlyContinue
+#endregion
+```
+
+
+
+#### Row 5: Script Log
+
+- **Script Log Message:** `%Output%`
+- **Operating System:** `Windows`
+
+
+
+## Completed Script
+
+
+
+## Output
+
+- Script Log
diff --git a/docs/solutions/deploy-todyl-sgn-connect.md b/docs/solutions/deploy-todyl-sgn-connect.md
new file mode 100644
index 000000000..6cef58a5f
--- /dev/null
+++ b/docs/solutions/deploy-todyl-sgn-connect.md
@@ -0,0 +1,98 @@
+---
+id: '41308550-ea69-4cca-aa0d-9e6f02fcab43'
+slug: /41308550-ea69-4cca-aa0d-9e6f02fcab43
+title: 'Deploy Todyl SGN Connect'
+title_meta: 'Deploy Todyl SGN Connect'
+keywords: ['todyl', 'todyl-sgn-connect', 'deploy-todyl', 'sgn-connect']
+description: 'The solution outlines the process of auto deploying Todyl SGN Connect agent from CW RMM.'
+tags: ['application', 'installation', 'security']
+draft: false
+unlisted: false
+---
+
+## Purpose
+
+This solution outlines the full process for automatically deploying the Todyl SGN Connect agent using ConnectWise RMM, utilizing custom fields, a dynamic device group, a scheduled monitor, and an automated installation script with device-specific deployment keys.
+
+## Associated Content
+
+### Custom Fields
+
+| Name | Example | Type | Level | Required | Purpose |
+|------|---------|------|-------|----------|---------|
+| [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237) | Windows Workstation and Server | Dropdown | COMPANY | Yes | Select OS to enable auto-deployment of Todyl SGN Connect agent. |
+| [Exclude Todyl Deployment Site](/docs/b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d) | | Flag | SITE | No | Prevents agent deployment at specific sites. |
+| [Exclude Todyl Deployment Device](/docs/ee6d7b42-0783-422a-a820-8ef36aab0713) | | Flag | ENDPOINT | No | Prevents agent deployment to specific endpoints or devices. |
+| [Todyl Desktop Policy Key](/docs/8656e3f6-5cfc-49b9-a700-cbf453744576) | | Text Box | COMPANY | Yes | Todyl Deployment Key for Desktop Agents. |
+| [Todyl Laptop Policy Key](/docs/894b9f2c-e0ac-4351-a312-f7f55865e32a) | | Text Box | COMPANY | Yes | Todyl Deployment Key for Laptop Agents. |
+| [Todyl Servers Policy Key](/docs/e7b46cfc-c872-4d3c-b317-2b59a6c9679d) | | Text Box | COMPANY | Yes | Todyl Deployment Key for Server Agents. |
+
+### Group
+
+| Name | Purpose |
+|------|---------|
+| [Todyl SGN Connect Deployment](/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77) | Dynamic group targeting Windows devices that are eligible for auto deployment (based on OS selection and not excluded). |
+
+### Monitor
+
+| Name | Type | Schedule | Purpose |
+|------|------|----------|---------|
+| [Todyl SGN Connect Deployment](/docs/373305fd-1b01-488e-9105-ada540040fc0) | Application | Continuous | Monitors and runs the agent installation script on devices missing Todyl SGN Connect. |
+
+### Task
+
+| Name | Purpose |
+|------|---------|
+| [Install Todyl SGN Connect](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940) | PowerShell script that installs or reinstalls Todyl SGN Connect with device-specific deployment keys. |
+
+## Implementation
+
+### Step 1: Create the Required Custom Fields
+
+Create all the custom fields listed above under `SETTINGS → Custom Fields` in CW RMM. See individual documentation pages for configuration details.
+
+- [Deploy Todyl SGN Connect](/docs/e21d58b1-9fd5-4888-9e1f-788420313237)
+- [Exclude Todyl Deployment Site](/docs/b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d)
+- [Exclude Todyl Deployment Device](/docs/ee6d7b42-0783-422a-a820-8ef36aab0713)
+- [Todyl Desktop Policy Key](/docs/8656e3f6-5cfc-49b9-a700-cbf453744576)
+- [Todyl Laptop Policy Key](/docs/894b9f2c-e0ac-4351-a312-f7f55865e32a)
+- [Todyl Servers Policy Key](/docs/e7b46cfc-c872-4d3c-b317-2b59a6c9679d)
+
+### Step 2: Create the Dynamic Group
+
+Create the group [Todyl SGN Connect Deployment](/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77) under `ENDPOINTS → Groups` as a dynamic group. This group targets Windows workstations or servers with deployment enabled and not excluded.
+
+### Step 3: Create the Installation Task
+
+Create the install script task [Install Todyl SGN Connect](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940) under `AUTOMATION → Tasks`. Set up all required variables and use the detailed script from the referenced documentation.
+
+### Step 4: Set up the Deployment Monitor
+
+Configure the monitor [Todyl SGN Connect Deployment](/docs/373305fd-1b01-488e-9105-ada540040fc0) under `ENDPOINTS → Alerts → Monitors` to target the deployment enabled group, running continuously and triggering the installation task on devices missing Todyl SGN Connect.
+
+### Step 5: Configure Deployment Parameters
+
+Obtain the Desktop, Laptop, and Server deployment keys from your Todyl portal and set these values in the appropriate company-level custom fields for each client.
+
+## FAQ
+
+**Q: What happens if a device is excluded at the site or device level?**
+A: Devices or sites flagged for exclusion will not receive the agent through automatic deployment. However, the [Install Todyl SGN Connect](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940) task can be executed manually.
+
+**Q: How does the solution check devices for agent installation?**
+A: The monitor runs continuously and checks for devices in the target group that don't have Todyl SGN Connect installed.
+
+**Q: Can I trigger the agent install manually?**
+A: Yes, the [Install Todyl SGN Connect](/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940) task can be run on demand independent of monitor or group status.
+
+**Q: Where do I find the deployment keys for different device types?**
+A: These values are available in your Todyl portal under the agent deployment section, with separate keys for desktops, laptops, and servers.
+
+**Q: What OSes are supported for automated deployment?**
+A: Supported OS selection is controlled by the `Deploy Todyl SGN Connect` custom field (Windows Workstation, Windows Server, Both, or Disabled).
+
+**Q: Does the installer support forced reinstallation?**
+A: Yes, enable the "Force" runtime parameter when running the install task/script to force a reinstall even if the agent is present.
+
+**Q: How does the script determine device type?**
+A: The script automatically detects whether a device is a server, laptop, or desktop and uses the appropriate deployment key for installation.
\ No newline at end of file
diff --git a/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image1.webp b/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image1.webp
new file mode 100644
index 000000000..9567ce04d
Binary files /dev/null and b/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image1.webp differ
diff --git a/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image2.webp b/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image2.webp
new file mode 100644
index 000000000..be120afe9
Binary files /dev/null and b/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image2.webp differ
diff --git a/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image3.webp b/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image3.webp
new file mode 100644
index 000000000..a414877ac
Binary files /dev/null and b/static/img/docs/34482e9f-122f-490d-b3c8-1e1d466bbc77/image3.webp differ
diff --git a/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image1.webp b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image1.webp
new file mode 100644
index 000000000..f1ffa254d
Binary files /dev/null and b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image1.webp differ
diff --git a/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image2.webp b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image2.webp
new file mode 100644
index 000000000..6b116b86d
Binary files /dev/null and b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image2.webp differ
diff --git a/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image3.webp b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image3.webp
new file mode 100644
index 000000000..edfa31a4e
Binary files /dev/null and b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image3.webp differ
diff --git a/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image4.webp b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image4.webp
new file mode 100644
index 000000000..1a5a029bf
Binary files /dev/null and b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image4.webp differ
diff --git a/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image5.webp b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image5.webp
new file mode 100644
index 000000000..2edcebd6b
Binary files /dev/null and b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image5.webp differ
diff --git a/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image6.webp b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image6.webp
new file mode 100644
index 000000000..5b27785f2
Binary files /dev/null and b/static/img/docs/373305fd-1b01-488e-9105-ada540040fc0/image6.webp differ
diff --git a/static/img/docs/8656e3f6-5cfc-49b9-a700-cbf453744576/image1.webp b/static/img/docs/8656e3f6-5cfc-49b9-a700-cbf453744576/image1.webp
new file mode 100644
index 000000000..a78a90fd5
Binary files /dev/null and b/static/img/docs/8656e3f6-5cfc-49b9-a700-cbf453744576/image1.webp differ
diff --git a/static/img/docs/894b9f2c-e0ac-4351-a312-f7f55865e32a/image1.webp b/static/img/docs/894b9f2c-e0ac-4351-a312-f7f55865e32a/image1.webp
new file mode 100644
index 000000000..7750fd63c
Binary files /dev/null and b/static/img/docs/894b9f2c-e0ac-4351-a312-f7f55865e32a/image1.webp differ
diff --git a/static/img/docs/b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d/image1.webp b/static/img/docs/b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d/image1.webp
new file mode 100644
index 000000000..f5ad81440
Binary files /dev/null and b/static/img/docs/b4d717f5-38fe-4eac-83d4-d1cb88e7fe9d/image1.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image1.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image1.webp
new file mode 100644
index 000000000..acdc4482b
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image1.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image10.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image10.webp
new file mode 100644
index 000000000..cd073fe4a
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image10.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image2.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image2.webp
new file mode 100644
index 000000000..650150562
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image2.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image3.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image3.webp
new file mode 100644
index 000000000..876de5c36
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image3.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image4.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image4.webp
new file mode 100644
index 000000000..6c5545bfb
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image4.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image5.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image5.webp
new file mode 100644
index 000000000..788bca020
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image5.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image6.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image6.webp
new file mode 100644
index 000000000..fea5c5d8f
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image6.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image7.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image7.webp
new file mode 100644
index 000000000..72a086ff4
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image7.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image8.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image8.webp
new file mode 100644
index 000000000..b48e45420
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image8.webp differ
diff --git a/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image9.webp b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image9.webp
new file mode 100644
index 000000000..c786f088d
Binary files /dev/null and b/static/img/docs/c23cdc78-f90e-4aba-b77e-4dff9d612940/image9.webp differ
diff --git a/static/img/docs/e21d58b1-9fd5-4888-9e1f-788420313237/image1.webp b/static/img/docs/e21d58b1-9fd5-4888-9e1f-788420313237/image1.webp
new file mode 100644
index 000000000..705bd0da4
Binary files /dev/null and b/static/img/docs/e21d58b1-9fd5-4888-9e1f-788420313237/image1.webp differ
diff --git a/static/img/docs/e7b46cfc-c872-4d3c-b317-2b59a6c9679d/image1.webp b/static/img/docs/e7b46cfc-c872-4d3c-b317-2b59a6c9679d/image1.webp
new file mode 100644
index 000000000..34b5ec5c8
Binary files /dev/null and b/static/img/docs/e7b46cfc-c872-4d3c-b317-2b59a6c9679d/image1.webp differ
diff --git a/static/img/docs/ee6d7b42-0783-422a-a820-8ef36aab0713/image1.webp b/static/img/docs/ee6d7b42-0783-422a-a820-8ef36aab0713/image1.webp
new file mode 100644
index 000000000..10001e4f9
Binary files /dev/null and b/static/img/docs/ee6d7b42-0783-422a-a820-8ef36aab0713/image1.webp differ