<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><p><strong>In this guide we will cover:</strong></p><p><strong>- What is the Kaseya VSA Integration?</strong></p><p><strong>- Obtaining Kaseya Credentials</strong></p><p><strong>- Authenticating the Integration</strong></p><p><strong>- Importing Clients</strong></p><p><strong>- Importing Assets </strong></p><p><strong>- Import Assets and Clients Automatically</strong></p><p><strong>- Alerting</strong></p><p><br></p><p><br></p><p><strong>Related Guides:</strong></p><ul><li><a href="https://usehalo.com/halopsa/guides/2680/" target="_blank" rel="noopener noreferrer"><strong>Kaseya VSA X Integration</strong></a></li></ul><p><br></p><p><br></p><p><strong><span style="font-size: 14pt;">What is the Kaseya VSA Integration?</span></strong></p><p>The Kaseya VSA integration allows assets and clients to be imported into Halo from Kaseya VSA. Alerts can also be configured to automatically create tickets in Halo each time an alert is triggered in Kaseya. Alerts, asset and clients are imported on a schedule using the Halo integrator. </p><p><br></p><p><em><strong>Note: If using VSA X, you will need to connect via the Kaseya VSA X integration. The guide is linked above.</strong></em></p><p><br></p><p><strong><span style="font-size: 14pt;">Obtaining Kaseya Credentials</span></strong></p><p id="isPasted">Obtain OAuth 2.0 credentials from the VSA Server Visit the VSA server to obtain OAuth 2.0 credentials such as a client ID and client secret that are known to both the VSA and your application. This can be done from System > Server Management > OAuth Clients. Once the client is registered, a client_id and client_secret are generated by the system. The client_id is shown on the UI post registration, and both the client_id and client_secret are sent to the email address provided at the time. The client_secret is confidential and must be stored securely by the application. </p><p><br></p><p>Figure 1 shows an example of where this is setup in Kaseya VSA.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY1YzliMzE0LWJmYjItNGU3MC1iOTlmLWRkNTZlYTZjZmYxOCJ9.R_m6IdY_8br53iqykVnRS1_9YYIWiFaIsnzjvsZfEjA" width="550" style="width: 550px; height: 380.517px;" height="380.517" class="fr-fic fr-dii"></p><p><strong><span style="font-size: 10pt;">Fig 1. OAuth in Kaseya</span></strong></p><p><br></p><p>When setting this up you will need to enter a redirect URL into Kaseya VSA. </p><p><img data-fr-image-pasted="true" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQwYjMzZGU4LWUzYjYtNDBhYi04MDM1LTc3ZGY2MmJlNzFiNiJ9.EYjQRu5Pw5_DA2-ISgOfkbIYkDZuwNwf9WYnX49Ubdo" width="601" height="548" style="box-sizing: inherit; border-style: none; cursor: pointer; padding: 0px 1px; user-select: none; max-width: calc(100% - 10px); color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" id="isPasted" class="fr-fic fr-fil fr-dib"></p><p><strong><span style="font-size: 10pt;">Fig 2. Entering a redirect URL</span></strong></p><p><br></p><p><span style="font-size: 11pt;">The redirect URL used will differ depending on the version of Halo you are using.</span></p><p><br></p><p id="isPasted">On versions prior to v2.200 the following redirect URI will need to be used:</p><ul><li id="isPasted"><a data-fr-linked="true" href="https://auth.halopsa.com/externalauth ">https://auth.halopsa.com/externalauth</a></li></ul><p>On versions v2.200+ you the following redirect URI will need to be used:</p><ul><li><a data-fr-linked="true" href="https://YOURHALODOMAIN/authcallback">https://YOURHALODOMAIN/authcallback</a></li></ul><p id="isPasted"><strong><em>Note: If you have disconnected to the integration and are reconnecting, if your Halo instance is on v2.200+ you will need to use the new redirect URI (<a data-fr-linked="true" href="https://YOURHALODOMAIN/authcallback">https://YOURHALODOMAIN/authcallback</a>).</em></strong></p><p><br></p><p><strong><span style="font-size: 14pt;">Authenticating the Integration</span></strong></p><p>Once this is complete and you have your Client ID and Client Secret from Kaseya VSA you will need to enter these into Halo on the integration page and click Authorize to connect the application.</p><p><br></p><p>Go to Configuration > Integrations and then enable the integration for Kaseya.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRiOTc4NjUxLWMwNGYtNDJlMi1iODI4LWM5YWJjZjYxMDdiOCJ9.hdvpO30VVfiO3y40SRNLPIzn1604BsJSguzrZVyG10g" class="fr-fic fr-fil fr-dib" width="543" height="279"></p><p><strong><span style="font-size: 10pt;">Fig 3. Enabling the module</span></strong></p><p><br></p><p>Then click into the module to begin configuration. Here you can add in the credentials.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImY2ZWVmY2MxLWFjOWQtNGVmNy05YzkzLWI1YmUxZjE4MzNlNyJ9.EObkDRX_3hdTkELm1k8ebuTtb-XIsf-CX7In54_IzS0" class="fr-fic fr-fil fr-dib" width="1217" style="width: 1219px; height: 306.868px;" height="307"></p><p><strong><span style="font-size: 10pt;">Fig 4. Setup</span></strong></p><p><br></p><p><strong>Kaseya URL – </strong>This is the URL of your Kaseya site. This needs to be the root of the site.</p><p><br></p><p><span style="font-size: 11pt;">Once you have added credentials and authorised your connection, further configuration options will be available. </span></p><p><br></p><p><strong><span style="font-size: 14pt;">Importing Clients</span></strong></p><p><span style="font-size: 11pt;">Kaseya VSA organisations can be imported into Halo to create clients (and sites) in your Halo instance. </span></p><p><br></p><p>If you do not yet have any clients in your Halo instance you can hit "Import Clients" to import all your organisations in Kaseya VSA. </p><p><br></p><p>If you already have clients in your Halo instance, you will need to map each Kaseya Organisation to the correct Halo client and site before importing. This will determine which Halo site each asset in Kaseya will be created under. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjhlMjdhZWE5LThmMDYtNGI5My1iNjU0LTg3YWMyNGIyYTUzZiJ9.IZ_oUG8SDxwY626V_VaH44DfaoFdVZhO2k76-jIi5-I" class="fr-fic fr-fil fr-dib" width="1335" style="width: 1337px; height: 578.35px;" height="578"></p><p><strong><span style="font-size: 10pt;">Fig 5. Client mappings</span></strong></p><p><br></p><p>To create a mapping simply add to the mappings table and choose the Halo site and Kaseya Organisation you would like to map together. </p><p><br></p><p>Any unmapped Kaseya Organisations will attempt to match to Halo clients and sites based on their name. If a match cannot be found based on name, a new client will be created. </p><p><br></p><p>To manually import Clients/Organisations, hit "Import Clients" once mappings are complete. </p><p><br></p><p><strong><span style="font-size: 14pt;">Importing Assets </span></strong></p><p>Next you will need to configure how assets are imported into Halo. Settings for this are found under the "Asset Imports" section. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ1ODk3ZTZkLTE1MDItNDZlZS1iYmVkLWRhZDFkMzhiZjliOCJ9.kxMN0-c3EVx7fl4NKxB3i67drpVjLuTe33Kv7eAKqD4" class="fr-fic fr-fil fr-dib" width="1363" style="width: 1365px; height: 611.434px;" height="611"></p><p><strong><span style="font-size: 10pt;">Fig 6. Asset Import options</span></strong></p><p><br></p><p><strong>Only import Computer Agent Assets (otherwise import all discovered assets) -</strong> When enabled, only Computer Agent Assets will be imported from Kaseya, no other assets will be imported. When disabled, all assets found in Kaseya will be imported. </p><p><br></p><p><strong>Default Site -</strong> Here choose the site assets should be created under if they cannot be matched to a site in Halo. Assets are matched to sites based on the Halo site that is mapped to the Kaseya Organisation they are under. If an asset's Kaseya Organisation is not mapped to a Halo site, the site chosen here will be the site they are created under. </p><p><br></p><p><strong>Asset Matching Field -</strong> Here choose the asset field in Halo that will be matched on during the import. If the field value in Halo matches the value of the mapped Kaseya field, an existing asset will be updated, if no match can be made a new asset will be created. The unique identifier of the asset should be chosen here. </p><p><br></p><p><strong>Asset Matching Value Exclusions -</strong> Here you can set assets to not be matched using the matching field if the matching field contains a certain value. For example, if two assets have the matching field set to be 'None' they would match even though they are separate assets. By adding the value 'none' to the matching value exclusions list you can ensure the assets are matched using their Kaseya VSA instead. </p><p><br></p><p><strong><span style="font-size: 12pt;">Determine Asset Types</span></strong></p><p>All assets in Halo will need to have an asset type therefore you will need to map Kaseya Asset types to Halo asset types. This is done using the Asset Type Mappings table. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjA0NmY3MzFhLWYyZGMtNGRiNi04NDcwLWMxMDI1ZjljYWQyNiJ9.PhFajimOm4DEcyHcPz8lal1sMJHojvMA2I7DAdjiStQ" class="fr-fic fr-fil fr-dib" style="width: 1298px; height: 351.313px;" width="1535" height="416"></p><p><strong><span style="font-size: 10pt;">Fig 7. Asset Type Mappings</span></strong></p><p><br></p><p><strong>Mapping Workstation Operating System" and Server Operating System</strong></p><p>The asset types "Workstation Operating System" and "Server Operating System" cannot be mapped to Halo asset types using this table. Instead, use the fields "Asset Type Override for Workstation Operating System" and "Asset Type Override for Server Operating System" (respectively) to determine which Halo asset types are mapped to these asset types. </p><p><br></p><p>To map the fields for these asset types you will then need to map the chosen Halo asset type to any Kaseya asset type (in the mappings table) and add field mappings for the asset types here.</p><p><br></p><p><strong><span style="font-size: 12pt;">Field Mappings</span></strong></p><p>When mapping asset types you will also need to complete field mappings. Field mappings will control which fields in Halo data from Kaseya will be imported into for this asset type. </p><p><br></p><p>When adding a new field mapping, you will be presented with the screen shown in figure x. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzODQ0N2JhLWRjOWYtNDI3NC04MTcyLWUyNTEzZWE1MTgyMyJ9.HVHlXZZl7PIspfAlJT57AkAva-jdVqeWeJ081lEw1bs" class="fr-fic fr-fil fr-dib" width="595" style="width: 597px; height: 585.278px;" height="585"></p><p><strong><span style="font-size: 10pt;">Fig 8. New Asset Field Mappings</span></strong></p><p><br></p><p data-pasted="true"><strong>Field Type -</strong> This will be the type of Halo field the data will be imported into. See our guide on<a href="https://usehalo.com/halopsa/guides/1785" target="_blank" rel="noopener noreferrer"> Asset Fields</a> if you are unsure on the difference between asset fields and custom fields in Halo. </p><p><br></p><p><strong>Only apply this mapping to new Assets and Assets where the Asset field does not currently have a value - </strong>When this is enabled if the Halo field already has data within it, different to the data in the mapped Kaseya field, the field data will not change. Fields will only be populated when they contain no data or when new assets are being created. </p><p><br></p><p>If you would like the data in the Kaseya field to be added to a new asset field in Halo, select *Create a new Field during the next import* as the "HaloPSA Field".</p><p><br></p><p>Ensure you map all the relevant fields for each asset type. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY1MDQxNzc4LTZmOWEtNDY2My04NDViLWVlYmQxMmNmMWY0OSJ9.gMbgoAxMXJhbMWuff_58aqW8vQ7OCanoDEg-LVKBE08" class="fr-fic fr-fil fr-dib" width="599" style="width: 601px; height: 703.28px;" height="703"></p><p><strong><span style="font-size: 10pt;">Fig 9. Asset Type field Mappings</span></strong></p><p><br></p><p><strong>Default Asset Type -</strong> Ensure you set this along with completing asset type mappings. This will determine they asset type new assets are created as if they cannot be matched to an asset type in Halo. </p><p> </p><p>Once you have configured how assets will be imported, hit "Import Assets" to begin a manual import. </p><p><br></p><p><strong><span style="font-size: 14pt;">Import Assets and Clients Automatically</span></strong></p><p>The Halo integrator can be enabled for this integration to have assets and clients imported automatically on a scheduled basis. This ensures asset data in Halo is always up to date with changes made in Kaseya. </p><p><br></p><p>To do this, check "Enable the Halo Integrator for the Kaseya VSA integration" under the "Halo Integrator" section. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYyOTBmNWFjLTkxMTgtNDk1Zi05NTdiLWMxODUxZjE4NWZmZSJ9.l52J4Zvg4s4OfqCv_yZy-pORFRE588pxyntqtji4-jY" class="fr-fic fr-fil fr-dib" width="794" style="width: 796px; height: 284.977px;" height="285"></p><p><strong><span style="font-size: 10pt;">Fig 10. Enable the Halo integrator for Kaseya VSA</span></strong></p><p><br></p><p><strong><em>Note: Host customers will have the Halo integrator hosted for them and will not need to download the Halo Integrator application. </em></strong></p><p><br></p><p>Once enabled, choose which entity data you would like to sync, Clients, Assets, Alerts or all data. Information on syncing alerts in Kaseya is covered in the next section. </p><p><br></p><p><strong><span style="font-size: 14pt;">Alerting</span></strong></p><p>Alert processing can be enabled for Kaseya to have alerts from Kaseya automatically create tickets in Halo. Allowing you to manage alerts from Halo. </p><p><br></p><p>Enable alert processing using "Enable alert processing" under the "Alerting" section. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUyNzFlZWYxLTdiMTktNDhiMC05NWIyLTRiY2FmNTBiNTBmOSJ9._x7lwNkoOBVM2hUDfWjvvxpH61SMdagyVY87zjp4Pfk" class="fr-fic fr-fil fr-dib" width="1280" style="width: 1282px; height: 334.655px;" height="335"></p><p><strong><span style="font-size: 10pt;">Fig 11. Enable Alert Processing</span></strong></p><p><br></p><p>Once enabled, you will need to use the settings below to control how alerts log tickets in Halo. </p><p><br></p><p><strong>New Alert Ticket Type - </strong>Here, choose the ticket type you would like alerts from Kaseya to log. You may wish to create a new ticket type for this or use the "Alert" ticket type we have available out of the box. </p><p><strong>New Alert User -</strong> Here, choose the user you would like alert tickets in Halo to be assigned to if the asset or client associated with the alert cannot be matched to a user in Halo. This will act as a fallback. </p><p><br></p><p><strong>Use AssetName to match Assets to alerts -</strong> When enabled the AssetName of the asset in Kaseya will be used to match assets to alerts in Halo, allowing Halo assets to be linked to the alert ticket automatically. We recommend enabling this. </p><p><br></p><p>Once you have setup alerting configuration, ensure alerts are enabled for the Halo integrator for the integration. Entities to import will either need to be set to "Alerts" if you only want to bring in alert data, or "All" if you want to bring in alert and asset data. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNhOTNiNmMwLTQ4MmEtNGYyZi04MTEyLWU5MTE0ZDhhZDc5NiJ9.kCXnA0Ykpay9_S7pcN_evZGIOHA0cnZq3461FeA_Vsg" class="fr-fic fr-dii"></p><p><strong><span style="font-size: 10pt;">Fig 12. Enable the Halo integrator for alert processing</span></strong></p><p><br></p><p>Now, any alerts triggered in your Kaseya instance will be imported into Halo, logging a ticket for the alert automatically. Alerts will be imported on a schedule. </p>