diff --git a/docs/integration/api-overview.mdx b/docs/integration/api-overview.mdx
index e24044a17..aee0b5ed0 100644
--- a/docs/integration/api-overview.mdx
+++ b/docs/integration/api-overview.mdx
@@ -3,17 +3,19 @@ title: "API Overview"
sidebar_position: 2
---
-Application Programming Interface (APIs) define a contract of service for a set of allowed operations. Device42 features comprehensive RESTful APIs as the primary method of entering, editing, and retrieving data externally and programmatically.
+Device42 provides RESTful APIs that you can use to create, update, and retrieve data programmatically. These APIs are the primary way to integrate Device42 with external systems and automation workflows.
+
+This page provides links to the current Device42 API documentation and to previous Swagger (OpenAPI) YAML files.
:::info
-Please visit our **[API documentation](https://api.device42.com/)** for detailed information on using Device42 APIs.
+For endpoint details, request formats, and examples, see the **[Device42 API documentation](https://api.device42.com/)**.
:::
-## Device42 Swagger Files
+## Download Previous Swagger Files
-The current version of the API is hosted at [api.device42.com](https://api.device42.com/).
+The current API version is hosted at [api.device42.com](https://api.device42.com/).
-You can find the previous versions of our Swagger (OpenAPI) YAML files below:
+You can download previous Swagger (OpenAPI) YAML files below:
- v19.05.10
- v19.04.30
@@ -21,4 +23,3 @@ You can find the previous versions of our Swagger (OpenAPI) YAML files below:
- v19.02.00
- v19.01.00
- v19.00.00
-
diff --git a/docs/integration/external-integrations/aperture-vista-to-device42-migration.mdx b/docs/integration/external-integrations/aperture-vista-to-device42-migration.mdx
index 0f6dfe67b..de14be923 100644
--- a/docs/integration/external-integrations/aperture-vista-to-device42-migration.mdx
+++ b/docs/integration/external-integrations/aperture-vista-to-device42-migration.mdx
@@ -3,44 +3,40 @@ title: "Aperture VISTA to Device42 Migration"
sidebar_position: 1
---
-The Aperture VISTA to Device42 migration works in the following manner: Data is exported from the Aperture VISTA application by first creating Device42 custom views in the Aperture SQL Server database. These views are then exported from Aperture VISTA and saved as `.csv` or Excel files which are then easily imported and mapped into Device42's data architecture.
+The Aperture VISTA to Device42 migration exports data from Aperture VISTA by creating Device42 custom views in the Aperture SQL Server database. These views are exported from Aperture VISTA and saved as `.csv` or Excel files, which are then imported and mapped into Device42’s data architecture.
-Aperture views can be downloaded here: [https://www.device42.com/migrations/aperture/](https://www.device42.com/migrations/aperture/).
+Device42 then automatically creates building, data center, and rack configurations for all rack-mounted devices. With the import completed, Device42’s agentless discovery tool automatically identifies and maps remaining IP-based network devices and intelligent power equipment for ongoing monitoring and management.
-Device42 then automatically creates building, data center, and rack configurations for all rack-mounted devices. With the import completed, Device42’s agentless autodiscovery tool automatically identifies and maps remaining IP-based network devices and intelligent power equipment for ongoing monitoring and management.
+[Download the Aperture VISTA views](https://www.device42.com/migrations/aperture/).
## Import View
-
-
-A long list of SQL views is available to give you the ability to pick and choose the information you want to migrate to Device42 from Aperture VISTA.
+A long list of SQL views lets you select the information you want to migrate from Aperture VISTA to Device42.
-[Download the Aperture VISTA views](https://www.device42.com/migrations/aperture/).
+
## Run View
-
+Run the views to export data from your Aperture VISTA instance.
-By running the views you can easily get data out of your instance of Aperture VISTA.
+
## Save Data to CSV or Excel
+Right-click anywhere on the data and select **Save Results As...**.
+

-Right click anywhere on the data and select **Save Results As...**.
+## Save Your File
-## Saving Your File
+Give the file a name and save the data locally.

-Give the file a name and save the data locally.
+## Download the Bulk Import Tool
-## Downloading the Bulk Import Tool to Map Fields
+[Download the bulk import tool](https://www.device42.com/bulk-data-management/) and use it to map your Aperture VISTA fields to Device42. For detailed instructions, see the [bulk import tool documentation](https://www.device42.com/blog/2015/07/02/bulk-import-your-data-from-any-format-easily-with-new-device42-import-tool/).

-[Download the bulk import tool](https://www.device42.com/bulk-data-management/).
-
-For instructions on how to use the Bulk Import Tool to map your fields, see the [bulk import tool documentation](https://www.device42.com/blog/2015/07/02/bulk-import-your-data-from-any-format-easily-with-new-device42-import-tool/).
-
-If you have any questions, contact support at [support@device42.com](mailto:support@device42.com).
+Contact support at [support@device42.com](mailto:support@device42.com) with any questions.
diff --git a/docs/integration/external-integrations/azure-migrate.mdx b/docs/integration/external-integrations/azure-migrate.mdx
index 9ab4502ec..df591ec5d 100644
--- a/docs/integration/external-integrations/azure-migrate.mdx
+++ b/docs/integration/external-integrations/azure-migrate.mdx
@@ -3,133 +3,139 @@ title: "Azure Migrate"
sidebar_position: 2
---
-You can get to Azure Migrate directly @ [https://portal.azure.com/#create/Microsoft.AzureMigrate](https://portal.azure.com/#create/Microsoft.AzureMigrate)
+The Azure Migrate integration lets you assess and migrate servers to Azure using Device42 as the assessment tool. This page covers how to set up Device42 from the Azure Migrate portal, register an Azure Active Directory user, and export your business applications to Azure.
-## Setting up Device42 from the Azure Migrate Portal
+You can access Azure Migrate directly at [portal.azure.com](https://portal.azure.com/#create/Microsoft.AzureMigrate).
-1\. Begin by signing up for an Azure account if you don’t already have one. You’ll have to provide a credit card to verify your identity, and agree to the conditions to continue:
+## Set Up Device42 From the Azure Migrate Portal
-
+1. Begin by signing up for an Azure account if you don't already have one. You will have to provide a credit card to verify your identity and agree to the conditions to continue.
-2\. Click the button to continue to the Azure portal, and once there, choose “Assess and Migrate servers” as pictured below:
+ 
-
+2. Click the button to continue to the Azure portal, and once there, choose **Assess and Migrate Servers**.
-
+ 
- 3. Next, you’ll want to begin adding migration tools; click “Add a tool.”
+ 
-
+ 
-4\. Choose an existing Resource Group, or click the “Create new” link (highlighted) to create a new one. The “Resource Group” name represents the group of machines you’ll be migrating, and can be a name of your choosing, but should be descriptive. Then click“OK.”
+3. Click **Add a Tool** to begin adding migration tools.
-
+ 
-
+4. Choose an existing Resource Group, or click **Create New** to create a new one. The resource group name represents the group of machines you will be migrating and should be descriptive. Then click **OK**.
-5\. Give your migration project a name, and when finished, click“Next” to continue.
+ 
-
+ 
-6\. Select Device42 as your Azure Migration assessment tool by clicking on it so it is selected as shown below. Click “Next” to choose Device42.
+5. Give your migration project a name and click **Next** to continue.
-
+ 
-7\. You can add a migration tool at this point if know which you want to use, but the default is to skip adding a migration tool for now (you can choose a tool when you are ready to migrate). Make sure the “Skip adding a migration tool for now” checkbox is checked, and click “Next” to continue.
+6. Select Device42 as your Azure Migration assessment tool by clicking on it, then click **Next**.
-
+ 
-8\. Review your tool choice(s) and then click “Add tool(s)” to continue.
+7. You can add a migration tool at this point if you know which one you want to use. Otherwise, leave **Skip adding a migration tool for now** checked and click **Next**.
-
+ 
-You’ll see confirmation the deployment has been initialized.
+8. Review your tool choices and click **Add Tool(s)** to continue.
-9\. Click “Learn more” to head to the Device42 information page.
+ 
-
+ You will see confirmation that the deployment has been initialized.
-10\. From the Device42 information page, click the orange “Try it now, free” button to jump over to the Device42 download page.
+ 
-
+9. Click **Learn More** to go to the Device42 information page.
-11\. Fill out the form and click “Start your Free Trial” to download Device42. Your download should be e-mailed to you immediately.
+ 
-
+10. From the Device42 information page, click the orange **Try It Now, Free** button to go to the Device42 download page.
-For help installing Device42, head over to the Device42 documentation: [https://docs.device42.com](https://docs.device42.com). 1. The [Getting Started with Installation section is a great place to begin! [installation](getstarted/deploy-device42/index.mdx).
+11. Fill out the form and click **Start Your Free Trial** to download Device42. Your download link will be emailed to you.
-2\. Once you’ve installed, you’ll want to begin discovering your environment. See the “Getting started with autodiscovery” section of the documentation here: [getstarted/getting-started-with-auto-discovery.mdx](/getstarted/getting-started-with-auto-discovery.mdx).
+ 
-3\. When you’ve finished with discovery and assessment, you can export your discovered data back to Microsoft Azure. Instructions on exporting can be found here: [applications/business-services/building-business-services-in-device42.md#section-15](apps/business-services/building-business-services-in-device42.mdx#section-15).
+Once Device42 is installed, start discovering your environment:
+
+- For installation help, see the [Getting Started with Installation](/getstarted/deploy-device42) section of the documentation.
+- To begin discovering your environment, see [Getting Started with Discovery](/getstarted/getting-started-with-auto-discovery).
+- To export discovered data back to Microsoft Azure, see [Building Business Services in Device42](/apps/business-services/building-business-services-in-device42).
* * *
-## Exporting your Business Apps to Azure for Migration
+## Export Your Business Apps to Azure for Migration
+
+Complete the following steps to register an Azure Active Directory user, collect the required credentials, and export your business applications from Device42.
-### Register an Azure Active Directory user
+### Register an Azure Active Directory User
-1\. Login to Azure Portal, and create an "App Registration" in Azure Active Directory. You'll need this user to authenticate to Azure when uploading your export. Create a User:
+1. Log in to the Azure portal and create an **App Registration** in Azure Active Directory. You will need this user to authenticate to Azure when uploading your export.
-
+ 
-2\. Create Client Secret and Save the value for Device42.
+2. Create a client secret and save the value for Device42.
-
+ 
-3\. Create a new Migration Project _(if you haven't already; see the prior section on this page)_.
+3. Create a new migration project if you haven't already (see the [prior section](#set-up-device42-from-the-azure-migrate-portal) on this page).
-
+ 
-4\. Under Subscriptions > Subscription > Access Control (IAM), click "Add" under Add a role assignment.
+4. Under **Subscriptions > Subscription > Access Control (IAM)**, click **Add** under **Add a Role Assignment**.
-5\. Select a "Contributor" role and type the name of the app registration in the "Select" text box (in this case, the name of our app was _dev\_device42_).
+5. Select the **Contributor** role and type the name of the app registration in the **Select** text box.
-6\. Select the app registration and Save. This gives the correct permissions to export data from Device42 to Azure.
+6. Select the app registration and click **Save**. This grants the correct permissions to export data from Device42 to Azure.
-
+ 
-### Collect required information from Azure
+### Collect Required Information From Azure
-**Collect the following information from Azure:**
+Collect the following information from Azure before exporting:
-1\. **Tenant ID:** Azure Active Directory -> Properties
+1. **Tenant ID:** **Azure Active Directory > Properties**
-
+ 
-2\. **Subscription ID:** Subscriptions
+2. **Subscription ID:** **Subscriptions**
-
+ 
-3\. **Client ID:** Azure Active Directory -> App registrations
+3. **Client ID:** **Azure Active Directory > App Registrations**
-
+ 
-4\. **Client Secret:** Saved from app registration creation.
+4. **Client Secret:** Saved from app registration creation.
-5\. **Migrate Project Name:** The name you chose when creating the project.
+5. **Migrate Project Name:** The name you chose when creating the project.
-### Export your Business Application(s) from Device42
+### Export Your Business Applications From Device42
-1\. Login to Device42 and go to Business Apps. Select one or more Business App(s) to export by checking the check-boxes next to them, and Choose ‘Create Migration for Selected Objects’.
+1. Log in to Device42 and go to **Business Apps**. Select one or more business apps to export by checking the checkboxes next to them, then choose **Create Migration for Selected Objects**.
-
+ 
-2\. Select ‘Azure’ as your _Target_ from the drop-down.
+2. Select **Azure** as your target from the dropdown.
-
+ 
-3\. Enter Migrate Project information from Azure collected in the last step.
+3. Enter the migration project information collected in the previous step.
-
+ 
-4\. Click Export. Go back to the Azure Migrate Hub, and click 'Refresh.' You should now see your exported data in Azure!
+4. Click **Export**. Go back to the Azure Migrate Hub and click **Refresh**. Your exported data should now be visible in Azure.
-
+ 
-## Reviewing your Device42 exports in Azure Migrate
+## Review Your Device42 Exports in Azure Migrate
-After exporting your Business Applications from Device42 _(__as explained in the prior section)_ to the Azure Migrate portal, log back into the Azure Migrate portal, or refresh if you are already logged in. You should see something similar to the following example _(but with your data, of course)_.
+After exporting your business applications to the Azure Migrate portal, log back in (or refresh if already logged in). You should see your data displayed similarly to the following examples.

@@ -137,4 +143,4 @@ After exporting your Business Applications from Device42 _(__as explained in the

-**If you need help with steps or processes discussed on this page and haven't found the answer here, please don’t hesitate to reach out to [support@device42.com](mailto:support@device42.com)!**
+Contact [support@device42.com](mailto:support@device42.com) if you need help with any steps on this page.
diff --git a/docs/integration/external-integrations/carbonite-migration.mdx b/docs/integration/external-integrations/carbonite-migration.mdx
index 0aae5db22..6bd01a8db 100644
--- a/docs/integration/external-integrations/carbonite-migration.mdx
+++ b/docs/integration/external-integrations/carbonite-migration.mdx
@@ -3,7 +3,7 @@ title: "Carbonite Migration"
sidebar_position: 3
---
-Migrate devices using the Device42 Carbonite Migrate feature.
+The Device42 Carbonite Migrate feature lets you migrate devices directly from Device42. This page covers system requirements, creating migration jobs, and controlling and managing jobs from the Device42 interface.
## System Requirements
@@ -11,113 +11,117 @@ The following software must be installed and running:
- Device42 16.22.00+
- Carbonite Agent software version 8.4.0.313+ installed and running on both source and target machines.
-- Source and target machines must have all necessary ports open and accessible as mentioned in the Carbonite documentation. Please see the **Windows** section of the following [document](https://download.doubletake.com/_download/8.4/8.4.0.0/Docs/Reference/ReferenceGuide.htm#Servers/Ports.htm).
+- Source and target machines must have all necessary ports open and accessible as described in the Carbonite documentation. See the **Windows** section of the following [document](https://download.doubletake.com/_download/8.4/8.4.0.0/Docs/Reference/ReferenceGuide.htm#Servers/Ports.htm).
- Source and target machines must have valid Carbonite Move licenses installed and activated.
-- (Optional) If you require fine tuning of the various created migration job options, more features, or failover trigger configuration, the source and target machines need to have Carbonite Migrate Replication Console installed (usually installed by default during the Carbonite Agent installation process). The machines you want to monitor or control must be added to the Replication console’s **Servers** list.
+- (Optional) If you require fine-tuning of the migration job options, more features, or failover trigger configuration, the source and target machines need to have Carbonite Migrate Replication Console installed (usually installed by default during Carbonite Agent installation). The machines you want to monitor or control must be added to the Replication Console's **Servers** list.

-- Both the source and client machines need to have compatible Windows operating system versions installed. Please read Carbonite Agent’s official documentation to see all the requirements for the Full Server Migration job type here: [Full server migration requirements](https://download.doubletake.com/_download/8.4/8.4.0.0/Docs/Migrate/Windows/MigrateWindowsUsersGuide.htm#MigrateExisting/MigrateExistingRequirements.htm).
+- Both the source and target machines need compatible Windows operating system versions. See the Carbonite Agent documentation for all requirements for the Full Server Migration job type: [Full server migration requirements](https://download.doubletake.com/_download/8.4/8.4.0.0/Docs/Migrate/Windows/MigrateWindowsUsersGuide.htm#MigrateExisting/MigrateExistingRequirements.htm).
-## Create a Carbonite Migration Job from D42 Devices
+## Create a Carbonite Migration Job
-- From D42’s main page, click on the top menu bar’s _Tools_ link and select _Migrations > Migration Jobs_.
+1. From the Device42 main menu, click **Tools** and select **Migrations > Migration Jobs**.
-
+ 
-- On the Migration Jobs list page, click _Add Migration Job_ at the top right.
+2. On the Migration Jobs list page, click **Add Migration Job** at the top right.
-
+ 
-- On the next page, you need to fill out the _Source_ and _Target_ machines’ IP addresses and select their _Secrets_. Do this by clicking on the lens icon next to each field or typing in the IP address or secret directly into the text box.
+3. Fill in the **Source** and **Target** machines' IP addresses and select their **Secrets**. Do this by clicking the lens icon next to each field or typing the IP address or secret directly into the text box.
-
+ 
-- If you click the lens icon, you are prompted with a pop-up window which lists all existing IP addresses in the system and the _Device_ name associated with that IP address. Please note that before selecting an IP address, you should make sure it is attached to a device in D42. You can also search for a device by its name by entering the term in the search field.
+4. If you click the lens icon, a pop-up window lists all existing IP addresses in the system and the device name associated with each. Note that the IP address must be attached to a device in Device42 before selecting it. You can also search for a device by name using the search field.
-
+ 
-- The process is the same for selecting the _Secret_, which must first be created in D42 and consist of the username and password on the source and target machines.
+5. The process is the same for selecting the **Secret**, which must first be created in Device42 and must include the username and password for the source and target machines.
-
+ 
-- Next you have the option of leaving the source server up or shut down after a failover. The option for shutting down the source server is selected by default and should not normally be changed as it will cause IP collisions with the target server as the target will become a clone of the source (including its IP settings).
+6. You have the option to leave the source server running or shut it down after a failover. The shutdown option is selected by default and should not normally be changed, as leaving it running will cause IP collisions — the target becomes a clone of the source, including its IP settings.
-
+ 
-- After the steps above are complete, the _Verify Job_ option on the bottom control panel is enabled; click it to save the selected settings. It may take a few minutes to complete as D42 waits for Carbonite Agent to generate the recommended job options and verify if the job can be successfully created.
+7. Once the steps above are complete, the **Verify Job** option on the bottom control panel is enabled. Click it to save the selected settings. It may take a few minutes to complete, as Device42 waits for Carbonite Agent to generate the recommended job options and verify that the job can be successfully created.
-
+ 
-- If everything is successful, you should see a similar verification table displayed below the fields.
+8. If verification is successful, a verification table is displayed below the fields.
-
+ 
-- If any errors are found, they will be displayed in this table and can only be fixed by using the Carbonite Replication console or performing system administrative tasks required to fix a particular failed verification step. In this case you will not be able to save this job until the issues are resolved. If resolved, you should click the _Verify Job_ button again to have the job be verified.
-- You can now click any of the Save buttons on the bottom control row to save this job in D42 and have it created on the target server you selected. If you click the regular _Save_ button, you will be taken to the Migration Jobs list page.
+9. If any errors are found, they will be shown in this table and can only be fixed using the Carbonite Replication Console or by performing the system administrative tasks required to resolve each failed step. The job cannot be saved until all issues are resolved. Once resolved, click **Verify Job** again to re-verify.
-
+10. Click any of the **Save** buttons on the bottom control row to save the job in Device42 and create it on the target server. Clicking **Save** takes you to the Migration Jobs list page.
+
+ 
## Control Created Migration Jobs
-- From the jobs list page, you’re now able to control the created job via the links next to each job’s name.
+From the jobs list page, you can control created jobs using the links next to each job's name.

### Control a Single Job via the Links
-- You can start, stop, pause and failover and refresh each job individually by clicking any one of the corresponding job commands. This mimics the functionality of the Carbonite Replication console. Here we click _Start_ to start the first job; after that it may take a few minutes to get the job started and have the Activity column update initially. If the connection between your D42 machine and the source/target servers is slow, you will have to click the _Refresh Status_ link to query the target server again to update the status of the job as we do below.
+You can start, stop, pause, failover, and refresh each job individually by clicking the corresponding job command links. This mirrors the functionality of the Carbonite Replication Console.
+
+Clicking **Start** starts the first job. It may take a few minutes for the job to start and for the **Activity** column to update. If the connection between your Device42 machine and the source or target servers is slow, click the **Refresh Status** link to query the target server again and update the job status.

-- You will need to click the _Refresh Status_ link to see if the initial mirroring has completed.
+Click **Refresh Status** to check whether the initial mirroring has completed.

-- Once the _Activity_ status changes to _Protecting_, the job will failover if any of the triggers set up in the Carbonite Replication console are triggered, or you initiate it manually by clicking the _Failover_ link.
-- You can also pause the job by clicking the _Pause_ link to halt whatever is going on, and then resume the job at the point it left off by clicking the _Start_ button.
-- You can stop the job by clicking the _Stop_ button to have the job stopped completely, and then clicking _Start_ to start it back up from the very beginning.
-- If you click _Failover_, the failover migration process will begin transforming your target machine into source and the source machine will be shut down.
-- Once this process has started, it cannot be undone, and when it completes, the source and target IPs on the Migration Jobs list page will become the same. At this point, no other actions can be performed on this job and you will get a message warning you of that if you try the action links. The only thing that can be done at this point if you’re satisfied with the migration is to delete it via the edit screen.
+- Once the **Activity** status changes to **Protecting**, the job will failover if any triggers set up in the Carbonite Replication Console are triggered, or if you initiate it manually by clicking the **Failover** link.
+- Click **Pause** to halt the job and **Start** to resume it from where it left off.
+- Click **Stop** to stop the job completely. Click **Start** to restart it from the beginning.
+- Clicking **Failover** begins the failover migration process, transforming the target machine into the source and shutting down the source machine.
+- Once this process has started, it cannot be undone. When it completes, the source and target IPs on the Migration Jobs list page will be the same. At that point, no further actions can be performed on the job. The only remaining option is to delete it via the edit screen.
### Control Multiple Jobs via Actions
-- You can control multiple jobs at once by selecting several jobs on the Migration Jobs list page and selecting one of the _Action_ drop-down commands.
+You can control multiple jobs at once by selecting several jobs on the Migration Jobs list page and choosing a command from the **Action** dropdown.

-- All the functionality described in the _Controlling a Single Job via the Links_ section above can be performed on multiple jobs.
-- Here we select _Start the selected jobs_ action from the menu and click the lightning bolt button to the right to run this command. You are prompted to confirm this action. Click _Yes, I’m sure_ to continue.
+All the functionality described in the [Control a Single Job via the Links](#control-a-single-job-via-the-links) section can be performed on multiple jobs.
+
+Select **Start the selected jobs** from the action menu and click the lightning bolt button to run the command. You are prompted to confirm the action — click **Yes, I'm Sure** to continue.

-– This confirmation prompt also applies to all other bulk actions except _Export selected items to CSV_.
+This confirmation prompt applies to all bulk actions except **Export selected items to CSV**.
-- Some delay is possible at this point if if you are executing a bulk command on a large number of jobs as the execution occurs in a queue on your Carbonite Agent target server.
+Some delay is possible when executing a bulk command on a large number of jobs, as execution occurs in a queue on the Carbonite Agent target server.

-- You can now run the _Refresh the selected jobs_ action item to have the status of all your selected jobs updated.
+Run the **Refresh the selected jobs** action to update the status of all selected jobs.


-– The status for both jobs has been updated.
+The status for both jobs has been updated.
-- **Note**: If any job present in D42 has been deleted on your target server externally, it will be automatically removed from D42 during a bulk refresh.
+**Note:** If any job present in Device42 has been deleted on the target server externally, it will be automatically removed from Device42 during a bulk refresh.
### Control a Single Job via the Action Menu
-- Any single job can also be controlled via the view page’s _Action_ menu. Click on the job name you want to control in the jobs list.
+Any single job can also be controlled via the view page's **Action** menu. Click the job name on the jobs list to open it.


-– Select the action you want to perform. Here we selected _Stop Job_.
+Select the action you want to perform. In this example, **Stop Job** is selected.
-- After selecting the action, go back to the Migrate Jobs list page and the status of the job should be updated. If there’s a delay between your D42 machine and your target server, click the _Refresh Status_ link to refresh the job status.
+After selecting the action, go back to the Migration Jobs list page to see the updated job status. If there is a delay between your Device42 machine and the target server, click **Refresh Status** to refresh the job status.

@@ -125,78 +129,80 @@ The following software must be installed and running:
**Delete a Single Job**
-- To delete a job, click on the name of the job in the list and click _Edit_ button at the top right.
+To delete a job, click the job name in the list and then click the **Edit** button at the top right.

-- Now click _Delete_ at the bottom left of the Change Migration Job page. The job will be deleted from D42 and the target server running Carbonite Migrate.
+Click **Delete** at the bottom left of the Change Migration Job page. The job will be deleted from Device42 and from the target server running Carbonite Migrate.

-**Deleting Multiple Jobs via the Action Menu**
+**Delete Multiple Jobs via the Action Menu**
-- Check the jobs you would like to delete from the Migration Jobs list page and select _Delete with Detailed Confirmation_ from the _Action_ menu.
+Check the jobs you want to delete from the Migration Jobs list page and select **Delete with Detailed Confirmation** from the **Action** menu.

-- Click the lightning bolt button to the right to begin the process. Confirm your action on the next page. Your jobs will be deleted from D42 and the target server(s) running Carbonite Migration agent.
+Click the lightning bolt button to begin the process. Confirm the action on the next page. The jobs will be deleted from Device42 and from the target server(s) running Carbonite Migration agent.
### Modify Job Options
-**Shutdown Source Server after Failover**
+**Shutdown Source Server After Failover**
-You can change the option of shutting down the source server after a failover. This is mostly used for troubleshooting or testing the failover feature. Note that if you disable this option, the source and target will have the same IP address assigned at the end of the failover and this might cause issues where you will have to shutdown the source server manually.
+You can change whether the source server is shut down after a failover. This is mostly used for troubleshooting or testing the failover feature. Note that if you disable this option, the source and target will share the same IP address at the end of the failover, which may require you to shut down the source server manually.
-- Select the job you want to change this option on by clicking the job’s name on the Migration Jobs list page.
+1. Click the job name on the Migration Jobs list page to open it.
-
+ 
-- On the following page, click _Edit_ at the top right of the page.
+2. Click **Edit** at the top right.
-
+ 
-- On the next page, uncheck the _Shutdown source server after failover_ checkbox and click _Save_ at the bottom to have this option disabled on your Carbonite Agent target server.
+3. Uncheck the **Shutdown source server after failover** checkbox and click **Save** to disable this option on the Carbonite Agent target server.
-
+ 
### Change and Update Credentials
-If you have changed the username or password of your target or source servers, you can update these in the existing job without having to recreate it.
+If you have changed the username or password of your target or source servers, you can update these in the existing job without recreating it.
-- Begin by clicking the job name you want to edit on the job list page and click Edit button on the View Migration Job page that follows.
+1. Click the job name on the job list page, then click the **Edit** button on the View Migration Job page.
-
+ 
-- In this example, we have added a new username _vagrant_ to the source and target machines, so we will select both the source and the target secrets to change. But you can also change just the source or the target secret.
+2. Select the source and target secrets you want to change. You can update just the source, just the target, or both.
-
+ 
-- After the new secrets have been selected, just click _Save_ button at the bottom or _Save and continue editing_ to see if the changes have been accepted by the server and have been saved successfully. If there were issues while trying to update the credentials, the new settings will be canceled and the old secret will still show.
+3. After selecting the new secrets, click **Save** or **Save and Continue Editing** to confirm the changes. If there were issues updating the credentials, the new settings will be canceled and the old secret will still show.
-
+ 
-– The source and target secrets have been changed and saved to the Carbonite target server’s job and the D42 database.
+ The source and target secrets have been updated and saved to the Carbonite target server's job and the Device42 database.
-- You can also verify that the credentials update operation has successfully completed by examining the job in the Carbonite Replication console’s Jobs tab and clicking the _View Recent Activity_ button in the job control row.
+4. You can verify that the credentials update completed successfully by examining the job in the Carbonite Replication Console's **Jobs** tab and clicking **View Recent Activity** in the job control row.
-
+ 
-- **Note**: If you only updated the password on the source or target, you would first need to create a new D42 secret with the new login credentials information or update your existing secret from D42’s _Resources > Secrets_ menu.
+**Note:** If you only updated the password on the source or target, you must first create a new Device42 secret with the new login credentials or update the existing secret from **Resources > Secrets**.

-- Once updated or added, you can perform the above procedure for the job(s) of your choice.
+Once updated or added, you can perform the above procedure for the jobs of your choice.
### Export Jobs to a CSV File
-You can export the jobs displayed on the Migration Jobs list page via the _Export selected items to CSV_ Action menu item.
+You can export the jobs displayed on the Migration Jobs list page using the **Export selected items to CSV** action.
+
+1. Select the jobs you want to export and choose **Export selected items to CSV** from the **Action** menu. Click the lightning bolt icon to begin.
+
+ 
-- Select the jobs you want exported to CSV from the list and select _Export selected items to CSV_ from the Action menu. Click the lightning bolt icon to begin the process.
+2. You are prompted to save the `.csv` file to a directory of your choice. The file will be named `migration-job.csv`.
-
+3. Note that if you are using Excel 2019 or later, the file must be imported rather than simply opened. Opening the file directly through Excel will result in incorrect formatting and some fields may be missing.
-- You are prompted to save the csv file to a directory of your choice. The file will have a name **migration-job.csv**.
-- Note that if you’re using Excel 2019+, the file needs to be imported and not simply opened. If you just open the file through Excel, you will have incorrect formatting of the data and some fields may be missing.
-- The resulting file will look like the following.
+ The resulting file will look similar to the following.
-
+ 
diff --git a/docs/integration/external-integrations/cherwell-integration.mdx b/docs/integration/external-integrations/cherwell-integration.mdx
index f5c5849a6..1998cbc22 100644
--- a/docs/integration/external-integrations/cherwell-integration.mdx
+++ b/docs/integration/external-integrations/cherwell-integration.mdx
@@ -7,7 +7,7 @@ Use the [Device42-Cherwell integration](https://www.device42.com/integrations/ch
The Device42-Cherwell integration requires a working Cherwell installation, Device42 instance, and assumes a Linux server with Python version 3.5 or later.
-## Configuring Cherwell
+## Configure Cherwell
To prepare Cherwell to accept relationship data from Device42, two new Configuration Item (CI) types must be created in Cherwell: one for **apps** and one for **services**.
@@ -21,7 +21,7 @@ Follow these steps to create the new CIs:

-3. Obtain the **Internal ID** of the new Application Business Object CI you just created (you'll need it for the config file) before closing the window by selecting the **Advanced** icon and clicking **Business Object ID**:
+3. Obtain the **Internal ID** of the new Application Business Object CI you just created (you will need it for the config file) before closing the window by selecting the **Advanced** icon and clicking **Business Object ID**:

@@ -31,7 +31,7 @@ Follow these steps to create the new CIs:
5. Add a second new CI business object named `Config-Service` to Cherwell for Services by repeating Steps 2-4.
-## Configuring the Device42-Cherwell Integration
+## Configure the Device42-Cherwell Integration
To sync your discovered hardware, servers, software, services, or assets (CIs) from Device42 to Cherwell, configure the integration:
@@ -39,12 +39,19 @@ To sync your discovered hardware, servers, software, services, or assets (CIs) f
2. Download the sample `mapping.xml` configuration file from [Device42's GitHub](https://github.com/device42/cherwell_device42_sync/blob/master/mapping.xml.sample) and put it into the folder you created in Step 1.
3. Configure the integration credentials to allow connection between Device42 and Cherwell:
- Save a copy of `mapping.xml.sample` as `mapping.xml`.
- - Enter your Cherwell and Device42 **URLs**, **user names**, and **passwords** in their respective sections (lines 3-11), and for Cherwell only, the `client_id` - find it in your Cherwell instance under **Cherwell Service Management Administration > Security > Edit REST API Client Settings > Client Key**.
-4. Configure the tasks section (below the credential settings) by entering the Cherwell Business Object IDs you saved from above, mapping each Device42 API resource to be synced (the `resource` value) to the appropriate fields in Cherwell (the `target` value). It is very important to ensure you've updated the configuration completely, mapping all of the details you are syncing from Device42 to their appropriate default endpoints in Cherwell (for example, `service_level`). Should you have trouble or need debugging, there is a `DEBUG` variable in `lib.py` which can be set to `True` or `False`.
-5. Execute a one-time CI sync by running the following command: `python sync.py`.
-6. Schedule your syncs to run automatically by adding a `crontab` entry that will execute `sync.py` as often as you deem necessary, depending on the rate of change in your environment and existing discovery job schedules. This [crontab generator](https://crontab-generator.org/) can help you generate crontab syntax appropriate for your schedule. This example runs twice a day at noon and midnight:
+ - Enter your Cherwell and Device42 **URLs**, **usernames**, and **passwords** in their respective sections (lines 3-11), and for Cherwell only, the `client_id` — find it in your Cherwell instance under **Cherwell Service Management Administration > Security > Edit REST API Client Settings > Client Key**.
+4. Configure the tasks section (below the credential settings) by entering the Cherwell Business Object IDs you saved from above, mapping each Device42 API resource to be synced (the `resource` value) to the appropriate fields in Cherwell (the `target` value). Ensure you have updated the configuration completely, mapping all of the details you are syncing from Device42 to their appropriate default endpoints in Cherwell (for example, `service_level`). Should you have trouble or need debugging, there is a `DEBUG` variable in `lib.py` which can be set to `True` or `False`.
+5. Execute a one-time CI sync by running:
-```0 */12 * * * python sync.py >/dev/null 2>&1```
+ ```
+ python sync.py
+ ```
+
+6. Schedule your syncs to run automatically by adding a `crontab` entry that executes `sync.py` as often as needed, depending on the rate of change in your environment and existing discovery job schedules. This [crontab generator](https://crontab-generator.org/) can help you generate the right syntax. The following example runs twice a day at noon and midnight:
+
+ ```
+ 0 */12 * * * python sync.py >/dev/null 2>&1
+ ```
## Application Group Configuration for Cherwell
@@ -71,7 +78,7 @@ Each section must contain the following attributes:
Each section must contain one or more upstream and downstream relationships. The section represents a one-to-many downstream relationship and must contain the following attributes:
- `d42-model`: The name of the CI (model) in Device42 of the 'child' in relationship
-- `id`: The ID of the relationship (the `CI links Downstream CIs` relationship should be used in most cases). This value can be obtained in Cherwell from **Cherwell Service Management Administration > blueprint > Config > Edit relationships... > relationship > Edit > Advanced > Relationship ID**. Please make sure the relationship has a reversed one (`Upstream`).
+- `id`: The ID of the relationship (the `CI links Downstream CIs` relationship should be used in most cases). This value can be obtained in Cherwell from **Cherwell Service Management Administration > blueprint > Config > Edit relationships... > relationship > Edit > Advanced > Relationship ID**. Make sure the relationship has a reversed one (`Upstream`).
The Service Instances and Application Components sections must include the section for creating new objects in Cherwell. Mappings are not applicable for devices, as they should be processed in their own tasks.
diff --git a/docs/integration/external-integrations/cloud-services-settings.mdx b/docs/integration/external-integrations/cloud-services-settings.mdx
index a09354e56..d629e3bec 100644
--- a/docs/integration/external-integrations/cloud-services-settings.mdx
+++ b/docs/integration/external-integrations/cloud-services-settings.mdx
@@ -6,9 +6,9 @@ sidebar_position: 6
import ThemedImage from '@theme/ThemedImage'
import useBaseUrl from '@docusaurus/useBaseUrl'
-The Cloud Services page is used to configure your global external integration settings and the option to disable (or enable) the [Enriched Data](auto-discovery/enriched-data/index.mdx) normalization feature for discovered data. The contents of the Cloud Services page were formerly part of the Global Settings page.
+The Cloud Services page configures your global external integration settings and the [Enriched Data](/auto-discovery/enriched-data) normalization feature for discovered data. The contents of this page were formerly part of the Global Settings page.
-See the [Cloud Connector](device42-cloud-connector-overview.mdx) docs page for an explanation of how Device42 manages communication with third-party services.
+See the [Cloud Connector](/integration/external-integrations/device42-cloud-connector-overview) page for an explanation of how Device42 manages communication with third-party services.
## Integration Settings
@@ -28,4 +28,4 @@ Navigate to **Tools > Cloud Services** and click the **Edit** button to make cha
- **Device42 GUID:** GUID of your Device42 instance (read-only). Click **Regenerate Instance GUID** at the upper right of the page (in view mode) for a new GUID.
- **Cloud Connector:** Select your Cloud Connector region.
- **Cloud Services:** Device42 checks your license and registration status to determine whether Cloud Services are ready. Contact [support@device42.com](mailto:support@device42.com) if your Cloud Services are not ready.
-- **EnrichAI:** You can use this option to disable the Enriched Data integration if you want. Click **disable** and then **Save** to disable the service. You can enable the service again at any time.
+- **EnrichAI:** Enables or disables the Enriched Data integration. Click **Disable** and then **Save** to disable the service. You can re-enable it at any time.
diff --git a/docs/integration/external-integrations/collect-node-data-from-device42-for-rundeck.mdx b/docs/integration/external-integrations/collect-node-data-from-device42-for-rundeck.mdx
index 685be6930..de2642921 100644
--- a/docs/integration/external-integrations/collect-node-data-from-device42-for-rundeck.mdx
+++ b/docs/integration/external-integrations/collect-node-data-from-device42-for-rundeck.mdx
@@ -3,38 +3,40 @@ title: "Rundeck Node Data Integration"
sidebar_position: 25
---
-Device42 offers a Rundeck integration plugin that can dynamically pull node data from Device42's CMDB.
+The Device42 Rundeck integration plugin dynamically pulls node data from Device42 into Rundeck, keeping your node inventory up to date for job execution. This page covers how to install and configure the plugin, use filters, and work with Device42 nodes in Rundeck.
-## Installation
+## Install the Plugin
-To install the Rundeck plugin, Device42 offers a precompiled jar file available at [Device42's Rundeck Integration Page](https://www.device42.com/integrations/rundeck/). Alternatively, you can clone the repository from [Device42's Github page](https://github.com/device42) and build the plugin using Gradle. After downloading or compiling the plugin, it should be placed in Rundeck's plugin folder. On Ubuntu the default location for this is /etc/rundeck/libext.
+Download a precompiled JAR file from the [Device42 Rundeck Integration page](https://www.device42.com/integrations/rundeck/), or clone the repository from [Device42's GitHub page](https://github.com/device42) and build the plugin using Gradle.
-- Note, Java 1.8+ is required.
+After downloading or compiling the plugin, place it in Rundeck's plugin folder. On Ubuntu, the default location is `/etc/rundeck/libext`.
-## Configuration
+Note: Java 1.8 or later is required.
-To set up filters, add a new Rundeck resource to the project you are on through Configuration and select “Devices from D42”. Enter your Device42 url and credentials, and then you can enter filter values.
+## Configure the Plugin
+
+To set up filters, add a new Rundeck resource to your project through **Configuration** and select **Devices from D42**. Enter your Device42 URL and credentials, then enter your filter values.

## Use Filters
-We’ve included some common filters: tags, os, service\_level, and customer, but you can also enter any Device42 API endpoint as a filter including custom fields. For a full list please visit [Device42 API Page](https://api.device42.com/#devices).
+The plugin includes common predefined filters: `tags`, `os`, `service_level`, and `customer`. You can also enter any Device42 API endpoint as a filter, including custom fields. For a full list, see the [Device42 API documentation](https://api.device42.com/#devices).
- _Using predefined filters in Rundeck_
+
-If you would like to query nodes from Device42 based on any other information available from Device42's API, including custom fields, you can use the Filter Params section to enter those fields.
+To query nodes based on any other information available from the Device42 API, including custom fields, use the **Filter Params** section.
- _Configuring custom filter parameters based on Device42 API endpoints_
+
## Work with Device42 Nodes in Rundeck
-After adding the filters, you will now be able to see which nodes Rundeck is pulling into Device42 by selecting the “Nodes” option in Rundeck.
+After adding your filters, select **Nodes** in Rundeck to see which nodes are being pulled from Device42.

-By drilling down to one of the nodes we could also see the synchronized information about node data including building, room and rack information about a device, operating system information, device type, and other information when applicable such as a virtual machine’s host.
+Drilling down into a node shows synchronized details including building, room, rack, operating system, device type, and — where applicable — virtual machine host information.

-Now when creating Rundeck jobs you no longer have to worry about tracking down your node data to make sure you run it on the proper systems. Device42 will keep your data up-to-date, eliminating one more hurdle form your devops workflow. Furthermore, if you do not set a cache value, scheduled jobs will refresh the list of nodes to run on at the time they run making sure you have the most up-to-date list of nodes. If you wish to use smart filters for the specific jobs feel free to use the default filtering mechanizm of the Rundesk - all collected Device42 attributes are stored as Node properties, tags or attributes.
+When creating Rundeck jobs, Device42 keeps your node data current so you always run jobs on the correct systems. If you do not set a cache value, scheduled jobs refresh the node list at runtime. All collected Device42 attributes are stored as node properties, tags, or attributes, so you can use Rundeck's built-in filtering for specific jobs.
diff --git a/docs/integration/external-integrations/cyberark-integration.mdx b/docs/integration/external-integrations/cyberark-integration.mdx
index d8cc3bb1c..7bc44cdd3 100644
--- a/docs/integration/external-integrations/cyberark-integration.mdx
+++ b/docs/integration/external-integrations/cyberark-integration.mdx
@@ -7,7 +7,7 @@ import ThemedImage from '@theme/ThemedImage'
import useBaseUrl from '@docusaurus/useBaseUrl'
import account from '/assets/images/cyberark-integration/create_account_for_d42_cyberark.png'
-Each Device42 autodiscovery job is configured to use one or more sets of system credentials. If you already use CyberArk to manage passwords and other secrets, or simply don't want to use Device42 for this purpose, the Device42 CyberArk integration allows Device42 to securely store and retrieve these credentials externally as your primary secret management solution.
+Each Device42 discovery job is configured to use one or more sets of system credentials. If you already use CyberArk to manage passwords and other secrets, the Device42 CyberArk integration allows Device42 to securely retrieve these credentials from CyberArk as your primary secret management solution.
CyberArk offers useful features such as automatic password rotation, which can be configured to rotate secrets per your specific corporate policies and industry guidelines.
@@ -19,13 +19,10 @@ Passwords retrieved from CyberArk are not viewable in Device42.
The CyberArk AIMWebService API is needed for the integration. To use the API, purchase and install the [Central Credential Provider (CCP) plugin](https://docs.cyberark.com/credential-providers/latest/en/content/ccp/installation.htm) on CyberArk.
-**Configuring CyberArk:**
-
-- Log in to CyberArk as an administrator.
-- Select the **Applications** tab, then click **Add Application**.
-- Create an account for Device42.
-- Click **Add**.
-- Check the box to **Allow extended authentication restrictions**.
+1. Log in to CyberArk as an administrator.
+2. Select the **Applications** tab, then click **Add Application**.
+3. Create an account for Device42 and click **Add**.
+4. Check the box to **Allow Extended Authentication Restrictions**.
@@ -81,15 +78,14 @@ sources={{
style={{ width: '70%' }}
/>
-## Note on Password Matching
+## Password Matching
-The following note in the UI describes how passwords are retrieved and matched between CyberArk and Device42 systems:
+By default, passwords are looked up by name in CyberArk by matching the Password label in Device42. If no label is provided, the username is matched directly.
-> By default, passwords are looked up by name in CyberArk by matching the Password label in Device42. If no label is provided then the username will be matched directly.
-You may also customize the Folder or Safe from which the password is retrieved by utilizing the Password Custom fields named Folder and Safe.
+You can also customize the Folder or Safe from which the password is retrieved using the Password Custom fields named `Folder` and `Safe`.
### Long and Short Account Names
-If your CyberArk account uses a long account name, enter it in the Secret label field for matching purposes.
+If your CyberArk account uses a long account name, enter it in the **Secret Label** field for matching purposes.
-If your CyberArk account uses a short username, enter it in the Secret username field for the discovery job.
\ No newline at end of file
+If your CyberArk account uses a short username, enter it in the **Secret Username** field for the discovery job.
\ No newline at end of file
diff --git a/docs/integration/external-integrations/delinea-secret-server-integration.mdx b/docs/integration/external-integrations/delinea-secret-server-integration.mdx
index ac63e8cc8..94458ac3b 100644
--- a/docs/integration/external-integrations/delinea-secret-server-integration.mdx
+++ b/docs/integration/external-integrations/delinea-secret-server-integration.mdx
@@ -3,52 +3,54 @@ title: "Delinea Secret Server Integration"
sidebar_position: 8.5
---
-Each Device42 Autodiscovery job is configured to use one (or more) sets of system credentials. If you already use Delinea Secret Server to manage passwords and other secrets or simply don't want to use Device42 for this purpose, the Device42 Delinea Secret Server integration allows Device42 to securely store and retrieve these credentials externally as your primary secret management solution.
+Each Device42 discovery job is configured to use one or more sets of system credentials. If you already use Delinea Secret Server to manage passwords and other secrets, the Device42 Delinea Secret Server integration allows Device42 to securely retrieve these credentials from Delinea Secret Server as your primary secret management solution.
-Delinea Secret Server offers useful features such as automatic password rotation, which can be configured to rotate secrets per your specific corporate policies and industry guidelines.
+Delinea Secret Server offers useful features such as automatic password rotation, which can be configured to rotate secrets per your specific corporate policies and industry guidelines.
+
+This page covers how to configure Delinea Secret Server, connect it to Device42, and use it as the credential source for discovery jobs.
:::info
-Please note that passwords retrieved from Delinea Secret Server are not viewable in Device42.
+Passwords retrieved from Delinea Secret Server are not viewable in Device42.
:::
## Configure Delinea Secret Server
Set up a user account and folder permissions in Delinea Secret Server before connecting to Device42.
-### Pre-requisites
-
-For the Delinea Secret Server integration to work, you will need to create a user account in Delinea Secret Server with the **View Secret** permission.
+### Prerequisites
-This user should also have view access to the desired folder(s) you would like Secrets retrieved from.
+For the integration to work, create a user account in Delinea Secret Server with the **View Secret** permission. This user should also have view access to the folders you want secrets retrieved from.
-While you can use any user account, it is _strongly recommended_ that you use a dedicated application account for Device42. Application accounts are restricted from logging into the UI and can only be used via the API.
+While you can use any user account, it is **strongly recommended** that you use a dedicated application account for Device42. Application accounts are restricted from logging into the UI and can only be used via the API.
## Configure Device42
-- Select **Tools > Integrations > Delinea Secret Server** from the Device42 menu.
+1. Select **Tools > Integrations > Delinea Secret Server** from the Device42 menu.
-
+ 
-- Click on the **Edit** button in the bottom right corner and enter your Delinea Secret Server RESTful API information. (Example below)
+2. Click the **Edit** button in the bottom right corner and enter your Delinea Secret Server RESTful API information.
-
+ 
-- Verify connectivity by clicking the **Test Settings** button in the top right corner.
+3. Verify connectivity by clicking the **Test Settings** button in the top right corner.
-
+ 
-- The **Test Settings** button attempts to validate the supplied configuration settings by retrieving a token from Delinea Secret server. If a token is successfully retrieved, a message stating "Delinea Secret Server Settings Valid" should appear in the top right corner. (Example Success Response Below)
+ The **Test Settings** button validates the supplied configuration settings by retrieving a token from Delinea Secret Server. If successful, a "Delinea Secret Server Settings Valid" message appears in the top right corner.
-
+ 
-- If you run into configuration errors related to SSL errors, you may need to disable SSL Verification within the Delinea Secret Server configuration page before trying again.
+4. If you encounter SSL errors, disable SSL Verification on the Delinea Secret Server configuration page before trying again.
-
+ 
-## Use the Device42 Delinea Secret Server Integration for Discovery
+## Use the Integration for Discovery
-To create a new password object using Delinea Secret Server, simply select Delinea Secret Server from the Password Storage drop-down menu:
+To create a new password object using Delinea Secret Server, select **Delinea Secret Server** from the **Password Storage** dropdown menu.

-**Note:** By default, both usernames and passwords are retrieved from Delinea Secret Server by looking up the secret using either **Secret Name** or **Secret ID**, depending on which was selected in the configuration. Regardless of which option is selected, the value used to do the lookup is assumed to be stored in the **Label** field of the related Secret in Device42. If there is no value for **Label** then the value is taken from the **Username** field instead. Usernames and passwords are parsed from the Secret returned by Delinea Secret Server using the slugs "username" and "password" respectively. You may also override the default slugs used by utilizing **Password Custom fields** named **username_slug** and **password_slug**.
+**Note:** By default, both usernames and passwords are retrieved from Delinea Secret Server by looking up the secret using either **Secret Name** or **Secret ID**, depending on which was selected in the configuration. The value used for the lookup is assumed to be stored in the **Label** field of the related secret in Device42. If there is no value for **Label**, the value is taken from the **Username** field instead.
+
+Usernames and passwords are parsed from the secret returned by Delinea Secret Server using the slugs `username` and `password` respectively. You can override the default slugs using **Password Custom Fields** named `username_slug` and `password_slug`.
diff --git a/docs/integration/external-integrations/device42-cloud-connector-overview.mdx b/docs/integration/external-integrations/device42-cloud-connector-overview.mdx
index 640a8dc10..d889c2a7a 100644
--- a/docs/integration/external-integrations/device42-cloud-connector-overview.mdx
+++ b/docs/integration/external-integrations/device42-cloud-connector-overview.mdx
@@ -8,9 +8,9 @@ import useBaseUrl from '@docusaurus/useBaseUrl'
The Device42 Cloud Connector is a cloud-based solution that sends data from your Device42 appliance to external applications.
-Many Device42 appliances are kept behind tight firewalls, which means external applications can't communicate with them directly. The Cloud Connector solves this problem by securely routing requests from external integrations directly to your Device42 appliance (which would otherwise be unreachable).
+Many Device42 appliances are kept behind tight firewalls, which means external applications cannot communicate with them directly. The Cloud Connector solves this problem by securely routing requests from external integrations directly to your Device42 appliance (which would otherwise be unreachable).
-The Cloud Connector uses a secure WebSocket connection that's initiated internally by the Device42 appliance. This way, your appliances stay protected, and you don’t have to risk exposing your Device42 instance to the internet in order to allow requests from external applications.
+The Cloud Connector uses a secure WebSocket connection that is initiated internally by the Device42 appliance. This way, your appliances stay protected, and you do not have to risk exposing your Device42 instance to the internet in order to allow requests from external applications.

@@ -24,25 +24,22 @@ The Device42 Cloud Connector is hosted by AWS, and takes advantage of its indust
The following external integrations use the Cloud Connector:
-- [Freshworks (Freshservice)](integration/external-integrations/freshservice-integration/index.mdx)
-- [ServiceNow](integration/external-integrations/device42-servicenow-connector.mdx)
-- [Atlassian (Jira Cloud)](integration/external-integrations/jira-integrations/device42-jira-cloud-integration.mdx)
-- [Zendesk](integration/external-integrations/device42-zendesk-connector.mdx)
-- [Cloud Recommendation Engine](reports/reports/cloud-recommendation-engine.mdx)
+- [Freshworks (Freshservice)](/integration/external-integrations/freshservice-integration)
+- [ServiceNow](/integration/external-integrations/device42-servicenow-connector)
+- [Atlassian (Jira Cloud)](/integration/external-integrations/jira-integrations/device42-jira-cloud-integration)
+- [Zendesk](/integration/external-integrations/device42-zendesk-connector)
+- [Cloud Recommendation Engine](/reports/reports/cloud-recommendation-engine)
- Slack
-- [Opsgenie](integration/external-integrations/opsgenie-integration.mdx)
-- [PagerDuty](integration/external-integrations/pagerduty-integration.mdx)
+- [Opsgenie](/integration/external-integrations/opsgenie-integration)
+- [PagerDuty](/integration/external-integrations/pagerduty-integration)
## Configure the Cloud Connector
Go to **Tools > Integrations > Cloud Services** to configure the Cloud Connector.
- Click **Edit** and enter your Device42 instance's URL or IP address in this field. For example, `https://myd42url.com`.
-
- Choose which **Cloud Connector** location to use: **USA**, **Europe**, **Australia**, **India**, or **Middle East**. Note that only the **USA** location supports the Jira Cloud, Zendesk, and Slack integrations.
-
-- The **EnrichAI** option is **Enabled** by default. The data Normalization and Enrichment Service is a Device42 feature that uses reliable sources to populate additional device attributes, such as the vendor, OS, and key support dates. See the [Enriched Data page](auto-discovery/enriched-data/index.mdx) for more details. If you do not want to use the data Normalization and Enrichment Service, you can disable it from this Cloud Services page.
-
+- The **EnrichAI** option is **Enabled** by default. The Data Normalization and Enrichment Service is a Device42 feature that uses reliable sources to populate additional device attributes, such as the vendor, OS, and key support dates. See the [Enriched Data page](/auto-discovery/enriched-data) for more details. To disable the Data Normalization and Enrichment Service, turn it off from this Cloud Services page.
- **Save** your changes.
Integrations > Cloud Services** to configure the Cloud Connector
If you need a new GUID, exit edit mode to go to view mode, and click the **Regenerate Instance GUID** button at the top right of the page.
-## Cloud Connector / WebSocket Security Architecture
+## Cloud Connector and WebSocket Security Architecture
The Cloud Connector handles routing requests from each external integration instance to the proper Device42 appliance endpoint via three GUID keys. These three GUIDs act as unique digital markers for identifying, authenticating, and routing requests.
-- The “appliance GUID”
-- The “verification token GUID”
-- The “am_guid”
+- The `appliance GUID`
+- The `verification token GUID`
+- The `am_guid`
The verification token is used to search a Cloud Connector database for the account that matches the given verification token. Once the matching verification token has been found, the request is forwarded to that appliance by the WebSocket Server, as identified by the appliance GUID.
### Cloud Connector IPs
-Device42 uses Cloudflare for the Cloud Connector. It is better to add the DNS of the Cloud Connector to your firewall than to add the Cloudflare IPs, as the DNS won't change. The table below lists the DNS addresses for each region. If you need specific IPv4 and IPv6 addresses, please refer to the Cloudflare [IP Ranges](https://www.cloudflare.com/en-in/ips/) documentation.
+Device42 uses Cloudflare for the Cloud Connector. Adding the Cloud Connector DNS to your firewall is preferable to adding Cloudflare IPs, as the DNS addresses do not change. The table below lists the DNS addresses for each region. For specific IPv4 and IPv6 addresses, refer to the Cloudflare [IP Ranges](https://www.cloudflare.com/en-in/ips/) documentation.
| Region | DNS |
|--------|-----|
@@ -78,5 +75,5 @@ Device42 uses Cloudflare for the Cloud Connector. It is better to add the DNS of
| Middle East | connect-me.device42.io |
:::tip
-If you have a question that isn't answered above, please email [support@device42.com](mailto:support@device42.com). We'll gladly answer your queries and include the solutions here.
+If you have a question not answered above, email [support@device42.com](mailto:support@device42.com).
:::
diff --git a/docs/integration/external-integrations/device42-confluence-connector.mdx b/docs/integration/external-integrations/device42-confluence-connector.mdx
index 48eaa13b4..aa2157d56 100644
--- a/docs/integration/external-integrations/device42-confluence-connector.mdx
+++ b/docs/integration/external-integrations/device42-confluence-connector.mdx
@@ -3,250 +3,266 @@ title: "Confluence Integration"
sidebar_position: 7
---
-This integration connects Device42 to your Atlassian Confluence instance with the following features:
+The Device42 Confluence integration connects Device42 to your Atlassian Confluence instance, letting you display and sync Device42 CI data directly within Confluence pages. This page covers installation, configuration, synchronization, space filters, and macros.
-- Display details of particular Device42 object (devices, racks, PDUs and parts are supported).
-- Display inline link to particular Device42 object (devices, racks, PDUs and parts are supported).
-- Display table of Device42 objects.
+The integration supports the following features:
+
+- Display details of a particular Device42 object (devices, racks, PDUs, and parts are supported).
+- Display an inline link to a particular Device42 object (devices, racks, PDUs, and parts are supported).
+- Display a table of Device42 objects.
- Synchronize Device42 data with Confluence manually or periodically.
-- Filter set of Device42 CIs to display inside macros for specific space.
+- Filter the set of Device42 CIs to display inside macros for a specific space.
## Install the Confluence Integration Add-On
-Device42's Atlassian Confluence add-on (aka "Device42 CMDB Connector for Confluence") can be found [in the Atlassian Marketplace](https://marketplace.atlassian.com/apps/1213754/device42-cmdb-connector-for-confluence?hosting=server&tab=overview). You can easily install it using the UPM (Universal Plugin Manager) built in to Confluence. However, if you have some special requirements (e.g. an environment that blocks Confluence from access to the internet), it is possible to install the Device42 Confluence integration plugin manually. Please note that the plugin requires a stable connection between the servers hosting your Confluence application and that which is hosting Device42 for successful operation.
+Device42's Atlassian Confluence add-on ("Device42 CMDB Connector for Confluence") can be found [in the Atlassian Marketplace](https://marketplace.atlassian.com/apps/1213754/device42-cmdb-connector-for-confluence?hosting=server&tab=overview). You can install it using the UPM (Universal Plugin Manager) built in to Confluence. If you have special requirements (for example, an environment that blocks Confluence from accessing the internet), you can install the plugin manually. Note that the plugin requires a stable connection between the servers hosting your Confluence application and the server hosting Device42.
:::info
The Confluence plugin is now certified for Data Center and is available on the [Atlassian Marketplace](https://marketplace.atlassian.com/apps/1213754/device42-cmdb-connector-for-confluence?hosting=datacenter&tab=overview).
:::
-### Automatic installation
+### Install Automatically
+
+1. Log in as a user with **Confluence System Administrators** global permission.
+2. From the Confluence administration console, in the **Atlassian Marketplace** section, select the **Find Add-Ons** menu.
+3. In the search field, type **Device42** and press **Enter**. You should see the following screen:
+
+ 
-**Installing the add-on:**
+4. Click **Install**. A confirmation message appears when the add-on is successfully installed.
-1. Log in as a user with '**Confluence System Administrators**' global permission.
-2. From the Confluence administration console, int the **Atlassian marketplace** section select **Find add-ons** menu.
-3. In the search field type '**Device42**' and press '**Enter**'.You should see the following screen:
-4. Click the '**Install**' buttonA confirmation message appears when the add-on is successfully installed.
+You can now manage the add-on from the user-installed add-on list on the **Manage Add-Ons** page.
-You can now manage the add-on from the user-installed add-on list on the **Manage add-ons** page.
+### Install Manually
-### Manual installation
+1. Download the latest version of the add-on from the [Atlassian Marketplace: Device42 CMDB Connector for Confluence](https://marketplace.atlassian.com/apps/1213754/device42-cmdb-connector-for-confluence?hosting=server&tab=overview). If you do not have internet access, download the `.jar` file from a computer outside your network and transfer it manually.
+2. Log in as a user with **Confluence System Administrators** global permission.
+3. From the Confluence administration console, click **Add-Ons** and select **Manage Add-Ons**.
+4. Click the **Upload Add-On** link at the top right of the page. The following dialog appears:
-**To install the add-on manually:**
+ 
-1. Download the latest version of add-on from our github, or download from the [Atlassian Marketplace: Device42 CMDB Connector for Confluence](https://marketplace.atlassian.com/apps/1213754/device42-cmdb-connector-for-confluence?hosting=server&tab=overview). If you don't have internet connecton (i.e. you have the secured sandbox environment) you can download the .jar file from a computer outside your network, and bring it using a thumb drive.
-2. Log in as a user with '**Confluence System Administrators**' global permission.
-3. From the Confluence administration console, click the **Add-ons**. Select **Manage add-ons**.
-4. Click the **Upload add-on** link at the top right side of the page.The following dialog appears.
-5. Enter the location of the JAR file (from step 1) to upload using the file chooser or by specifying a network location by entering a URL.
-6. Click **Upload**.A confirmation message will appear when the add-on has been successfully installed.
+5. Enter the location of the `.jar` file (from step 1) using the file chooser, or specify a network location by entering a URL.
+6. Click **Upload**. A confirmation message appears when the add-on is successfully installed.
-You can now manage the add-on from the add-on list ("user-installed add-ons"), found on the **Manage add-ons** page.
+You can now manage the add-on from the user-installed add-on list on the **Manage Add-Ons** page.
## Configure the Device42 Confluence Add-On
-To configure the add-on:
+1. Log in as a user with **Confluence Administrators** global permission.
+2. From the Confluence administration console, select **DEVICE42 CONNECTOR > Device42 Connection** to open the configuration page.
+
+ > Keyboard shortcut: **g + g +** start typing **Device42**.
-1. Log in as a user with '**Confluence Administrators**' global permission.
-2. From the Confluence administration console, Select **DEVICE42 CONNECTOR** > **Device42 Connection** to open the configuration page.
-
- > Keyboard shortcut : **g + g +** start typing **Device42**.
-
You will see the configuration screen:
-
+

-## Set Up the Device42 - Confluence Connection
+## Set Up the Device42-Confluence Connection
+
+1. On the configuration page, click **Edit** to set up the connection to your Device42 instance. The following page opens:
+
+ 
+
+2. Enter the connection information.
+3. Click **Save**.
+4. The saved details are displayed on the configuration view screen.
+
+### Synchronize Manually
+
+Data from your Device42 instance is cached inside the internal Confluence database. To keep your data updated, run a sync periodically — either automatically or manually.
+
+To launch an immediate synchronization:
-1. On the configuration page click **Edit** to setup connection to Device42 instance.The following page opens.
-2. Enter the connection information
-3. Click '**Save**'.
-4. You will see the saved details on the configuration view screen
+1. On the configuration information page, click **Update**.
+2. A confirmation dialog appears. Click **Update Data**.
+3. Wait a few seconds for the server to request new data from Device42.
+4. After synchronization completes, you will see the following on the synchronization info screen:
-### Synchronize manually
+ 
-Data from your Device42 instance is cached inside the internal Confluence database. To keep your data updated, you should run a sync periodically. You can do this automatically or manually.
+ 
-**To launch an immediate synchronization:**
+ 
-1. On the configuration information page, click the '**Update**' button
-2. A confirmation dialog will appear. Press the '**Update Data**' button inside that dialog
-3. Wait a couple of seconds until the server requests the new data from Device42
-4. After the synchronization has completed, you will see the following on the synchronization info screen:
+### Set Up Automatic Synchronization
-
-
-
+You can set up automatic updates using cron expressions.
-### Set up automatic synchronization
+1. On the configuration information page, click **Setup Cron**.
+2. Enter the cron expression rule in the cron configuration dialog:
-You can set up the automatic update using the Cron Expressions.
+ 
-1. On the configuration information click '**Setup Cron**' button
-2. Enter the cron expression rule inside the cron configuration dialog
-3. Click '**Save**' button
-4. You will see the saved details on the configuration view screen
+ 
-**Note:** The Device42 Confluence Connector integration uses the default Confluence Scheduler mechanism. Instead of using the "Update Data" dialog or the "Setup Cron" dialog, you can instead use the Scheduled Jobs menu to run Device42 Update jobs directly from that page. You may also set up a cron schedule if desired, and those changes will be automatically reflected on the Device42 Configuration page. By default, the job is scheduled to run on the midnight server time on the daily basis.
+3. Click **Save**.
+4. The saved details are displayed on the configuration view screen.
+
+**Note:** The Device42 Confluence Connector uses the default Confluence Scheduler mechanism. Instead of using the **Update Data** dialog or the **Setup Cron** dialog, you can use the **Scheduled Jobs** menu to run Device42 update jobs directly. You can also set up a cron schedule there, and those changes will be reflected automatically on the Device42 Configuration page. By default, the job runs daily at midnight server time.

## Configure Confluence Space Filters
+Space filters control which Device42 CIs are visible within specific Confluence spaces and macros.
+
### Filter Settings
-Each Confluence space can have a space filter configured. There can be multiple filters configured for one or multiple CI types. If you’re configuring multiple filters for one CI type, you can then use these filters separately by adding multiple table macros to the space and selecting each “Space filter” you have created to be able to filter that CIs on multiple values/categories.
+Each Confluence space can have a space filter configured. Multiple filters can be configured for one or more CI types. If you configure multiple filters for one CI type, you can use them separately by adding multiple table macros to the space and selecting each space filter to filter CIs on different values or categories.
-**Note:** Pagination is not yet available for the table macro, if you need to view more than the default 50 results in the table, you can change this value on the Device42 plugin connection screen and set the “Dropdown Limit” to a higher value like 100 or 150. Don’t set this value too high as this will might cause significant delays in drop down displays for the plugin:
+**Note:** Pagination is not yet available for the table macro. If you need to view more than the default 50 results, change the **Dropdown Limit** value on the Device42 plugin connection screen to a higher value like 100 or 150. Do not set this value too high, as it may cause significant delays in dropdown displays.

-1\. The filter settings are accessed from the “Space Tools” menu at the bottom left corner:
+1. Access filter settings from the **Space Tools** menu at the bottom left corner:
-
+ 
-2\. On the settings page you can configure any CI or multiple CIs using one interface. Note that if you configure the “Device” CI and the “Parts” CI for example, the filter will be applied only to the CI you have selected in your Table Macro drop down:
+2. On the settings page, configure any CI or multiple CIs using one interface. Note that if you configure the **Device** CI and the **Parts** CI, the filter will be applied only to the CI selected in your **Table Macro** dropdown:
-
+ 
-3\. Let’s configure a space filter to show Software with a name of “.NET”:
+3. Configure a space filter to show software with a name of `.NET`:
-
+ 
-4\. Don’t leave this screen until you get the green confirmation prompt confirming your filter has been saved. This is required so the plugin has the time necessary to process the filtering of the database items stored in your Confluence database.
+4. Do not leave this screen until you get the green confirmation prompt confirming your filter has been saved. This gives the plugin time to process the filtering of the database items stored in your Confluence database.
-5\. Once the filter has been saved, you can go back to the space with your table macro and apply it to the CI you have created the filter for, save the space and view the results:
+5. Once the filter has been saved, go back to the space with your table macro, apply it to the CI you created the filter for, save the space, and view the results:
-
+ 
-
+ 
### Filter Templates
-Filter templates allow a user to configure a global filter template which can then be used in any specific Confluence space with predefined CIs and values for each of the CI’s fields.
-
-This can be useful when you need to define a preconfigured template that you use in multiple CI space filters instead of having to create a separate one for each space.
+Filter templates allow you to configure a global filter template that can then be used in any Confluence space with predefined CIs and values for each CI's fields. This is useful when you need a preconfigured template across multiple CI space filters instead of creating a separate one for each space.
-1\. Access the Filter Templates by clicking on the _Device42 Filter Templates_ link from the Device42 Connector menu found on the left hand side of Confluence’s main menu.
+1. Access filter templates by clicking the **Device42 Filter Templates** link from the Device42 Connector menu on the left side of Confluence's main menu.
-
+ 
-2\. A settings page will open with the following items:
+2. A settings page opens with the following items:
-
+ 
-3\. Above, a new template filter can be created by clicking on the Filter templates drop down and selecting “Create new…” menu item and entering a name of your choice like “parts\_fan” above for example.
+3. Create a new template filter by clicking the **Filter Templates** dropdown, selecting **Create New...**, and entering a name of your choice.
-4\. After this, select the CIs you want to be selectable from the “General settings” tab (in most cases you want to leave the default settings).
+4. Select the CIs you want to be selectable from the **General Settings** tab (in most cases, leave the default settings).
-5\. The CI tabs at the top allow you to select and configure the CI filtering you need:
+5. The CI tabs at the top allow you to select and configure the CI filtering you need:
-
+ 
-6\. Here we will configure the “Parts” CI to show only the “fan” type items:
+6. Configure the **Parts** CI to show only **fan** type items:
-
+ 
-7\. The search is case insensitive and of contains type, meaning any values specified here will be checked against all database entries matching the CI’s type and containing these values.
+7. The search is case-insensitive and uses a "contains" match — any values specified will be checked against all database entries matching the CI's type and containing those values.
-8\. Don’t forget to click “Save” at the bottom, if the button is grayed out after you have entered a value, make sure you click out of the text box and then click the “Save” button.
+8. Click **Save** at the bottom. If the button is grayed out after entering a value, click outside the text box first, then click **Save**.
-9\. You can also “Reset” the custom filter you’ve created by clicking the “Reset” button. _Note: This will also delete your custom filter entry. This doesn’t apply to the “default” filter._
+9. You can also click **Reset** to reset the custom filter you have created. Note that this will delete your custom filter entry and does not apply to the default filter.
-10\. Once this is done, these filter templates will be available in the Space Device42 filter settings drop down:
+10. Once saved, the filter templates will be available in the Space Device42 filter settings dropdown:
-
+ 
-By loading the template filter, you pass in the values saved in the filter template into your specific space instance filter which can then be further modified.
+Loading a template filter passes the saved values into your specific space instance filter, which can then be further modified.
* * *
## Configure Space Restrictions
-The Device42 Confluence Connector allows you to specify which spaces the Device42 macros can be used with.
+The Device42 Confluence Connector lets you specify which spaces the Device42 macros can be used in.
-### Configure Space Restrictions
+1. Log in as a user with **Confluence Administrators** global permission.
+2. From the Confluence administration console, select **DEVICE42 CONNECTOR > Device42 Restrict**.
+3. Turn space restrictions on.
+4. In the **Allowed Spaces** field, select all spaces where you want to allow Device42 macros.
-- Log in as a user with **Confluence Administrators** global permission.
-
-- From the Confluence administration console, select **DEVICE42 CONNECTOR > Device42 Restrict.**
-
-- Turn space restrictions on.
-
-- In the **Allowed spaces** field, select all spaces where you want to allow the Device42 macros to be used.
-
+ 
-
+5. Click **Save**.
-- Click **Save**.
-
-- Now if you go to a space where Device42 macros are not allowed based on the space restrictions, you will get an access denied message if you try to use one of the Device42 macros.
-
+If you go to a space where Device42 macros are not allowed, you will see an access denied message if you try to use a Device42 macro.

-- In addition, if Device42 macros were allowed for the space and had been used on the page, and then the space did not allow Device42 macros, then the data that those macros returned would not be displayed on the page.
+If Device42 macros were previously allowed and used on a page, and the space is later restricted, the data returned by those macros will no longer be displayed.
* * *
## Use Device42 Macros
-You can add information about Device42 Configuration Items inside your Confluence pages using Macros. Device42 Confluence connector provides 3 different Macros to achieve that goal: Details Macro, Link macro and Table macro. You can apply space filter for the list of the possible Configuration Items you want to see inside the specific space. Also you can apply the filter to the each of the Configuration Items category (see Space Filters Configuration for details).
+You can add information about Device42 CIs inside your Confluence pages using macros. The Device42 Confluence connector provides three macros: Details Macro, Link Macro, and Table Macro. You can apply a space filter to the list of CIs visible in a specific space, and also filter by CI category (see [Configure Confluence Space Filters](#configure-confluence-space-filters) for details).
+
+### Object Macros
+
+The Details Macro and the Link Macro both let you add information about one or more specific CIs to a page. They share a similar configuration but differ in presentation: the Details Macro shows a table of CI parameters, while the Link Macro shows a link that displays additional information on hover.
+
+To add an object macro to a page:
+
+1. To add a macro to a page, select **Insert Other Macros** from the top menu.
+
+ 
+
+2. Open **External Content** to find the three Device42 macros. Use the search field to search for **device42** if needed.
+
+ 
-### Objects macros
+3. Select the **Link** or **Details** macro. Select the CI category and one or more CIs. Use the **Preview** button to preview the macro.
-You can add information about one or set of the specific Configuration Items into your page using Device42 Details macro and Details42 Link macro. They have the similar configuration but different view functionality: for Device42 Details macro you can see the table of the CI parameters, the view macro contains the link only, but shows the additional information when you hover over that link.
+ 
-#### Edit Device42 Object Macros
+4. Click **Insert** to add the macro to the page. In edit mode the macro is not rendered, but you will see the macro name, a one-letter category code, and the CI IDs.
-1. To add the macro on the page select insert other macros from the top menu
-2. Open External Content, you can find 3 Device42 macros. If you have too many macros - you can search for device42 using search field.
-3. Select Link or Details macro. Select the needed CI category, select one or more CIs. You can preview macro using preview button.
-4. Press the insert button to add the macro on page. Please note, that in edit mode the macro is not rendered, but you will be able to see the name of the macro, one letter for category and set of numbers for CI ids.
+ 
-#### View Device42 Details Macro
+### View Device42 Details Macro
-The details macro shows the information regarding the CIs in the table. For the set of CIs you will see additional table for each of CIs. You can follow the link to access the CI inside the Device42 application
+The Details Macro shows CI information in a table. For multiple CIs, a separate table is shown for each CI. Follow the link to access the CI in Device42.

-#### View Device42 Link Macro
+### View Device42 Link Macro
-The link macro shows the short link to the Device42 application for the selected CI. For the set of CIs you will see set of links one for each row. You can follow the link to access the CI inside the Device42 application. If you hover over the link - you will see the detailed information about the linked CI inside the Confluence page.
+The Link Macro shows a short link to the Device42 application for the selected CI. For multiple CIs, a separate link is shown for each. Hovering over a link shows detailed information about the linked CI inline in the Confluence page.

### Search Macro
-Unlike the objects macro that links to the specific CIs inside the Device42 application the search macro shows the items according to search criteria.
+Unlike the object macros, which link to specific CIs, the Search Macro shows items matching search criteria.
-#### Table Macro
+### Table Macro
-The table macro allows you to see the table of the CIs of the selected type with the application of space filter and in-macro search criterias.
+The Table Macro displays a table of CIs of the selected type, with the space filter and in-macro search criteria applied.
-> In the current version in-macro search works for Devices only. For the other CI Types the Space Filter parameters would be applied.
+> In the current version, in-macro search works for Devices only. For other CI types, the space filter parameters are applied.
-When you select Table Macro in the edit mode you can select the needed CI type as the macro parameter. Optionally you can select name of the search criteria and value. There are 2 sets of fields that allow to have the "and-search" for the specific items. The following parameters are supported:
+When you select the Table Macro in edit mode, select the CI type as the macro parameter. Optionally, select a search criteria name and value. Two sets of fields are available for "and" searches. The following parameters are supported:
-- type
-- service\_level
-- in\_service
-- rack
-- room
-- building
+- `type`
+- `service_level`
+- `in_service`
+- `rack`
+- `room`
+- `building`
-You should type the exact naming for the parameter inside Filter parameters. Inside the value parameters you should type the prefered value of the specified parameter. If there are no CIs that apply your criteria (with the addition of the space filter) you will see no results for the table.
+Enter the exact parameter name in the filter parameters field and the preferred value in the value field. If no CIs match the criteria (including the space filter), the table will show no results.

-If you add wrong parameter you will see the error message instead of rendering of the table.
+If you enter an incorrect parameter, an error message is displayed instead of the table.

-In the edit mode the macro is not rendered, but you can see the selected CI type info and specified filter parameters.
+In edit mode, the macro is not rendered, but you can see the selected CI type and specified filter parameters.

-In the view mode you will be able to see the table with the filtered CIs
+In view mode, the table displays the filtered CIs.

diff --git a/docs/integration/external-integrations/device42-hp-service-manager-integration.mdx b/docs/integration/external-integrations/device42-hp-service-manager-integration.mdx
index 840f489f0..817cc5a0d 100644
--- a/docs/integration/external-integrations/device42-hp-service-manager-integration.mdx
+++ b/docs/integration/external-integrations/device42-hp-service-manager-integration.mdx
@@ -3,59 +3,74 @@ title: "HP Service Manager Integration"
sidebar_position: 13
---
-The Device42 HP Service Manager (HPSM) Connector enables HPSM users to seamlessly add Device42’s IT infrastructure management capabilities to their HPSM solution. HP Service Manager (HPSM) users can enhance their ITSM process, change management processes, and other workflows by syncing the Asset and CMDB data from Device42 to their HPSM instance.
+The Device42 HP Service Manager (HPSM) Connector syncs asset and CMDB data from Device42 to your HPSM instance, enhancing your ITSM processes, change management workflows, and other operations with Device42's comprehensive discovery data.
-Enjoy an improved HP Service Manager experience by leveraging Device42’s comprehensive Continuous Discovery, link service requests to the relevant CI, search for issues using CI attributes, and even see CI details in HPSM!
+This page covers the requirements, configuration, and usage of the Device42-HPSM integration connector.

-Using the Device42-hpsm integration connector, hpsm users can synchronize Device42’s enhanced asset management and tracking capabilities to their hpsm IP-enabled configuration items (CI) data maintained inside hpsm’s Configuration Management Database (CMDB). This synchronization can be manually refreshed at any time by the user and also scheduled for automatic refresh at user-defined intervals. Once Device42 CI data has been synced to HP Service Manager, users can see Device42 CI details (Asset tag, Assignment, Description, IP & MAC, and more) for those CIs in HPSM, while CI Data can also be seen for all HPSM-only CIs alike. Quickly view any service requests that are associated with a CI, as well.
+Once Device42 CI data has been synced to HP Service Manager, you can see Device42 CI details (asset tag, assignment, description, IP and MAC, and more) for those CIs in HPSM. You can also link service requests to relevant CIs and search for issues using CI attributes. Synchronization can be manually refreshed at any time or scheduled for automatic refresh at user-defined intervals.
+## Assumptions and Requirements
-## Assumptions & Requirements:
+1. This integration script was tested with HPSM v9.40 and Device42 v12.0.0.
+2. Instructions assume you have a working Device42 and HPSM instance, at least the versions above or newer.
+3. The integration requires Python 2.7.x.
-1. This Integration's script was tested with HPSM v9.40 and Device42 v12.0.0
-2. Insructions assume you have a working Device42 and HPSM Instance, at least the versions above or newer.
-3. Integration requires Python 2.7.x
+## Integration Steps and Configuration
-## Integration Steps, Configuration & Usage:
+Integrate Device42 data with HPSM using the Device42-HPSM sync script.
-Integrating Device42 data to HPSM is easily accomplished using the Device42-hpsm sync script. This script makes CI data integration a straightforward, easy process.
+1. Create a working directory and copy the contents of the Device42_HPSM_Sync repository to it.
+2. Copy (or rename) the settings file `conf.sample` to `conf`.
+3. Edit the `conf` file to contain your Device42 and HPSM instance credentials (host, user, password):
-1. Create a working directory foo and copy the contents of the Device42 Device42\_HPSM\_Sync repository to it
-2. Copy (or move/rename) the settings file conf.sample to conf
-3. Edit the conf file you created in the last step to contain your Device42 & HPSM instance credentials \[host, user, pass\]:
+
+ Click to expand the code block
+ ```
+ #========= Device 42 ========= #
+ d42_host = '192.168.1.102'
+ d42_username = 'user'
+ d42_password = 'pass'
+ #========= HPSM ========= #
+ hpsm_host = '10.42.42.46'
+ hpsm_protocol = 'http'
+ hpsm_port = '13080'
+ hpsm_username = 'user'
+ hpsm_password = 'pass'
+ hpsm_api_version = '9'
+ #========= Options ========= #
+ opt_debug = True
+ opt_dry_run = True
+ ```
+
-
- Click to expand the code block
- ```
- #========= Device 42 ========= #
- d42_host = '192.168.1.102'
- d42_username = 'user'
- d42_password = 'pass'
- #========= HPSM ========= #
- hpsm_host = '10.42.42.46'
- hpsm_protocol = 'http'
- hpsm_port = '13080'
- hpsm_username = 'user'
- hpsm_password = 'pass'
- hpsm_api_version = '9'
- #========= Options ========= #
- opt_debug = True
- opt_dry_run = True
- ```
-
+4. Configure HPSM: Open the Database Dictionary and add a field (type `number`, name `device42.id`) to both the `computer` and `networkcomponents` models.
-1. Configure HPSM: Open the Database Dictionary and add field (type ‘number’, name ‘device42.id’) to both the models ‘computer’ and ‘networkcomponents'  
-2. Operator should have access to the REST API: 
-3. The API should allow “Computer” and “NetworkDevice” access, allowing both ‘add’ and ‘save’ actions:  
-4. Both endpoints must allow access to add & update all of the fields pictured. Exact field names can also be found in README.MD: 
-5. Set the unique key for both endpoints to: `logical.name`:
+ 
-
+ 
-6. Run `$ python starter.py`.
+5. The operator should have access to the REST API:
+
+ 
+
+6. The API should allow **Computer** and **NetworkDevice** access, with both **add** and **save** actions enabled:
+
+ 
+
+ 
+
+7. Both endpoints must allow access to add and update all of the fields pictured. Exact field names can be found in `README.MD`:
+
+ 
+
+8. Set the unique key for both endpoints to `logical.name`:
+
+ 
+
+9. Run `python starter.py`.
## Access the HPSM Integration Connector
-Device42 and HP Service Manager users can access the free Integration Connector Script on our website: https://www.device42.com/integrations/hpsm/
+Download the free integration connector script from the [Device42 HPSM integration page](https://www.device42.com/integrations/hpsm/).
diff --git a/docs/integration/external-integrations/device42-saltstack-integration.mdx b/docs/integration/external-integrations/device42-saltstack-integration.mdx
index 78eaf9222..dfafe7d70 100644
--- a/docs/integration/external-integrations/device42-saltstack-integration.mdx
+++ b/docs/integration/external-integrations/device42-saltstack-integration.mdx
@@ -3,94 +3,42 @@ title: "SaltStack Integration"
sidebar_position: 27
---
-Salt (aka SaltStack) is a Python-based open source configuration management software and remote execution engine. Salt supports the Software-Defined Datacenter, allowing configuration of your Infrastructure as Code (IaC). With the Device42 Salt Integration, you can now gather information about your devices from the same tool you use to provision them. The Device42-Salt Integration can gather the following from Salt:
+Salt (also known as SaltStack) is a Python-based open source configuration management tool and remote execution engine that supports Infrastructure as Code (IaC). The Device42 Salt integration lets you gather information about your devices from the same tool you use to provision them.
+
+The integration collects the following data from Salt:
- Name
-- Node Type
-- CPU Power
+- Node type
+- CPU power
- Customer
-- Virtual or Physical
-- Virtual Sub-type
-- CPU Core Count
+- Virtual or physical
+- Virtual sub-type
+- CPU core count
- Manufacturer
-- Operating System & OS Version
-- Total Memory
-- HDD Count
-- Service Level
-
-## Assumptions & Pre-Requisites
-
-Working Salt & Device42 installations. Tested against Salt Master 2016.11.1 Carbon To allow connections, sign your minions certificate on your Salt Master and run the script on your Salt Master server.
-
-
-Python v2.7.x
-- PyYAML
- ```
- $ easy_install pyyaml or $ pip install pyyaml
- ```
-- appdirs
- ```
- $ easy_install appdirs or $ pip install appdirs
- ```
-- futures
- ```
- $ easy_install futures or $ pip install futures
- ```
-- jinja2
- ```
- $ easy_install jinja2 or $ pip install jinja2
- ```
-- tornado
- ```
- $ easy_install tornado or $ pip install tornado
- ```
-- requests
- ```
- $ easy_install requests or $ pip install requests
- ```
-- salt
- ```
- $ easy_install salt or $ pip install salt
- ```
-- markupsafe
- ```
- $ easy_install markupsafe or $ pip install markupsafe
- ```
-- msgpack-python
- ```
- $ easy_install msgpack-python or $ pip install msgpack-python
- ```
-- packaging
- ```
- $ easy_install packaging or $ pip install packaging
- ```
-- pycrypto
- ```
- $ easy_install pycrypto or $ pip install pycrypto
- ```
-- pyparsing
- ```
- $ easy_install pyparsing or $ pip install pyparsing
- ```
-- pyzmq
- ```
- $ easy_install pyzmq or $ pip install pyzmq
- ```
-- singledispatch
- ```
- $ easy_install singledispatch or $ pip install singledispatch
- ```
-- six
- ```
- $ easy_install six or $ pip install six
- ```
-
-
-## Configuration and Usage
-
-1. Create a working directory and copy the contents of the `salt_to_device42_sync` repository to it.
-2. Copy (or move/rename) the settings file settings.yaml.example to `settings.yaml`.
-3. Populate the `settings.yaml` file you created in the last step with your Device42 instance info (host, user, pss):
+- Operating system and OS version
+- Total memory
+- HDD count
+- Service level
+
+## Prerequisites
+
+The following are required before setting up the integration:
+
+- Working Salt and Device42 installations. Tested against Salt Master 2016.11.1 Carbon.
+- To allow connections, sign your minion certificates on your Salt Master and run the script on your Salt Master server.
+- Python v2.7.x
+
+Install the required Python dependencies:
+
+```
+pip install PyYAML appdirs futures jinja2 tornado requests salt markupsafe msgpack-python packaging pycrypto pyparsing pyzmq singledispatch six
+```
+
+## Configure and Use the Integration
+
+1. Create a working directory and copy the contents of the `salt_to_device42_sync` repository into it.
+2. Copy `settings.yaml.example` to `settings.yaml`.
+3. Populate `settings.yaml` with your Device42 instance details (`host`, `user`, `pass`):
Click to expand the code block
@@ -115,11 +63,11 @@ Python v2.7.x
```
-Consult `README.md` and `requirements.txt` for more details
+Consult `README.md` and `requirements.txt` for more details.
-1. Configure node filtering, if desired. Details regarding configuration options can be found in `NodeFilter.md`. Filter settings are added following the `Options:` section of `settings.yaml`.
-2. Run the script: `$ python saltexplore.py` (`-c /path/to/settings.yaml`)
+4. Configure node filtering if desired. Configuration options are documented in `NodeFilter.md`. Add filter settings after the `Options:` section of `settings.yaml`.
+5. Run the script: `python saltexplore.py` (optionally with `-c /path/to/settings.yaml`)
-If you run into any unexpected behavior, bugs, or otherwise have questions, comments, or feature requests, feel free to reach out to support@device42.com.
+For questions, bug reports, or feature requests, contact [support@device42.com](mailto:support@device42.com).
-**Download the Salt integration script for Device42 today!**
+To download the Salt integration script, visit the [Device42 GitHub page](https://github.com/device42).
diff --git a/docs/integration/external-integrations/device42-servicenow-connector.mdx b/docs/integration/external-integrations/device42-servicenow-connector.mdx
index 15f449b47..dac22a0aa 100644
--- a/docs/integration/external-integrations/device42-servicenow-connector.mdx
+++ b/docs/integration/external-integrations/device42-servicenow-connector.mdx
@@ -3,34 +3,32 @@ title: "ServiceNow Integration"
sidebar_position: 28
---
-Use the Device42-ServiceNow connector (plugin) to sync your IT data from Device42 to your ServiceNow CMDB. Synchronization can be manual or automated on a schedule you set.
-
-The plugin supports the three most recent releases of ServiceNow.
+The Device42 ServiceNow connector syncs your IT data from Device42 to your ServiceNow CMDB. Synchronization can be manual or automated on a schedule you set. The plugin supports the three most recent releases of ServiceNow.

## Prerequisites
-- In Device42, configure your Cloud Connector and add **ServiceNow** as an External Integration. See the [Main Appliance Configuration](#device42-main-appliance-configuration) section below for details.
-
-- From your ServiceNow instance, install the **Configuration Management For Scoped Apps (CMDB)** plugin as a dependency.
+Before installing the plugin, complete the following:
- 
+- In Device42, configure your Cloud Connector and add **ServiceNow** as an External Integration. See [Main Appliance Configuration](#main-appliance-configuration) below for details.
+- From your ServiceNow instance, install the **Configuration Management For Scoped Apps (CMDB)** plugin as a dependency.
+
## Install the Plugin
1. Find and install the Device42 plugin from either the ServiceNow Store or via the **Plugin** section of your ServiceNow instance:
- - Visit [this ServiceNow Store link](https://store.servicenow.com/sn_appstore_store.do#!/store/application/42597533db201300a189622dca961964/4.2.0?sl=sh) and click **Get** to install the plugin on your ServiceNow instance.
+ Visit the [ServiceNow Store](https://store.servicenow.com/sn_appstore_store.do#!/store/application/42597533db201300a189622dca961964/4.2.0?sl=sh) and click **Get** to install the plugin on your ServiceNow instance.
- 
+ 
- - Alternatively, from your ServiceNow instance, search for "plugin" under **All** to navigate to the plugins page, and from there, search for "Device42".
+ Alternatively, from your ServiceNow instance, search for "plugin" under **All** to navigate to the plugins page, then search for "Device42".
- 
+ 
-2. To verify that the discovery source of “Device42” was created, navigate to **System Definition > Scripts – Background** (search for it under **All**) and paste in the following script. Leave **in scope** as **global**.
+2. To verify that the discovery source "Device42" was created, navigate to **System Definition > Scripts – Background** (search for it under **All**) and paste in the following script. Leave **in scope** set to **global**.
Click to expand the code block
@@ -52,7 +50,7 @@ The plugin supports the three most recent releases of ServiceNow.

-3. If not found "Device42", add **Device42** to the data source choice list. Navigate to **System Definition > Scripts – Background** (search for it under **All**) and paste in the following script. Leave **in scope** as **global**.
+3. If "Device42" is not found, add it to the data source choice list. Navigate to **System Definition > Scripts – Background** and paste in the following script. Leave **in scope** set to **global**.
Click to expand the code block
@@ -90,130 +88,127 @@ From ServiceNow, the URI endpoints look something like this:
sn/route_doql_csv/{DOQL Name}
```
-- Direct Connection Configuration (3.0.0+ only)
+- Direct Connection Configuration (3.0.0 and later only):
```
/services/data/v1.0/query/?saved_query_name={DOQL Name}&delimiter=,&header=yes&output_type=csv
```
-
-The general request flow is laid out in the sections below.
+The general request flow is described in the sections below.
### Cloud Connector Configuration
-1. When a request is made to the Cloud Connector, the Cloud Connector finds the appropriate account by matching verification tokens. That account's `appliance_guid` and `am_guid` are then used by the WebSocket server to route the request to the appropriate client.
-2. The verification token is then validated on the Device42 instance to ensure that the Cloud Connector has appropriate access to the utilized resources. If the integration is configured for direct connections only, the request is rejected. Otherwise, the request is processed.
-3. The Cloud Connector then runs the appropriate DOQL query against the proper Device42 instance on behalf of the requesting ServiceNow instance and returns the query results to ServiceNow for processing by the data source transformation maps.
+1. When a request is made to the Cloud Connector, it finds the appropriate account by matching verification tokens. That account's `appliance_guid` and `am_guid` are then used by the WebSocket server to route the request to the appropriate client.
+2. The verification token is validated on the Device42 instance to ensure that the Cloud Connector has appropriate access to the requested resources. If the integration is configured for direct connections only, the request is rejected. Otherwise, the request is processed.
+3. The Cloud Connector runs the appropriate DOQL query against the proper Device42 instance on behalf of the requesting ServiceNow instance and returns the results to ServiceNow for processing by the data source transformation maps.
### Direct Connection Configuration
-1. When a request is made directly to the Device42 appliance, Device42 searches for a configured integration with a matching verification token. The request goes through a verification procedure to ensure that the request is valid and that the integration can make a direct connection to the Device42 appliance. If it fails, the request is rejected. Otherwise, the request is processed.
-2. The Device42 instance then runs the appropriate DOQL query, then returns the query results to ServiceNow for processing by the data source transformation maps.
+1. When a request is made directly to the Device42 appliance, Device42 searches for a configured integration with a matching verification token and verifies that the integration can make a direct connection. If verification fails, the request is rejected. Otherwise, the request is processed.
+2. The Device42 instance runs the appropriate DOQL query and returns the results to ServiceNow for processing by the data source transformation maps.
-### Custom Device42 DOQL Datasources
+### Custom Device42 DOQL Data Sources
-Using Device42's stored [Device42 object query language (DOQL)](docs/reports/device42-doql/index.mdx), you can fully customize the data that your Device42 instance sends to ServiceNow.
+Using Device42's [Device42 Object Query Language (DOQL)](/reports/device42-doql), you can fully customize the data sent to ServiceNow.
-In Device42, navigate to **Tools > Integrations > Saved DOQL Queries** to add a new saved DOQL query and then add a new ServiceNow data source that points to that query.
+In Device42, navigate to **Tools > Integrations > Saved DOQL Queries** to add a new saved DOQL query, then add a new ServiceNow data source that points to that query.
-In ServiceNow, you can create and modify existing data sources and set their file paths by modifying the string discussed below to reference the name of your new Device42 saved DOQL query.
+In ServiceNow, you can create and modify existing data sources and set their file paths by updating the string below to reference the name of your saved DOQL query.
-**Increase Field Length:**
+**Increase Field Length**
-The file path field for a data source is limited to 100 characters by default. If you are unable to enter your entire file path, you can work around the character limit in two ways:
-- You can assign your custom query to a system property and use it in the field with `${name_of_your_system_property}`.
-- You may also increase the character limit of this field by navigating to **System Definition > Tables > sys_data_source > File Path**, increasing the maximum character length of the data source-file-path field, and updating the table.
+The file path field for a data source is limited to 100 characters by default. If you cannot enter your entire file path, you can work around the character limit in two ways:
-**System Property Method:**
+- Assign your custom query to a system property and reference it in the field with `${name_of_your_system_property}`.
+- Increase the character limit by navigating to **System Definition > Tables > sys_data_source > File Path** and updating the maximum character length.
+
+**System Property Method**
| **Connection Type** | **Name** | **Type** | **Value** |
|----------------------|------------------------------|----------|----------------------------------------------------------------------------------------------------|
| **Cloud Connection** | `name_of_your_system_property` | String | `YOUR_DOQL_NAME` |
| **Direct Connection**| `name_of_your_system_property` | String | `saved_query_name=YOUR_DOQL_NAME&delimiter=,&header=yes&output_type=csv` |
-Don't include the `?` symbol in your system property, as ServiceNow will percent-encode it when retrieving the system property value. Instead, include the `?` symbol in the file path field itself.
+Do not include the `?` symbol in your system property, as ServiceNow will percent-encode it when retrieving the value. Include the `?` in the file path field itself:
```
/services/data/v1.0/query/?${name_of_your_system_property}
```
-Cloud Connection
+**Cloud Connection**
-- File Path:
+- File Path:
```
sn/route_doql_csv/YOUR_DOQL_NAME
```
+- Username: Any value is accepted, but this field is required.
+- Password: `${x_192652_device42.instance_key}`
-- Username: You may use any value here, but it is required.
-- Password : `${x_192652_device42.instance_key}`
-
-Please note that all records will appear to be ignored, because we use the Identification and Reconciliation Engine (IRE).
+:::note
+All records will appear to be ignored, as the Identification and Reconciliation Engine (IRE) handles deduplication.
+:::
-Direct Connection
+**Direct Connection**
-- File path:
+- File Path:
```
/services/data/v1.0/query/?saved_query_name=YOUR_DOQL_NAME&delimiter=,&header=yes&output_type=csv
```
-
-- Username: You may use any value here, but it is required
+- Username: Any value is accepted, but this field is required.
- Password: `${x_192652_device42.instance_key}`
-
-To add a custom DOQL data source, head to **System Import Sets -> Administration -> Data sources** in ServiceNow:
+To add a custom DOQL data source, navigate to **System Import Sets > Administration > Data Sources** in ServiceNow:

-Then go ahead and add your new data source:
+Add your new data source:
-
+
-| Field | Description |
-|------------------|----------------------------------------------------------------------------------------------------------------------------------------|
-| Name | The name of your data source: This can be any value you choose
-| Import set table | The table that you would like the data to be imported into |
-| Type | Default: File |
-| Format | Default: CSV |
-| Server | Default: `${x_192652_device42.server}` |
-| Port | Default: 443 |
-| File Path | **Cloud Connector** `sn/route_doql_csv/YOUR_DOQL_QUERY_NAME` **Direct Connect** `/services/data/v1.0/query/?saved_query_name=YOUR_DOQL_QUERY_NAME` |
-| Username | A username is required to send credentials with requests: This can be any value, for example, `servicenow_data_source` |
-| Password | The password is the verification token of the integration you set up in Device42 |
+| Field | Description |
+|-------|-------------|
+| Name | The name of your data source. This can be any value you choose. |
+| Import set table | The table to import data into. |
+| Type | Default: File |
+| Format | Default: CSV |
+| Server | Default: `${x_192652_device42.server}` |
+| Port | Default: 443 |
+| File Path | **Cloud Connector:** `sn/route_doql_csv/YOUR_DOQL_QUERY_NAME` **Direct Connect:** `/services/data/v1.0/query/?saved_query_name=YOUR_DOQL_QUERY_NAME` |
+| Username | A username is required to send credentials with requests. This can be any value, for example, `servicenow_data_source`. |
+| Password | The verification token of the integration you set up in Device42. |
:::note
-The `is_default` option, which flags Windows and *nix interfaces (most netports) as default, has been added to the `view_netport_v1` view.
+The `is_default` option, which flags Windows and \*nix interfaces (most netports) as default, has been added to the `view_netport_v1` view.
:::
-That's all there is to it. ServiceNow should now have access to your new data source. Should you run into any issues, email [support@device42.com](mailto:support@device42.com).
+ServiceNow now has access to your new data source. For assistance, email [support@device42.com](mailto:support@device42.com).
### The Cloud Connector
-The ServiceNow integration uses the Device42 Cloud Connector to facilitate communication between your ServiceNow Cloud instance and your Device42 instance without requiring that Device42 be exposed to the internet.
-
-The Cloud Connector uses a WebSocket connection initiated by the Device42 appliance to achieve this.
+The ServiceNow integration uses the Device42 Cloud Connector to facilitate communication between your ServiceNow Cloud instance and your Device42 instance without requiring that Device42 be exposed to the internet. The Cloud Connector uses a WebSocket connection initiated by the Device42 appliance.
-For a detailed rundown of the Cloud Connector communication and security architecture, see our [Cloud Connector documentation](integration/external-integrations/device42-cloud-connector-overview.mdx).
+For details on the Cloud Connector communication and security architecture, see the [Cloud Connector documentation](/integration/external-integrations/device42-cloud-connector-overview).
-There is also a direct connection option available on the ServiceNow integration plugin for users who would like to keep their integrations in their private networks.
+A direct connection option is also available for users who prefer to keep their integrations within their private networks.
## Integration Setup and Configuration Overview
-Download the Device42-ServiceNow connector from the [ServiceNow Marketplace](https://store.servicenow.com/sn_appstore_store.do#!/store/application/42597533db201300a189622dca961964/4.2.0?sl=sh).
+Download the Device42 ServiceNow connector from the [ServiceNow Marketplace](https://store.servicenow.com/sn_appstore_store.do#!/store/application/42597533db201300a189622dca961964/4.2.0?sl=sh).
### Install and Configure the Integration
-If you have the latest version of the ServiceNow integration plugin, you will be required to follow a few additional steps to configure the plugin and utilize ServiceNow's Identification and Reconciliation Engine (IRE).
+If you have the latest version of the ServiceNow integration plugin, follow the additional steps below to configure the plugin and use ServiceNow's Identification and Reconciliation Engine (IRE).
-Install needed dependencies on ServiceNow (New York only; Orlando+ has this dependency pre-installed).
+Install the required dependency on ServiceNow (New York only; Orlando and later have this dependency pre-installed):
1. Navigate to **System Definition > Plugins**.
2. Search for **Configuration Management For Scoped Apps (CMDB)**.
-3. Click **Install** and allow the dependency to be installed.
+3. Click **Install** and allow the dependency to install.
-Add Device42 as the data source choice list record (New York and Orlando+).
+Add Device42 as a data source choice list record (New York and Orlando and later):
1. Navigate to **System Definition > Scripts – Background**.
-2. Ensure that the script is set to run in the **global** scope.
-3. Paste the following script into the text box and select **Run Script**.
+2. Ensure the script is set to run in the **global** scope.
+3. Paste the following script into the text box and click **Run Script**.
### Run the Script
@@ -240,11 +235,11 @@ Add Device42 as the data source choice list record (New York and Orlando+).
```
-If you have completed these steps, continue with the rest of the configuration.
+After completing these steps, continue with the rest of the configuration.
-### Main Appliance Configuration
+### Main Appliance Configuration
-1. Ensure that the **External Integration Settings** section of your **Cloud Services Configuration** is correctly set. Head to the Device42 main menu, under **Tools > Cloud Services**, and enter your Device42 instance's URL or IP address in the **D42 URL for SaaS apps** field (for example, `https://myd42url.com`). Fill in your company name and email address. If you aren't based in the USA, you can change to the optional Europe-based Cloud Connector in the same section:
+1. Ensure that the **External Integration Settings** section of your **Cloud Services Configuration** is correctly set. In Device42, go to **Tools > Cloud Services** and enter your Device42 instance URL or IP address in the **D42 URL for SaaS apps** field (for example, `https://myd42url.com`). Fill in your company name and email address. If you are not based in the USA, you can optionally switch to the Europe-based Cloud Connector in the same section:

@@ -252,50 +247,43 @@ If you have completed these steps, continue with the rest of the configuration.
2. Log in to Device42 and go to **Tools > Integrations > External Integrations**.
-3. Create a new External Integration, selecting **ServiceNow** from the **Type:** dropdown and setting the **URL:** as your ServiceNow URL.
-
- 
+3. Create a new External Integration, selecting **ServiceNow** from the **Type** dropdown and setting the **URL** to your ServiceNow URL.
-- Direct Connection
+ 
- If you have the latest version of Device42, you will see an option on the ServiceNow external integration page that displays a **Direct Connect** option. If you would like to configure the integration to use a direct connection, ensure that this option is checked. You cannot go back and change this option (you will have to delete and set up a new configuration), so confirm your settings before creating the integration.
+ - **Direct Connection:** If you have the latest version of Device42, the ServiceNow external integration page includes a **Direct Connect** option. Check this option to configure a direct connection. This setting cannot be changed after saving — you will need to delete and set up a new configuration if you want to change it — so confirm your settings before creating the integration.
-- Cloud Connection
+ - **Cloud Connection:** Ensure that the **Direct Connect** option is unchecked.
- Ensure that the **Direct Connect** option is unchecked.
+ Note the **Verification Token** — you will need to enter it in ServiceNow:
-Note the **Verification Token**, which you'll need to enter in ServiceNow:
+ 
-
+4. Log in to your ServiceNow instance and install the Device42 integration from the [ServiceNow Store](https://store.servicenow.com/sn_appstore_store.do#!/store/application/42597533db201300a189622dca961964/4.2.0?sl=sh).
-4. Log in to your ServiceNow instance and install the Device42 integration.
-
- [Download](https://store.servicenow.com/sn_appstore_store.do#!/store/application/42597533db201300a189622dca961964/4.2.0?sl=sh) and install the Device42-ServiceNow connector from the ServiceNow store and install it.
-
- 
+ 
5. Once installed, search for and select **Device42 Settings**.
- 
+ 
- - Enable editing by clicking at the top of the settings page (See below).
+ - Enable editing by clicking at the top of the settings page.
- Fill in the URL for the Device42 Cloud Connector (`connect.device42.net`).
- - In the next field, paste the Device42 Verification Token you noted in step one, above.
- - Enter your D42 URL and click **Save**.
+ - Paste the Device42 Verification Token from step 3.
+ - Enter your Device42 URL and click **Save**.
-
+ 
-### Scheduled Sync
+### Configure a Scheduled Sync
Configure the data sync schedules as appropriate for your environment. Search ServiceNow for **System Import Sets** to find the schedules page:
-
+
-The Device scheduled job is set to run at a default time which can be modified if needed. The Device scheduled job will automatically trigger the next scheduled job to run, which will then trigger the next scheduled job, and so on until all of the scheduled jobs are run.
+The Device scheduled job runs at a default time, which can be modified. Each scheduled job automatically triggers the next one in sequence until all jobs have run. The order is:
-The order the scheduled jobs will run is:
- Device
-- IP
+- IP
- Software
- Service
- Affinity Group
@@ -306,25 +294,21 @@ The order the scheduled jobs will run is:
- Database to Instance
- Website
-You can click on the Device scheduled job to change period and time. And then you can **Execute Now**.
+Click the Device scheduled job to change the period and time, then click **Execute Now**.
-
+
-The scheduled imports first run the respective data source to collect and store data in the import set tables for a given data source. After this data has been imported into this table a transform script is run to map the data into ServiceNow's internal tables. The ServiceNow integration plugin leverages ServiceNow's IRE module. For more information on this feature, please visit ServiceNow's documentation page:
+The scheduled imports first run the respective data source to collect and store data in the import set tables. After the data is imported, a transform script maps it into ServiceNow's internal tables using the IRE module. For more information, see [ServiceNow's CMDB Identification and Reconciliation documentation](https://www.servicenow.com/docs/bundle/zurich-servicenow-platform/page/product/configuration-management/concept/c_CMDBIdentifyandReconcile.html).
-[https://www.servicenow.com/docs/bundle/zurich-servicenow-platform/page/product/configuration-management/concept/c_CMDBIdentifyandReconcile.html](https://www.servicenow.com/docs/bundle/zurich-servicenow-platform/page/product/configuration-management/concept/c_CMDBIdentifyandReconcile.html)
+
-
-
-To view devices that have been imported or to debug any issues, please visit the import log by navigating to **System Import Sets > Import Log**. This is a very useful page utilized by the IRE and can help you track the majority of common problems
+To view imported devices or debug issues, navigate to **System Import Sets > Import Log**.
### Required ServiceNow User Roles for Non-Admins
-For the ServiceNow integration, there are a few user roles that need to be granted to a user to allow them to edit our Data Sources / Transform Maps. This is not required for the application to run "out of the box," but if customers want to make changes, they'll need to add the following user roles to authorized users.
-
- _ServiceNow User Management Screen_
+To allow non-admin users to edit Data Sources and Transform Maps, assign the following roles:
-The specific groups required (for users who _are not_ already ServiceNow admins) for full integration functionality and the ability to edit the CI transform maps and data sources are:
+
- `import_set_loader`
- `import_transformer`
@@ -332,79 +316,81 @@ The specific groups required (for users who _are not_ already ServiceNow admins)
- `import_admin`
- `x_192652_device42.Device42_Admin`
-A quick overview of the Device42-ServiceNow connector, screenshots, and links to the ServiceNow store can be found on our [ServiceNow integration page](https://www.device42.com/integrations/service-now/)
+These roles are not required for the integration to run out of the box, but are needed if users want to make changes to the CI transform maps or data sources.
-If you have any questions that weren't covered here, feel free to reach out to [support@device42.com](mailto:support@device42.com).
+For an overview of the Device42 ServiceNow connector with screenshots, see the [ServiceNow integration page](https://www.device42.com/integrations/service-now/).
+
+For questions not covered here, contact [support@device42.com](mailto:support@device42.com).
### Increase the Field Size for Imported Device42 Data
-If data coming in from Device42 is being truncated, follow the steps below in ServiceNow to increase the column length limit. These steps are to be done at the discretion of the user. Please be aware that making changes to the `sys_properties` table will affect all applications and cause the field lengths for all import sets to automatically increase in size if the data being imported is greater than the default character limit.
-
-To have the import set table column size automatically based on the size of the data, follow these steps in ServiceNow:
-
-- Search for "tables".
-- Click **System Definition > Tables**.
-- Find the `sys_properties table` and click on it.
-- Scroll down the page and find **Related Links**.
-- Click **Show List**.
-- Add a new system property with the following information:
- - **Name**: `com.glide.loader.verify_target_field_size`
- - **Application**: `Global`
- - **Type**: `true | false`
- - **Value**: `true`
- - **Read Roles**: Appropriate roles (for example, `admin`)
- - **Write Roles**: Appropriate roles (for example, `admin`)
-- Click the **Submit** button.
+If data from Device42 is being truncated, follow these steps in ServiceNow to increase the column length limit.
+
+:::note
+Changes to the `sys_properties` table affect all applications and will cause field lengths for all import sets to automatically increase if imported data exceeds the default character limit.
+:::
+
+To have the import set table column size adjust automatically based on the size of incoming data:
+
+- Search for "tables" and click **System Definition > Tables**.
+- Find the `sys_properties` table and click on it.
+- Scroll to **Related Links** and click **Show List**.
+- Add a new system property with the following values:
+ - **Name:** `com.glide.loader.verify_target_field_size`
+ - **Application:** `Global`
+ - **Type:** `true | false`
+ - **Value:** `true`
+ - **Read Roles:** Appropriate roles (for example, `admin`)
+ - **Write Roles:** Appropriate roles (for example, `admin`)
+- Click **Submit**.
- Run the **D42 Device Import Schedule** scheduled job to sync device data from Device42 to ServiceNow.
The data should now appear in ServiceNow without truncation.
## Update the Integration
-If you updated the ServiceNow app from version 4.0.0 or older, you should run a script to delete old software instance records that were created by the app and are no longer needed. The `cmdb_software_instance` records that should be deleted will have a name that has the format `software_name_instance`. To delete these records, follow the steps below.
+If you updated the ServiceNow app from version 4.0.0 or earlier, run a script to delete old software instance records that are no longer needed. The `cmdb_software_instance` records to delete have names in the format `software_name_instance`.
- Go to **System Definition > Fix Scripts**.
-
- 
-- Search for the fix script with the name `D42_Remove_Software_Instances`.
+ 
+
+- Search for the fix script named `D42_Remove_Software_Instances`.
- 
+ 
-- Click **`D42_Remove_Software_Instances`**.
+- Click **`D42_Remove_Software_Instances`**.
- 
+ 
-- Copy all lines from the script field except the first line, which has `/*`, and the last line, which has `*/`.
+- Copy all lines from the script field except the first line (`/*`) and the last line (`*/`).
- 
+ 
- Go to **System Definition > Scripts – Background**.
- 
+ 
-- Paste the script that you copied into the **Run script** field.
+- Paste the copied script into the **Run script** field.
- 
+ 
-- Select **global** for **in scope**.
-
-- Click the **Run Script** button.
-
- 
+- Set **in scope** to **global**, then click **Run Script**.
+
+ 
## Add the Relationship
-Check if the relationship exists and if it does not add it.
+Check if the relationship exists and, if not, add it.
-- Go to **Configuration > Relation Type Exclusion List**
-
- 
+- Go to **Configuration > Relation Type Exclusion List**.
+
+ 
-- Click **New** to add the Relation
+- Click **New** to add the relation.
- 
+ 
## Technical Support
-Please contact our [support team](mailto:support@device42.com) for technical assistance. We're working on improving and updating this documentation and you can leave feedback by using the **Page Feedback** button at the top of this page.
\ No newline at end of file
+Contact [support@device42.com](mailto:support@device42.com) for technical assistance. You can leave feedback using the **Page Feedback** button at the top of this page.
diff --git a/docs/integration/external-integrations/device42-stackstorm-integration.mdx b/docs/integration/external-integrations/device42-stackstorm-integration.mdx
index a86f9dc93..790753d6b 100644
--- a/docs/integration/external-integrations/device42-stackstorm-integration.mdx
+++ b/docs/integration/external-integrations/device42-stackstorm-integration.mdx
@@ -6,7 +6,7 @@ sidebar_position: 28.5
import ThemedImage from '@theme/ThemedImage'
import useBaseUrl from '@docusaurus/useBaseUrl'
-[StackStorm](https://docs.stackstorm.com/overview.html#about) is well suited to automate a range of IT-management workflows. In response to a trigger event, you can get the StackStorm-Device42 integration to update device details, set user permissions, send Device42 data to other systems, and more.
+[StackStorm](https://docs.stackstorm.com/overview.html#about) is well suited for automating a range of IT management workflows. In response to a trigger event, the StackStorm-Device42 integration can update device details, set user permissions, send Device42 data to other systems, and more.
## Set Up the Integration
@@ -17,7 +17,7 @@ The steps for setting up the StackStorm integration are:
- Configure the plugin using your Device42 credentials.
- Test the integration by querying for a specific device using a StackStorm action.
-Before creating a fully automated workflow, we'll set up the StackStorm-Device42 integration. First, we'll run StackStorm in a Docker container and install the integration plugin (named "Device42 Package" in StackStorm). We'll configure the plugin using our Device42 credentials. Finally, we'll test the integration by querying for a specific device using a StackStorm action.
+Before creating a fully automated workflow, set up the StackStorm-Device42 integration by running StackStorm in a Docker container, installing the integration plugin (named "Device42 Package" in StackStorm), configuring the plugin with your Device42 credentials, and testing the integration by querying for a specific device using a StackStorm action.
### Install StackStorm Using Docker
@@ -63,9 +63,9 @@ st2 login st2admin -p 'Ch@ngeMe'
-Log in to the StackStorm web UI using the default username `st2admin` and password `Ch@ngeMe`.
+Log in to the StackStorm web UI using the default username `st2admin` and password `Ch@ngeMe`.
-Even if you're using the CLI, it's handy to have the StackStorm web UI open for quick feedback on communication attempts and to see the available actions under the **Actions** tab. Later, we'll use the `get_device_by_id` action to test the StackStorm-Device42 setup.
+Even if you're using the CLI, it's useful to have the StackStorm web UI open for quick feedback on communication attempts and to see the available actions under the **Actions** tab. Later, you'll use the `get_device_by_id` action to test the StackStorm-Device42 setup.

@@ -146,24 +146,24 @@ st2 run device42.get_device_by_id device_id=113

-## Example Automation
+## Example Automation
-Let's create an example automation to dynamically set user permissions for a device depending on the device's current lifecycle stage in Device42. The purpose of the automation is to assign which devices each user has access to at a given time, so permissions are granted and revoked as the device moves along the workflow.
+This section walks through an example automation that dynamically sets user permissions for a device based on its current lifecycle stage in Device42. The automation assigns which devices each user can access at a given time, granting and revoking permissions as the device moves along the workflow.
:::tip
-For an overview of the architecture of this integration and additional information, see our in-depth [Dynamic User Permissions with Device42 and StackStorm](https://www.device42.com/blog/2017/11/30/dynamic-user-permissions-with-device42-and-stackstorm/) blog post.
+For an overview of the architecture of this integration and additional information, see the [Dynamic User Permissions with Device42 and StackStorm](https://www.device42.com/blog/2017/11/30/dynamic-user-permissions-with-device42-and-stackstorm/) blog post.
:::
-In Device42, we will create the following lifecycle stages with matching permission groups, also known as admin groups, and a user for each group:
+In Device42, create the following lifecycle stages with matching permission groups (also known as admin groups) and a user for each group:
- Purchasing
- Mounting
- Deployment
- Production
-We'll also create an [object category](https://docs.device42.com/administration/role-based-access-control/) for each lifecycle stage. It's the object category property that will grant role-based permissions when assigned to a device.
+Also create an [object category](https://docs.device42.com/administration/role-based-access-control/) for each lifecycle stage. The object category property grants role-based permissions when assigned to a device.
-In total, we'll add the following four items each to the User, Permission Group, Lifecycle Event, and Object Category components in Device42:
+In total, add the following four items to each of the User, Permission Group, Lifecycle Event, and Object Category components in Device42:
| User | Permission Group | Lifecycle Event | Object Category |
|------------------|----------------------|------------------|------------------|
@@ -173,7 +173,7 @@ In total, we'll add the following four items each to the User, Permission Group,
| production | production_group | production | production_cat |
-Let's break down the automation using an example of adding the "mounting" lifecycle event to a device that's in the "purchasing" stage:
+Here is a breakdown of the automation using an example of adding the "mounting" lifecycle event to a device that's in the "purchasing" stage:
1. The "purchasing" user updates the lifecycle event from "purchasing" to "mounting".
2. A webhook is triggered in Device42, and sends data about the update to StackStorm.
@@ -185,7 +185,7 @@ Let's break down the automation using an example of adding the "mounting" lifecy
### Configure Device42
-To set up an automation, we need to do the following in Device42:
+To set up an automation, complete the following steps in Device42:
1. Enable role-based permissions.
2. Create four permission groups (also called admin groups).
@@ -199,7 +199,7 @@ Navigate to **Tools > Settings > Global Settings**. Click on **Edit**, and chang
#### 2. Create Four Permission Groups
-Navigate to **Tools > Admin Groups** and click **+ Add Admin Group**. Name the group "purchasing_group" and select the permissions for the user. For this demonstration, we granted all permissions with the **Choose all** button. Create the mounting, deploying, and production groups in the same way.
+Navigate to **Tools > Admin Groups** and click **+ Add Admin Group**. Name the group `purchasing_group` and select the permissions for the user. For this example, grant all permissions using the **Choose all** button. Create the mounting, deploying, and production groups in the same way.
-Do this for each of the four users we need, "purchasing", "mounting", "deployment", and "production", and add each new user to their respective permission group.
+Do this for each of the four users — `purchasing`, `mounting`, `deployment`, and `production` — and add each user to their respective permission group.
#### 4. Link Permission Groups to Object Categories
-For each of the four object categories, go to **Infrastructure > Organization > Object Categories** and click **Add Object Category**. Name the category and link it to its respective admin group by clicking *** Add another Group** and selecting the group from the dropdown menu.
+For each of the four object categories, go to **Infrastructure > Organization > Object Categories** and click **Add Object Category**. Name the category and link it to its respective admin group by clicking **+ Add another Group** and selecting the group from the dropdown menu.
-If you log in to Device42 as the "mounting" user, you should see the updated device. This confirms that the StackStorm-Device42 integration is working to create dynamic user permissions.
+If you log in to Device42 as the "mounting" user, you should see the updated device. This confirms that the StackStorm-Device42 integration is working to create dynamic user permissions.
Integrations > Cloud Services**) to allow communication between Device42 and Zendesk.
+As a prerequisite, ensure your [Device42 Cloud Connector](/integration/external-integrations/device42-cloud-connector-overview) is configured under **Tools > Integrations > Cloud Services** to allow communication between Device42 and Zendesk.
### Create a Zendesk API Token
-- To begin, open Zendesk and click the **gear icon** on the left sidebar of the Zendesk interface. Then navigate to **Apps and integrations > API configuration** to enable API token access if it's not already enabled.
+- Open Zendesk and click the **gear icon** on the left sidebar. Navigate to **Apps and integrations > API configuration** to enable API token access if it is not already enabled.
- 
+ 
-- Go to **Apps and integrations > API tokens** and generate a new API access token using the **Add API Token** button.
+- Go to **Apps and integrations > API tokens** and click **Add API Token** to generate a new token.

-- Name the new API token `Device42 Integration`, or something similar, and then copy the token value and save it in a safe and retrievable location.
+- Name the token `Device42 Integration` (or something similar), then copy the token value and save it in a secure location.

@@ -41,8 +41,8 @@ As a prerequisite, ensure your [Device42 Cloud Connector](integration/external-i
Next, enable the Zendesk integration from Device42.
-- Head to **Tools > Integrations > External Integrations** and click the **Create** button.
-- Under **Type** select **Zendesk**.
+- Navigate to **Tools > Integrations > External Integrations** and click **Create**.
+- Under **Type**, select **Zendesk**.
- Enter the **URL** of your Zendesk instance.
-- In the **Token** field, use the **plus icon** and create a new Secret. Enter your Zendesk username followed by `/token` in the **Username** field (for example, `name@company.com/token`). Then paste the Zendesk API token into the **Password** field.
+- In the **Token** field, click the **plus icon** and create a new Secret. Enter your Zendesk username followed by `/token` in the **Username** field (for example, `name@company.com/token`). Paste the Zendesk API token into the **Password** field.
:::note
- Per Zendesk instructions, when authenticating with token access, add `/token` to the end of your username.
+ When authenticating with token access, add `/token` to the end of your username, as required by Zendesk.
:::
-
-- Save the new Zendesk integration and then copy the new **Verification token**, as Device42 generates a new token on saving.
+- Save the new Zendesk integration and copy the **Verification Token** — Device42 generates a new token on saving.
-
-
-Now it's time to install the Zendesk add-on.
### Install the Device42 Add-On for Zendesk
-To begin installing the Device42-Zendesk integration, head to the [Zendesk marketplace](https://www.zendesk.com/marketplace/apps/). If you have trouble with the link, check that you are signed in to your Zendesk account.
+Go to the [Zendesk Marketplace](https://www.zendesk.com/marketplace/apps/). If you have trouble accessing the link, ensure you are signed in to your Zendesk account.
- Search for `Device42 Connector` to locate the integration add-on.

-- Click the Zendesk marketplace **Install** button, choose the name of your account from the dropdown, and click **Install** to continue the installation.
+- Click **Install**, choose your account from the dropdown, and click **Install** again to continue.

-- Name your integration. We used `Device42 connector for Zendesk` in this example.
+- Name your integration (for example, `Device42 connector for Zendesk`).
-- For the **Token** field, provide the **Verification Token** you saved from the Device42 External Integration setup steps above.
+- In the **Token** field, enter the **Verification Token** from the Device42 External Integration setup.

-- Enable role and group restrictions if desired. (In the example, we left them disabled at this stage.)
-- Click **Install** to complete the integration installation.
+- Enable role and group restrictions if desired.
+- Click **Install** to complete the installation.
## Use the Zendesk Connector
Once the plugin is installed, you can associate CIs (Configuration Items) from Device42 with tickets.
-- In Device42, head to any device, building, room, or CI of your choice, and find the **Zendesk** section:
+- In Device42, navigate to any device, building, room, or CI, and find the **Zendesk** section:
-- Click **+ Link to Zendesk ticket** to link an existing ticket by entering the ticket's ID or URL.
-- Click **+ Add New** to add a new ticket:
+- Click **+ Link to Zendesk ticket** to link an existing ticket by entering the ticket's ID or URL.
+- Click **+ Add New** to create a new ticket:
-You'll see any tickets you've created in Zendesk with a link to the associated CI in Device42:
+Tickets created in Zendesk include a link to the associated CI in Device42:

diff --git a/docs/integration/external-integrations/external-logging-config.mdx b/docs/integration/external-integrations/external-logging-config.mdx
index ba8989293..24dd0c17e 100644
--- a/docs/integration/external-integrations/external-logging-config.mdx
+++ b/docs/integration/external-integrations/external-logging-config.mdx
@@ -7,67 +7,75 @@ This page explains how to configure Device42 to send audit log events to externa
## Install an HTTP Plugin
-You will need an http plugin for Logstash or Splunk to send the data to the SIEM / logging platform of your choice. You can get more information and find the downloads at the following links:
+You will need an HTTP plugin for Logstash or Splunk to send data to the SIEM or logging platform of your choice. Find the downloads at the following links:
-**Splunk:** [https://dev.splunk.com/view/event-collector/SP-CAAAE6M](https://dev.splunk.com/view/event-collector/SP-CAAAE6M)
+**Splunk:** [https://dev.splunk.com/view/event-collector/SP-CAAAE6M](https://dev.splunk.com/view/event-collector/SP-CAAAE6M)
-**Logstash:**[https://www.elastic.co/guide/en/logstash/current/plugins-inputs-http.html](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-http.html)
+**Logstash:** [https://www.elastic.co/guide/en/logstash/current/plugins-inputs-http.html](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-http.html)
-## Configure External Logging
+## Integration with External Logging Systems
-Webhooks are the best way to get your logs from Device42 to your external logging platform. Begin by setting up a webhook endpoint:
+Device42 can be integrated with external logging or SIEM systems, such as Splunk or Logstash, using [webhooks](https://codeburst.io/what-are-webhooks-b04ec2bf9ca2). Webhooks send server-side events to a receiving client-side application (also known as "Reverse APIs"). Device42 sends audit log events as webhooks to these platforms for external analysis.
-- Begin by navigating to **“Tools -> Webhooks -> Endpoints** — \[Your Splunk / Logstash instance is your endpoint\]. From this page, click the “Add Webhook Action” button in the upper right \[highlighted\]:
+The following sections walk through setting up this integration using Splunk Enterprise as an example. To get started, navigate to **Tools > Webhooks > Endpoints** (your Splunk or Logstash instance is the endpoint) and click **Add Webhook Endpoint**.

-## Integration with External Logging Systems
+## Configure an HTTP Event Collector (HEC) in Splunk
-Device42 can be integrated with external logging or SIEM systems, such as Splunk or Logstash, with the use of webhooks. [Webhooks](https://codeburst.io/what-are-webhooks-b04ec2bf9ca2) are a methodology of sending server-side details or events to a receiving client-side application, and are also known as “Reverse APIs”. Device42 can send audit log events in the form of webhooks to these other platforms for external analysis.
+To catch the webhooks Device42 produces, configure an [HTTP Event Collector (HEC)](https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector) in Splunk:
-This article will walk through setting up this integration using a lab instance of Splunk Enterprise (v6.6.3)at `http://10.42.2.239:8000`, which does not require any login credentials. Previous documentation on this topic is available here, [External Logging Config – Device42 Documentation | Device42 Documentation](integration/external-integrations/external-logging-config.mdx).
+1. Navigate to **Settings > Data > Data Inputs > HTTP Event Collector**.
+2. Click **Global Settings** in the upper-right corner, select **Enabled** for All Tokens, determine if SSL needs to be enabled, and define the HEC’s listening port number (`8088` is used in this example). Click **Save**.
-## Configure an HTTP Event Collector (HEC) in Splunk
+ 
-In order to catch the webhooks Device42 produces, an [HTTP Event Collector](https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector) needs to be configured within Splunk, the below steps will walk through this process:
+3. Create a new HEC token by clicking **New Token** in the upper-right corner. Give it a name and optional description or Source Name Override (`D42_Webhooks` is used in this example). Click **Next** to display the Input Settings. Change **Source Type** to the **Select** option, enter `json` in the filter, and select `_json`.
+4. Click **Review** and **Submit** to create the HEC. Note the token value — you will need it later.
-1. Navigate to Settings > Data > Data Inputs > HTTP Event Collector.
-2. Click Global Settings in the upper-right corner and select “Enabled” for All Tokens, determine if SSL needs to be enabled, and define the HEC’s listening port number (8088 is used in this demonstration), then Save. 
-3. Create a new HEC token by clicking New Token in the upper-right corner. Give it a Name and optional Description or Source Name Override (D42\_Webhooks is the example created here). Clicking Next displays the Input Settings to define optional input parameters for source type and index; change Source type to the “Select” option, enter “json” in the filter, and select “\_json”.
-4. Review and Submit to create the HEC. This will provide a token value, take note of this but it will be available later if needed.
+ 
## Configure a Webhook Endpoint in Device42
-In Device42, a webhook endpoint needs to be defined that can catch the audit log events Device42 delivers- the newly-configured HEC in Splunk will do this. This section will detail the endpoint creation process, and a screenshot of successful settings will be included at the bottom.
-
-1. Navigate to Tools > Webhooks > Endpoints > Add Webhook Endpoint.
-2. Name the endpoint and define the endpoint URL like `https://ENDPOINT-URL:HEC-PORT/services/collector/raw`. The endpoint used in this example is `https://10.42.2.239:8088/services/collector/raw`. Depending on the HEC settings, http or https may need to be defined. The services/collector/raw REST API endpoint is where Device42 is sending the raw json data to the HEC.
-3. Leave the Endpoint value as the default “Custom”, define credentials if required (not used in this demonstration), set a Retry interval, and Ignore SSL Certificate Errors if necessary.
-4. Two Webhook Headers also need to be defined, the first has a Header Name of “Authorization”, with a Header Token of `Splunk `, where `` is replaced by the HEC token value created earlier in Splunk.
-5. The second has a Header Name of “X-Splunk-Request-Channel” with a Header Token of a randomly generated UUID. This can be created with a Linux utility such as _uuidgen._ The X-Splunk-Request-Channel header field is required because the request sent to the HEC includes raw data.
+Define a webhook endpoint in Device42 to receive the audit log events and forward them to the HEC configured in Splunk.
-
+1. Navigate to **Tools > Webhooks > Endpoints > Add Webhook Endpoint**.
+2. Name the endpoint and define the endpoint URL like `https://ENDPOINT-URL:HEC-PORT/services/collector/raw`. The endpoint used in this example is `https://10.42.2.239:8088/services/collector/raw`. Depending on the HEC settings, HTTP or HTTPS may need to be defined. The `services/collector/raw` REST API endpoint receives raw JSON data from Device42.
+3. Leave the Endpoint value as the default **Custom**, define credentials if required (not used in this example), set a **Retry** interval, and check **Ignore SSL Certificate Errors** if necessary.
+4. Define two Webhook Headers. The first has a **Header Name** of `Authorization` and a **Header Token** of `Splunk `, where `` is the token value created earlier in Splunk.
+5. The second has a **Header Name** of `X-Splunk-Request-Channel` and a **Header Token** set to a randomly generated UUID. You can generate one with a Linux utility such as `uuidgen`. This header is required because the request sent to the HEC includes raw data.
-
+ 
-## Validate Splunk is collecting Device42 Webhooks
+The following screenshot shows a completed webhook endpoint configuration:
-This section will describe creating a Webhook Action in Device42, in order to define the data sent to Splunk. This will then be validated in Splunk to verify that it is collecting the raw json webhoook data by utilizing Splunk’s search functionality.
+
## Create a Webhook Action in Device42
-1. Navigate to Tools > Webhooks > Actions > Add Webhook Action.
-2. Give the Webhook Action a Name, select the categories to create Webhooks for, then define whether add/delete/change/view/login events are delivered. Alternatively, “Process All Categories” can be selected to deliver all webhook types.
-3. Select the Webhook Action Endpoint, which should be the endpoint(s) created in the step above. The example here processes Add, Delete, and Change events for the Device object in Device42. As a test, a “Splunk Logging Device” was created, changed, and deleted.
+Create a Webhook Action to define which Device42 audit events are sent to Splunk, then verify in Splunk that the data is being received.
+
+1. Navigate to **Tools > Webhooks > Actions > Add Webhook Action**.
+2. Give the Webhook Action a name, select the categories to create webhooks for, then define whether add, delete, change, view, or login events are delivered. Alternatively, select **Process All Categories** to deliver all webhook types.
+3. Select the Webhook Action Endpoint created in the previous step. This example processes **Add**, **Delete**, and **Change** events for the Device object in Device42.
+
+ 
+
+## Search for Webhook Events in Splunk
+
+After webhooks have been processed and sent to Splunk, search for them by creating a report.
+
+1. Navigate to **Settings > Knowledge > Searches, Reports, and Alerts > New Report**.
+2. Title your report, enter search parameters, and configure any optional settings. The example here uses `source="http:d42_webhooks"` as input to look for events caught by the HEC configured earlier.
+
+ 
-## Search for Webhook events in Splunk
+3. Save the report and click **Run** from the Searches, Reports, and Alerts list view. The three events below show that the "Splunk Logging Device" was inserted (I), updated (U), and deleted (D).
-1. After webhooks have been processed and sent to Splunk, they can be searched for through Settings > Knowledge > Searches, Reports, and Alerts > New Report.
-2. Title your Report, enter search parameters, and configure any optional settings as needed. The example here uses source=”http:d42\_webhooks” as input and looks only for events caught by the HEC configured earlier.
-3. Save the report and then Run from the resulting Searches, Reports, and Alerts list view. The 3 events below indicates that the “Splunk Logging Device” was inserted (created), updated (changed), and deleted via the I, U, and D actions respectively.
+ 
## Configure Log Storage Duration
-You can also navigate to “Tools -> Settings -> Log Integration to choose how long you want to keep logs in your log solution to save space.
+Navigate to **Tools > Settings > Log Integration** to configure how long to retain logs.

diff --git a/docs/integration/external-integrations/foreman-smart-proxy-plugin.mdx b/docs/integration/external-integrations/foreman-smart-proxy-plugin.mdx
index 783cdffdc..07877aa1e 100644
--- a/docs/integration/external-integrations/foreman-smart-proxy-plugin.mdx
+++ b/docs/integration/external-integrations/foreman-smart-proxy-plugin.mdx
@@ -3,13 +3,15 @@ title: "Foreman Smart Proxy Integration"
sidebar_position: 11
---
-Get even more from Device42 by integrating Device42's IP Address Management (IPAM) features with the Foreman. Device42 already knows all about your subnets as well as the used and free IP addresses on each – so let it provide the next free IP address automatically! Foreman's Smart proxies allow your Puppet & Foreman-based configuration scripts & other automation to request the next available IP on your network directly from Device42, transparently, via a standard DHCP request! The Device42-Foreman Smart-proxy plugin handles the transparent passing of DHCP requests to the D42 API!
+The Device42-Foreman Smart Proxy plugin integrates Device42's IP Address Management (IPAM) features with Foreman. Device42 tracks your subnets and the used and free IP addresses on each, so it can provide the next free IP address automatically. Foreman's Smart Proxies allow your Puppet and Foreman-based configuration scripts and other automation to request the next available IP on your network directly from Device42, transparently, via a standard DHCP request.
-From the point of view of the server making the DHCP request, the smart proxy is transparent. It has no idea \[nor any need to know\] that it is actually getting an IP address from Device42. As far as Device42 can tell, it just received a normal API request for the next available IP. The new CI recording (including _name, IP, and MAC address_) is also recorded in Device42 automatically. Visit the [Device42-Foreman Smart Proxy Integration page to download](https://www.device42.com/integrations/foreman-smart-proxy/).
+From the point of view of the server making the DHCP request, the smart proxy is transparent — it has no idea that it is actually getting an IP address from Device42. As far as Device42 can tell, it received a normal API request for the next available IP. The new CI record (including name, IP, and MAC address) is also created in Device42 automatically.
-## Set Up the Foreman Smart Proxy Plugin by Device42
+Visit the [Device42-Foreman Smart Proxy Integration page](https://www.device42.com/integrations/foreman-smart-proxy/) to download the plugin.
-Installing the smart proxy plugin by Device42 is the same as the installation of any smart proxy plugin into the Foreman (there are many). The below instructions were copied from [these instructions in the Foreman user manual](https://theforeman.org/manuals/1.1/index.html#4.3SmartProxies). Please consult the Foreman Manual directly for more details, but installation should be as simple as:
+## Set Up the Foreman Smart Proxy Plugin
+
+Installing the smart proxy plugin is the same as installing any smart proxy plugin in Foreman. The instructions below were adapted from [the Foreman user manual](https://theforeman.org/manuals/1.1/index.html#4.3SmartProxies). Consult the Foreman manual directly for more details.
Click to expand the code block
@@ -24,12 +26,12 @@ Installing the smart proxy plugin by Device42 is the same as the installation of
```
-Once you've installed the Foreman Smart Proxy package as per Foreman, add the following Device42 specific configuration:
+Once you have installed the Foreman Smart Proxy package, add the following Device42-specific configuration:
-- To enable this DHCP provider, edit `/etc/foreman-proxy/settings.d/dhcp.yml` and set:
+- To enable this DHCP provider, edit `/etc/foreman-proxy/settings.d/dhcp.yml` and set:
```
- :use\_provider: dhcp\_device42
+ :use_provider: dhcp_device42
:subnets: subnets you want to use (optional unless you set device42_subnets to false)
```
@@ -46,6 +48,6 @@ Once you've installed the Foreman Smart Proxy package as per Foreman, add the fo
```
-Note that you can find the above configuration details in the README.MD file included with the [Device42-Foreman Smart Proxy plugin download](https://codeload.github.com/theforeman/smart_proxy_dhcp_device42/zip/refs/heads/master) on the [Device42 Github](https://github.com/theforeman/smart_proxy_dhcp_device42) page.
+You can find the above configuration details in the `README.MD` file included with the [Device42-Foreman Smart Proxy plugin download](https://codeload.github.com/theforeman/smart_proxy_dhcp_device42/zip/refs/heads/master) on the [Device42 GitHub](https://github.com/theforeman/smart_proxy_dhcp_device42) page.
-Should you have issues, please check to see installation instructions haven't changed per the Foreman manual (linked above). If they have changed, or have not changed and your are still experiencing trouble, please do let us know – simply email support@device42.com. Thanks!
+If you encounter issues, check whether installation instructions have changed in the Foreman manual linked above. Contact [support@device42.com](mailto:support@device42.com) for further assistance.
diff --git a/docs/integration/external-integrations/freshservice-integration/customize-freshservice.mdx b/docs/integration/external-integrations/freshservice-integration/customize-freshservice.mdx
index 41ff5902d..ad9085bef 100644
--- a/docs/integration/external-integrations/freshservice-integration/customize-freshservice.mdx
+++ b/docs/integration/external-integrations/freshservice-integration/customize-freshservice.mdx
@@ -8,19 +8,19 @@ import useBaseUrl from '@docusaurus/useBaseUrl'
:::tip
This page covers advanced data mapping customization and XML file editing.
-- For initial setup and installation, see [Setting Up the Device42 Freshservice Integration](index.mdx).
-- For usage and operations, see [Using the Freshservice Integration](use-freshservice-integration.mdx).
+- For initial setup and installation, see [Set Up the Freshservice Integration](/integration/external-integrations/freshservice-integration).
+- For usage and operations, see [Use the Freshservice Integration](/integration/external-integrations/freshservice-integration/use-freshservice-integration).
:::
## Manage Customization with Newer Releases
-The Device42-Freshservice integration ships with a default mapping file. Newer versions of the mapping file may include sending additional elements to Freshservice (such as assets, devices, CIs, and metadata). We share these new additions in the [Freshservice mapping release notes](/release-notes/freshservice-mapping/mapping-4.0-changes).
+The Device42-Freshservice integration ships with a default mapping file. Newer versions of the mapping file may include sending additional elements to Freshservice (such as assets, devices, CIs, and metadata). These new additions are documented in the [Freshservice mapping release notes](/release-notes/freshservice-mapping/mapping-4.0-changes).
If you make an adjustment and use a custom XML file, Device42 will not update the custom XML during updates.
If you want to incorporate updates, you need to do so manually: Download the current XML file, compare it to your customized XML file, and add in the new items as needed.
-We recommend keeping track of your customizations so they can be added to the latest default mapping file.
+Keep track of your customizations so they can be added to the latest default mapping file.
## Get Started with Custom Data Mapping
@@ -28,7 +28,7 @@ To get started, download the default mapping XML file and view the current mappi
### Download the `mapping.xml` File
-- [From the **Settings** tab of the **Configuration** page](index.mdx#find-the-settings-tab), scroll down to the **Schedule Synchronization** section and click the **Data Mapping** button to reveal the custom mapping buttons.
+- [From the **Settings** tab of the **Configuration** page](/integration/external-integrations/freshservice-integration#find-the-settings-tab), scroll down to the **Schedule Synchronization** section and click the **Data Mapping** button to reveal the custom mapping buttons.
- Click the **Download Default Mapping** button to download the `mapping.xml` file. Customize the mapping between fields in Device42 and Freshservice by downloading, editing, and [reuploading](#reupload-the-mappingxml-file) the `mapping.xml` file.
@@ -71,7 +71,7 @@ For example, the following `` element copies software information from Dev
```
-Let's take a closer look at the attributes and elements of the `` elements so you can understand what to adapt or emulate to suit your particular case.
+The following sections describe the attributes and elements of `` elements so you can understand what to adapt or emulate.
### The `` Element Attributes
@@ -81,7 +81,7 @@ Let's take a closer look at the attributes and elements of the `` elements
```
- Note that if you turn off a task that has `asset` or `asset_relationship` as its corresponding Freshservice type (for example, devices, business services, and resources in Device42), you'll need to find and remove its corresponding query snippet in the `Delete` cleanup tasks. For an example, see [this answer in the FAQ section](#how-do-i-prevent-a-relationship-between-two-device42-asset-types-from-syncing-to-freshservice).
+ Note that if you turn off a task that has `asset` or `asset_relationship` as its corresponding Freshservice type (for example, devices, business services, and resources in Device42), you need to find and remove its corresponding query snippet in the `Delete` cleanup tasks. For an example, see [this answer in the FAQ section](#how-do-i-prevent-a-relationship-between-two-device42-asset-types-from-syncing-to-freshservice).
- `name`: You can edit the task name. Task names appear in the integration app's **Data Mapping Chart**.
- `type`: Holds the [Freshservice classification](https://api.freshservice.com/) of the data. The valid types are:
@@ -120,11 +120,11 @@ Typically, the first `` represents the Device42 data returned from the qu
- `resource`: The same as the `target` value.
- `source-type`: Not functionally critical; this provides the data type displayed on the integration app's **Data Mapping Chart**.
-- `target`: The Device42 field to be mapped to Freshservice. The Freshservice convention is to use the display name in snake case, occasionally with the ID of the asset type as a suffix. For example, `memory_max_usage` and `memory_reservation_used`. The sync process determines the ID. Please look up which target field names to use in the [Freshservice API documentation](https://api.freshservice.com/).
+- `target`: The Device42 field to be mapped to Freshservice. The Freshservice convention is to use the display name in snake case, occasionally with the ID of the asset type as a suffix. For example, `memory_max_usage` and `memory_reservation_used`. The sync process determines the ID. Look up which target field names to use in the [Freshservice API documentation](https://api.freshservice.com/).
- `escape`: This is used on field elements where `target="name"`. Some characters used in Device42 names aren't supported in Freshservice and need to be substituted. When creating a new task, you can set this to `true`, but disable it if mismatching issues occur.
:::tip
-Use our InsightsAI chat under **Analytics > InsightsAI** to interpret DOQL query snippets quickly in the context of the Device42 data tables.
+Use the InsightsAI chat under **Analytics > InsightsAI** to interpret DOQL query snippets quickly in the context of the Device42 data tables.
:::
### Additional Matching Criteria for Updating Existing Items
@@ -154,7 +154,7 @@ Some `` elements in `mapping.xml` have a helper `` element for u
### Reupload the `mapping.xml` File
-Save the file and reupload it to Freshservice, using the **Upload Custom Mapping** button [in the **Settings** tab of the **Configuration** page](index.mdx#find-the-settings-tab).
+Save the file and reupload it to Freshservice, using the **Upload Custom Mapping** button [in the **Settings** tab of the **Configuration** page](/integration/external-integrations/freshservice-integration#find-the-settings-tab).

@@ -310,7 +310,7 @@ Field names in Freshservice are automatically generated according to the followi
- Replacing spaces with underscores
- Appending the asset type ID to the end of the field name (this suffix provides a means of verifying the field name, and is visible in the Freshservice interface but not required in the XML file)
-For example, the custom field with the `Used By` label in Freshservice is represented internally as `used_by_12345467`, but you'll use `used_by` in the `mapping.xml` file.
+For example, the custom field with the `Used By` label in Freshservice is represented internally as `used_by_12345467`, but you would use `used_by` in the `mapping.xml` file.
Use the following steps to verify that the field name is correct:
@@ -338,7 +338,7 @@ Control whether changes made to Device42 asset types and contracts will update t
### Control Asset Type Updates
-When you customize asset type mappings in the `mapping.xml` file, you can control whether your changes update existing assets in Freshservice. See [Asset-Type Update Behavior](use-freshservice-integration.mdx#asset-type-update-behavior) for more details about the **Update asset type for existing assets** setting.
+When you customize asset type mappings in the `mapping.xml` file, you can control whether your changes update existing assets in Freshservice. See [Asset-Type Update Behavior](/integration/external-integrations/freshservice-integration/use-freshservice-integration#asset-type-update-behavior) for more details about the **Update asset type for existing assets** setting.
### Control Contract Updates
@@ -542,7 +542,7 @@ You can map existing Device42 contract data to custom fields in Freshservice con

-6. Run the [sync](index.mdx#run-the-data-synchronization).
+6. Run the [sync](/integration/external-integrations/freshservice-integration#run-the-data-synchronization).
### How Do I Change an Existing Mapping to Pull From a Different Device42 Field?
@@ -652,7 +652,7 @@ Set the `enable` attribute to `false` on those `` elements:

-5. Run a [partial sync](index.mdx#run-the-data-synchronization) to confirm that contract items are no longer being synced, or wait until the scheduled sync runs.
+5. Run a [partial sync](/integration/external-integrations/freshservice-integration#run-the-data-synchronization) to confirm that contract items are no longer being synced, or wait until the scheduled sync runs.
### Example 2: How Do I Prevent Software Imports From Syncing to Freshservice?
@@ -703,7 +703,7 @@ Set the `enable` attribute to `false` on those `` elements:
```
4. Save the file and reupload it to Freshservice with the [**Upload Custom Mapping** button](#reupload-the-mappingxml-file).
-5. Run a [partial sync](index.mdx#run-the-data-synchronization) to confirm that software items are no longer being synced, or wait until the scheduled sync runs.
+5. Run a [partial sync](/integration/external-integrations/freshservice-integration#run-the-data-synchronization) to confirm that software items are no longer being synced, or wait until the scheduled sync runs.
- Go to **Assets > Software** in the integration app. The page is populated before you disable software imports:
diff --git a/docs/integration/external-integrations/freshservice-integration/index.mdx b/docs/integration/external-integrations/freshservice-integration/index.mdx
index ae5dc97bb..8513ed0e9 100644
--- a/docs/integration/external-integrations/freshservice-integration/index.mdx
+++ b/docs/integration/external-integrations/freshservice-integration/index.mdx
@@ -1,5 +1,5 @@
---
-title: "Setting Up the Freshservice Integration"
+title: "Set Up the Freshservice Integration"
sidebar_position: 1
---
@@ -8,8 +8,8 @@ import useBaseUrl from '@docusaurus/useBaseUrl'
:::tip
This page covers the initial setup and installation of the Freshservice integration.
-- For daily usage and operations, see [Using the Freshservice Integration](use-freshservice-integration.mdx).
-- For advanced data mapping customization, see [Advanced Freshservice Mapping and Customization](customize-freshservice.mdx).
+- For daily usage and operations, see [Using the Freshservice Integration](/integration/external-integrations/freshservice-integration/use-freshservice-integration).
+- For advanced data mapping customization, see [Advanced Freshservice Mapping and Customization](/integration/external-integrations/freshservice-integration/customize-freshservice).
:::
## About the Device42 Freshservice Integration
@@ -41,7 +41,7 @@ Ensure that cloud services are enabled and configured:
1. Navigate to **Tools > Integrations > Cloud Services**.
2. Enter your Device42 IP address or FQDN in the **D42 URL for SaaS apps** field.
-3. Select your **Cloud Connector** location or environment. It's set to **USA** by default.
+3. Select your **Cloud Connector** location or environment. The default is **USA**.
Integrations > External Integrations** and click **+ Add External Integration**.
:::caution
- Please **do not** use the **Verification Token** generated when configuring the external integration, as this value will change when you save. Copy the token from the list page view after saving.
+ Do **not** use the **Verification Token** generated when configuring the external integration, as this value will change when you save. Copy the token from the list page view after saving.
:::
2. Enter the **URL** of your Freshservice instance.
3. Under **Type**, choose **Freshservice**.
-4. You can optionally select **Enable Freshworks SSO** to activate single sign-on (SSO). We recommend using this feature for a seamless login experience when working with the integration.
+4. You can optionally select **Enable Freshworks SSO** to activate single sign-on (SSO). This feature is recommended for a seamless login experience when working with the integration.
Integrations > Cloud Services**.
2. Check the GUID of your other Device42 instances (hot standby, development, and so on).
@@ -183,5 +183,5 @@ To action this:
Once you have completed the setup, you can:
-- [Use the Freshservice Integration](use-freshservice-integration.mdx) for data synchronization, and understanding data flows.
-- [Customize the Freshservice Integration](customize-freshservice.mdx) for advanced data mapping and XML configuration.
+- [Use the Freshservice Integration](/integration/external-integrations/freshservice-integration/use-freshservice-integration) for data synchronization and understanding data flows.
+- [Customize the Freshservice Integration](/integration/external-integrations/freshservice-integration/customize-freshservice) for advanced data mapping and XML configuration.
diff --git a/docs/integration/external-integrations/freshservice-integration/use-freshservice-integration.mdx b/docs/integration/external-integrations/freshservice-integration/use-freshservice-integration.mdx
index 7d1ed5a57..2c44af686 100644
--- a/docs/integration/external-integrations/freshservice-integration/use-freshservice-integration.mdx
+++ b/docs/integration/external-integrations/freshservice-integration/use-freshservice-integration.mdx
@@ -1,5 +1,5 @@
---
-title: "Using the Freshservice Integration"
+title: "Use the Freshservice Integration"
sidebar_position: 2
---
@@ -8,11 +8,11 @@ import useBaseUrl from '@docusaurus/useBaseUrl'
:::tip
This page covers the usage and operations of the Freshservice integration.
-- For initial setup and installation instructions, see [Setting Up the Device42 Freshservice Integration](index.mdx).
-- See [Advanced Freshservice Mapping and Customization](customize-freshservice.mdx) for instructions and examples on modifying the default sync.
+- For initial setup and installation instructions, see [Set Up the Freshservice Integration](/integration/external-integrations/freshservice-integration).
+- See [Advanced Freshservice Mapping and Customization](/integration/external-integrations/freshservice-integration/customize-freshservice) for instructions and examples on modifying the default sync.
:::
-## Using the Integration App
+## Use the Integration App
Configure the **Device42 for Freshservice** app to sync data from Device42 to Freshservice.
@@ -38,7 +38,7 @@ The **Update asset type for existing assets** checkbox controls whether asset ty
### Run the Data Synchronization
-The sync imports new CIs and updates the existing ones within Freshservice. We recommend running a full sync after installing the integration app. Configure the following options [from the **Settings** tab](#find-the-settings-tab):
+The sync imports new CIs and updates existing ones within Freshservice. Running a full sync after installing the integration app is recommended. Configure the following options [from the **Settings** tab](#find-the-settings-tab):
To schedule the sync and automatically fetch data from Device42 daily, check the **Use Schedule** checkbox and enter a **Sync Time (UTC)** at which to perform the sync.
@@ -93,7 +93,7 @@ When Device42 deploys a new Cloud Connector server as part of its usual maintena
## View Mapped and Unmapped Data for Specific Assets
-We understand that some fields within Device42 may not easily translate to fields within Freshservice. We've added the ability to view these fields from one location, eliminating the need to navigate between applications. To view the mapped and unmapped data for a device within Freshservice, follow the steps below.
+Some fields in Device42 may not directly translate to fields in Freshservice. The integration provides the ability to view these fields from one location, eliminating the need to navigate between applications. To view the mapped and unmapped data for a device in Freshservice, follow the steps below.
1. Navigate to **Assets > Inventory** from the Freshservice dashboard. On the Inventory screen, select the asset (imported from Device42) for which you want to view mapped and unmapped data.
@@ -337,7 +337,7 @@ The **Contract Type** dropdown in Freshservice displays the available contract t
| Maintenance | Purchase Line Item types: Service, In-Service, Subscription, (none) |
| Software License | Software Licensing |
-### Sync Purchase Line Items Types to Contracts
+### Sync Purchase Line Item Types to Contracts
In Device42, a **Purchase Line Item** is an individual entry associated with a larger purchase (located under **Infrastructure > Purchases**). Contract purchase line item subtypes include **Lease**, **Warranty**, **Subscription**, **Service**, and **In-Service**. The subtype **(None)** is used for unspecified types:
@@ -391,7 +391,7 @@ Warranty information from Device42 is brought into Freshservice, with **Warranty

-## Syncing Business Services to Freshservice
+## Sync Business Services to Freshservice
Using the default mapping, **Business Services** in Device42 are synced to Freshservice as the **Business Service** asset type. The business service relationships are also synced.
@@ -417,6 +417,6 @@ The example business service in Freshservice above looks like this in Device42:
}}
/>
-## Deleting the Freshservice External Integration
+## Delete the Freshservice External Integration
Before deleting the Freshservice external integration in Device42 or making changes to your Cloud Services configuration, first uncheck the **Enable Freshworks SSO** option in the Appliance Manager, under **Global Settings > SAML/SSO Settings**.
diff --git a/docs/integration/external-integrations/hashicorp-vault-integration.mdx b/docs/integration/external-integrations/hashicorp-vault-integration.mdx
index b91e16534..0368a7992 100644
--- a/docs/integration/external-integrations/hashicorp-vault-integration.mdx
+++ b/docs/integration/external-integrations/hashicorp-vault-integration.mdx
@@ -1,51 +1,54 @@
----
-title: "HashiCorp Vault Integration"
-sidebar_position: 12.5
----
-
-Each Device42 autodiscovery job is configured to use one (or more) sets of system credentials. If you already use HashiCorp Vault to manage passwords and other secrets, or simply don't want to use Device42 for this purpose, the Device42 HashiCorp Vault integration allows Device42 to securely store and retrieve these credentials externally as your primary secret management solution.
-
-HashiCorp Vault offers useful features such as automatic password rotation, which can be configured to rotate secrets per your specific corporate policies and industry guidelines.
-
-:::info
-Please note that passwords retrieved from HashiCorp Vault are not viewable in Device42.
-:::
-
-## Configuring HashiCorp Vault
-
-- **(Required) Role ID / Secret ID:** For the HashiCorp Vault integration to work, you will need to create an AppRole in HashiCorp Vault with a policy that grants "read" to the desired Secret Paths.
- - AppRole authentication is done by using both "RoleID" and "SecretID" as credentials.
- - Details on how to create an AppRole and retrieve the RoleID and SecretID can be found [here](https://developer.hashicorp.com/vault/docs/auth/approle).
-- **(Required) Secret Engine Path:** You will also need to specify the path to a valid K/V Version 1 or Version 2 secret engine to retrieve secrets from. Example: secret, kv, foo, bar, etc.
-- **(Optional) Namespace:** If you're leveraging Multi-Tenancy with Namespaces then you will need to include the Namespace as well. Note: This is Limited to Vault Enterprise Standard or HCP Vault Clusters.
-
-
-## Configuring Device42
-
-- Select **Tools > Integrations > HashiCorp Vault** from the Device42 menu.
-
-
-
-- Click on the **Edit** button in the bottom right corner and enter your HashiCorp Vault RESTful API information. (Example below)
-
-
-
-- Verify connectivity by clicking the **Test Settings** button in the top right corner.
-
-
-
-- The **Test Settings** button attempts to validate the supplied configuration settings by retrieving a token from HashiCorp Vault. If a token is successfully retrieved, a message stating "HashiCorp Vault Settings Valid" should appear in the top right corner. (Example Success Response Below)
-
-
-
-- If you run into configuration errors related to SSL errors, you may need to disable SSL Verification within the HashiCorp Vault configuration page before trying again.
-
-
-
-## Using the Device42 HashiCorp Vault Integration for Discovery
-
-To create a new password object using HashiCorp Vault, simply select HashiCorp Vault from the **Password Storage** drop-down menu:
-
-
-
-**Note:** By default, both usernames and passwords are retrieved from HashiCorp Vault by looking up the secret using its path within the vault. The value used to do the lookup is assumed to be stored in the **Label** field of the related Secret in Device42. If there is no value for **Label** then the value is taken from the **Username** field instead. Usernames and passwords are parsed from the Secret returned by HashiCorp Vault using the slugs "username" and "password" respectively. You may also override the default slugs used by utilizing **Password Custom fields** named **username_slug** and **password_slug**.
+---
+title: "HashiCorp Vault Integration"
+sidebar_position: 12.5
+---
+
+Each Device42 discovery job is configured to use one or more sets of system credentials. If you already use HashiCorp Vault to manage passwords and other secrets, the Device42 HashiCorp Vault integration allows Device42 to securely retrieve these credentials from HashiCorp Vault as your primary secret management solution.
+
+HashiCorp Vault offers useful features such as automatic password rotation, which can be configured to rotate secrets per your specific corporate policies and industry guidelines.
+
+This page covers how to configure HashiCorp Vault, connect it to Device42, and use it as the credential source for discovery jobs.
+
+:::info
+Passwords retrieved from HashiCorp Vault are not viewable in Device42.
+:::
+
+## Configure HashiCorp Vault
+
+Configure the following settings in HashiCorp Vault before connecting to Device42:
+
+- **(Required) Role ID and Secret ID:** Create an AppRole in HashiCorp Vault with a policy that grants "read" access to the desired secret paths. AppRole authentication uses both `RoleID` and `SecretID` as credentials. See the [HashiCorp AppRole documentation](https://developer.hashicorp.com/vault/docs/auth/approle) for details on creating an AppRole and retrieving these values.
+- **(Required) Secret Engine Path:** Specify the path to a valid KV Version 1 or Version 2 secret engine to retrieve secrets from. For example: `secret`, `kv`, `foo`, `bar`.
+- **(Optional) Namespace:** If you are using multi-tenancy with namespaces, include the namespace as well. Note that this is limited to Vault Enterprise Standard or HCP Vault clusters.
+
+## Configure Device42
+
+1. Select **Tools > Integrations > HashiCorp Vault** from the Device42 menu.
+
+ 
+
+2. Click the **Edit** button in the bottom right corner and enter your HashiCorp Vault RESTful API information.
+
+ 
+
+3. Verify connectivity by clicking the **Test Settings** button in the top right corner.
+
+ 
+
+ The **Test Settings** button validates the supplied configuration settings by retrieving a token from HashiCorp Vault. If successful, a "HashiCorp Vault Settings Valid" message appears in the top right corner.
+
+ 
+
+4. If you encounter SSL errors, disable SSL Verification on the HashiCorp Vault configuration page before trying again.
+
+ 
+
+## Use the Integration for Discovery
+
+To create a new password object using HashiCorp Vault, select **HashiCorp Vault** from the **Password Storage** dropdown menu.
+
+
+
+**Note:** By default, both usernames and passwords are retrieved from HashiCorp Vault by looking up the secret using its path within the vault. The value used for the lookup is assumed to be stored in the **Label** field of the related secret in Device42. If there is no value for **Label**, the value is taken from the **Username** field instead.
+
+Usernames and passwords are parsed from the secret returned by HashiCorp Vault using the slugs `username` and `password` respectively. You can override the default slugs using **Password Custom Fields** named `username_slug` and `password_slug`.
diff --git a/docs/integration/external-integrations/index.mdx b/docs/integration/external-integrations/index.mdx
index 11720563b..2e1c85b37 100644
--- a/docs/integration/external-integrations/index.mdx
+++ b/docs/integration/external-integrations/index.mdx
@@ -5,16 +5,33 @@ authors:
- d42docadmin
---
-Device42 integrates with many popular 3rd party ITSM, CM, SIEM, or IPAM tools. Use the sidebar on the left for guidance on third-party specific software integration.
+Device42 integrates with many popular third-party ITSM, CM, SIEM, and IPAM tools to keep your IT infrastructure data consistent and actionable across your organization. Use the sidebar to find setup and configuration guidance for specific integrations.
+
+## Integration Docs
+
+The following integrations are documented in this section, among others. Use the sidebar to browse all available pages.
+
+| Integration Type | Integrations |
+|------------------|--------------|
+| ITSM | [Jira](/integration/external-integrations/jira-integrations), [Freshservice](/integration/external-integrations/freshservice-integration), [ServiceNow](/integration/external-integrations/device42-servicenow-connector), [Zendesk](/integration/external-integrations/device42-zendesk-connector), [Cherwell](/integration/external-integrations/cherwell-integration), [HP Service Manager](/integration/external-integrations/device42-hp-service-manager-integration) |
+| Alerting and Incident Management | [PagerDuty](/integration/external-integrations/pagerduty-integration), [Opsgenie](/integration/external-integrations/opsgenie-integration), [Nagios](/integration/external-integrations/monitor-device42-health-status-in-nagios) |
+| Knowledge and Collaboration | [Confluence](/integration/external-integrations/device42-confluence-connector) |
+| Password and Secrets Management | [CyberArk](/integration/external-integrations/cyberark-integration), [Delinea Secret Server](/integration/external-integrations/delinea-secret-server-integration), [HashiCorp Vault](/integration/external-integrations/hashicorp-vault-integration), [Microsoft LAPS](/integration/external-integrations/microsoft-laps-integration) |
+| Configuration Management | [Puppet and Chef](/integration/external-integrations/puppet-and-chef-integrations), [SaltStack](/integration/external-integrations/device42-saltstack-integration), [Foreman Smart Proxy](/integration/external-integrations/foreman-smart-proxy-plugin) |
+| CI/CD and Automation | [Jenkins](/integration/external-integrations/jenkins-integration), [StackStorm](/integration/external-integrations/device42-stackstorm-integration), [Zapier](/integration/external-integrations/zapier-integration), [Webhooks](/integration/external-integrations/webhooks-generic-integration), [Rundeck](/integration/external-integrations/collect-node-data-from-device42-for-rundeck) |
+| Data and Analytics | [ODBC Driver](/integration/external-integrations/odbc-driver-integration), [JDBC Driver](/integration/external-integrations/jdbc-driver-integration), [PowerBI](/integration/external-integrations/powerbi-integration) |
+| Cloud and Migration | [Cloud Connector](/integration/external-integrations/device42-cloud-connector-overview), [Cloud Services Settings](/integration/external-integrations/cloud-services-settings), [Azure Migrate](/integration/external-integrations/azure-migrate), [Carbonite Migration](/integration/external-integrations/carbonite-migration), [Aperture VISTA Migration](/integration/external-integrations/aperture-vista-to-device42-migration) |
## Download Integration Tools
In addition to an extensive API library, Device42 provides connectors that make integrations easy.
-**Browse & download integrations:** [https://www.device42.com/integrations/](https://www.device42.com/integrations/)
+**Browse and download integrations:** [https://www.device42.com/integrations/](https://www.device42.com/integrations/)
## Tools for Custom Integrations
-**Bulk Data Management Tools**: [https://www.device42.com/bulk-data-management/](https://www.device42.com/bulk-data-management/) Device42 RESTful API Documentation: [https://api.device42.com/](https://api.device42.com/)
+Device42 offers the following resources for building custom integrations:
-Various other useful integrations, import, sample scripts, and open source tools we've written can be found on our GitHub site: [https://github.com/device42](https://github.com/device42).
+- **Bulk Data Management Tools:** [https://www.device42.com/bulk-data-management/](https://www.device42.com/bulk-data-management/)
+- **Device42 RESTful API documentation:** [https://api.device42.com/](https://api.device42.com/)
+- **Sample scripts and open source tools:** [https://github.com/device42](https://github.com/device42)
diff --git a/docs/integration/external-integrations/jdbc-driver-integration.mdx b/docs/integration/external-integrations/jdbc-driver-integration.mdx
index 77a62af1c..757d3a80d 100644
--- a/docs/integration/external-integrations/jdbc-driver-integration.mdx
+++ b/docs/integration/external-integrations/jdbc-driver-integration.mdx
@@ -3,37 +3,33 @@ title: "JDBC Driver Integration"
sidebar_position: 21
---
-The Device42 Java Database Connectivity (JDBC) driver allows you to connect to Device42 and pull data externally as a JDBC data source. The JDBC driver can be used on any platform that supports Java.
+The Device42 Java Database Connectivity (JDBC) driver lets you connect to Device42 and pull data externally as a JDBC data source. The driver works on any platform that supports Java and is compatible with any JDBC-compatible client.
-Download the Device42 JDBC driver – which should work with any JDBC-compatible client – directly from the [Device42 Miscellaneous Tools download page](https://www.device42.com/miscellaneous-tools/).
+Download the Device42 JDBC driver from the [Device42 Miscellaneous Tools download page](https://www.device42.com/miscellaneous-tools/).
## JDBC System Requirements
-System requirements for connecting to Device42 via JDBC are:
+The following are required to connect to Device42 via JDBC:
-- A current Device42 installation, properly configured, licensed, running, and accessible.
-- A host system for the D42 JDBC driver running a platform that supports Java.
+- A current Device42 installation that is properly configured, licensed, running, and accessible.
+- A host system for the Device42 JDBC driver running a platform that supports Java.
- A JDBC-compatible client to connect to the Device42 JDBC data source.
-## Install the Device42 JDBC Driver
-
-To install the Device42 JDBC driver, download the JAR file from [https://www.device42.com/miscellaneous-tools/](https://www.device42.com/miscellaneous-tools/).
-
## Connect SQL Workbench to the Device42 JDBC Data Source
These steps are for SQL Workbench; other JDBC-compatible clients will have similar steps.
-1. Install SQL Workbench/J ([https://dev.mysql.com/doc/workbench/en/wb-installing.html)](https://dev.mysql.com/doc/workbench/en/wb-installing.html).
+1. Install [SQL Workbench/J](https://dev.mysql.com/doc/workbench/en/wb-installing.html).
2. Run SQL Workbench/J.
-3. Click **File** -> **Connect Window** -> **Manage Drivers**.
-4. Create new driver using the path to the downloaded JDBC driver JAR file and the classname _com.device42.jdbc.D42Driver_.
+3. Click **File > Connect Window > Manage Drivers**.
+4. Create a new driver using the path to the downloaded JDBC driver JAR file and the class name `com.device42.jdbc.D42Driver`.
-
+
-5. Create a new profile using the created driver with a URL such as _jdbc:doql://sandbox.device42.com:443_ (port 443) and your credentials to your Device42 instance. Replace _sandbox.device42.com_ with your Device42 instance.
+5. Create a new profile using the driver you created, with a URL such as `jdbc:doql://sandbox.device42.com:443` and your Device42 credentials. Replace `sandbox.device42.com` with your Device42 instance hostname.
-
+
6. Test a query.
-
+
diff --git a/docs/integration/external-integrations/jenkins-integration.mdx b/docs/integration/external-integrations/jenkins-integration.mdx
index 5b1aad6e9..666139b23 100644
--- a/docs/integration/external-integrations/jenkins-integration.mdx
+++ b/docs/integration/external-integrations/jenkins-integration.mdx
@@ -3,62 +3,83 @@ title: "Jenkins Integration"
sidebar_position: 14
---
-If you use Jenkins, the popular open-source automation server, it's likely your automated jobs authenticate against one or more local and/or remote systems as part of their tasks. The Device42/Jenkins integration allows Device42 to securely store & retrieve these credentials within Device42, which boasts a robust built-in secret/password management solution. Instead of trying to store new or existing credentials in your automation scripts, or in Jenkins in addition to countless other locations, leverage the centralized secret store in Device42.
+The Device42-Jenkins integration allows Jenkins automation jobs to securely retrieve credentials stored in Device42 via the Device42 API. Instead of storing credentials in automation scripts or in multiple locations, you can leverage the centralized secret store in Device42.
-Simply add or update a secret/password in Device42, and with the Jenkins integration, your automation instantly has access to the updated credentials. Forget manual credentials updates across your infrastructure!
+When you add or update a secret in Device42, your Jenkins automations instantly have access to the updated credentials. This page covers how to install, configure, and use the Device42-Jenkins credentials plugin.
-If you like this integration, check out the [Device42 integration page](https://www.device42.com/integrations/) for even more time saving & efficiency boosting features!
+## Install the Device42-Jenkins Integration
-
+
-## Installing the Device42-Jenkins Integration
+### Build the Jenkins Plugin From Source (Optional)
-
+**Maven** is required to build the plugin.
-### Build he Jenkins plugin from source (optional)
+1. Clone the Device42 Jenkins Plugin repo from GitHub:
-_Note: **Maven** is required to build the plugin._
+ ```
+ git clone https://github.com/device42/device42-jenkins-credentials-plugin
+ ```
-1. Begin by cloning the Device42 Jenkins Plugin repo from Device42's Github: `git clone https://github.com/device42/device42-jenkins-credentials-plugin`
-2. Next, change your working directory to the plugin directory of the repo you just cloned: `cd device42-jenkins-credentials-plugin`
-3. Call Maven install to build the plugin: `mvn install -DskipTests`
-4. Follow "Configuring Jenkins" section below to install the plugin you just built into Jenkins.
+2. Change your working directory to the plugin directory:
-### Configuring Jenkins
+ ```
+ cd device42-jenkins-credentials-plugin
+ ```
-1. Login to your Jenkins instance.
-2. Select the 'Manage Jenkins' Gear icon from the menu on the left, and then choose ‘Manage Plugins’ (green puzzle piece) --> 'Advanced' tab.
-3. Click the "Browse" button under the "Upload Plugin" heading _(2nd from top)_ and select the `Device42.hpi` Device42 plugin you downloaded _\[or built from source\]_.
-4. Click "Open" on the dialog, and then click the "Upload" button to upload the plugin to Jenkins: 
+3. Call Maven install to build the plugin:
-
+ ```
+ mvn install -DskipTests
+ ```
-### Configuring Device42
+4. Follow the [Configure Jenkins](#configure-jenkins) section below to install the plugin you just built.
-Device42 doesn't require any specific configuration for the integration other than having your D42 Main appliance up and running & its API accessible.
+### Configure Jenkins
-New passwords and Secrets are created & managed within Device42 (no changes from your usual workflow), and those secrets are read by the integration via the Device42 API each time Jenkins automation runs.
+1. Log in to your Jenkins instance.
+2. Select the **Manage Jenkins** gear icon from the menu on the left, then choose **Manage Plugins** > **Advanced** tab.
+3. Click **Browse** under the **Upload Plugin** heading and select the `Device42.hpi` plugin you downloaded or built from source.
+4. Click **Open** on the dialog, then click **Upload** to upload the plugin to Jenkins.
-
+ 
-### Using the Device42-Jenkins credentials integration
+### Configure Device42
-The Device42-Jenkins credentials integration allows you to use passwords/secrets stored in Device42 within Jenkins automations by pulling them via the Device42 API when Jenkins automations run. Credentials stored within Device42 are made available in Jenkins as _variables_, the names of which are user-customizable. Each D42 credential variable may be referenced as many times as desired within a Jenkins automation.
+Device42 does not require any specific configuration for the integration other than having your main appliance running and its API accessible.
-The following example walks through embedding a new credential into a Jenkins automation, and then pulls it and a second credential from Device42 and stores attributes from both into a text file, which can then be seen on the host instance, thus demonstrating the concept. Users can then use this technique to power any integration needed across their enterprise utilizing secrets centrally and securely stored within Device42:
+Passwords and secrets are created and managed within Device42 as usual. The integration reads those secrets via the Device42 API each time a Jenkins automation runs.
-1. Begin by creating a new Jenkins automation Job _\[via the + button tab\]_, or opening an existing Job for editing within Jenkins _\[by clicking its name\]_: 
-2. Within the job configuration, scroll down to "Bindings" (or click the "build triggers" tab to jump). Click the "Add" button (#1), and choose "Device42 Secret credentials" (#2) from the popup to insert a D42 credential variable. Click the "Add" button with the key icon (#3) to select the Device42 credential you want to add: 
-3. You can now specify the details of the Device42 credential you'd like to associate. Specify the following: **Kind** of credential - which in this case is a _'Device42 Secret Credential'_, **Scope**: _(required)_\- availability of your credential variable to other Jenkins jobs, **Device**: _(required)_\- the name of the device the credential is associated with in Device42, **User**: _(required)_\- the username associated with credential/secret in Device42 **ID**: _(normally left blank & auto-generated)_ - An internal unique ID assigned to the credential; useful for scripted configurations. **Description** - _(optional)_\- specify a descriptive description so you can recognize this credential in Jenkins \[and tell it apart from others w/ the same username\] 
-4. You may now reference your new Device42 credential variable using the `$Variable_Name` as specified in the _Execute Shell_:  Repeat the above steps to add more credentials from Device42, if desired.
-5. Congratulations - You're all set! Go ahead and leverage the Device42 - Jenkins integration to power some of your production automation jobs, and say good-bye to the scramble that goes along with trying to update credentials in 2038342 different places last minute!
+### Use the Device42-Jenkins Credentials Integration
-
+The integration allows you to use passwords and secrets stored in Device42 within Jenkins automations by pulling them via the Device42 API when Jenkins automations run. Credentials stored in Device42 are made available in Jenkins as variables, the names of which are user-customizable. Each credential variable can be referenced as many times as needed within a Jenkins automation.
-If you have any questions about the Device42-Jenkins plugin, or are experiencing issues, please open a ticket @ [support.device42.com](https://support.device42.com) or [email support@device42.com](mailto:support@device42.com) and we'll do the best we can to help. Note that we only provide basic troubleshooting assistance for problems involving the integration itself.
+The following example walks through embedding a new credential into a Jenkins automation, pulling it and a second credential from Device42, and storing attributes from both into a text file on the host instance.
-* * *
+1. Create a new Jenkins automation job (via the **+** button tab) or open an existing job for editing (by clicking its name).
+
+ 
+
+2. Within the job configuration, scroll down to **Bindings** (or click the **Build Triggers** tab to jump). Click **Add** and choose **Device42 Secret Credentials** from the popup to insert a credential variable. Click the **Add** button with the key icon to select the Device42 credential you want to add.
+
+ 
-Download the [Device42 Jenkins integration plugin](https://github.com/device42/device42-jenkins-credentials-plugin/) today.
+3. Specify the details of the Device42 credential you want to associate:
+ - **Kind:** The credential type — in this case, **Device42 Secret Credential**.
+ - **Scope:** (Required) The availability of your credential variable to other Jenkins jobs.
+ - **Device:** (Required) The name of the device the credential is associated with in Device42.
+ - **User:** (Required) The username associated with the credential in Device42.
+ - **ID:** (Normally left blank and auto-generated) An internal unique ID assigned to the credential, useful for scripted configurations.
+ - **Description:** (Optional) A description to help you recognize this credential in Jenkins.
+
+ 
+
+4. Reference your new Device42 credential variable using `$Variable_Name` in the **Execute Shell**. Repeat the above steps to add more credentials from Device42 as needed.
+
+ 
+
+Contact [support@device42.com](mailto:support@device42.com) if you have questions about the Device42-Jenkins plugin or encounter issues.
+
+* * *
-_Note that Device42 is required to use the Device42-Jenkins plugin_. [Download a free trial](https://www.device42.com/download/) _\[all features, no nag-ware\]_ now!
+Download the [Device42 Jenkins integration plugin](https://github.com/device42/device42-jenkins-credentials-plugin/) from GitHub.
diff --git a/docs/integration/external-integrations/jira-integrations/device42-jira-assets-integration.mdx b/docs/integration/external-integrations/jira-integrations/device42-jira-assets-integration.mdx
index 570ddbc3a..ab8bc5e0e 100644
--- a/docs/integration/external-integrations/jira-integrations/device42-jira-assets-integration.mdx
+++ b/docs/integration/external-integrations/jira-integrations/device42-jira-assets-integration.mdx
@@ -5,7 +5,7 @@ sidebar_position: 1
import ThemedImage from '@theme/ThemedImage'
import useBaseUrl from '@docusaurus/useBaseUrl'
-Integrate your Device42 instance with Atlassian Jira Service Management (JSM) Cloud to benefit from our autodiscovery capabilities and have your latest IT management information available.
+Integrate your Device42 instance with Atlassian Jira Service Management (JSM) Cloud to keep your latest IT asset data in sync and available directly within Jira.
:::warning
Please note that [the JSM Assets app](https://marketplace.atlassian.com/search?query=device42) is the currently supported Device42-Jira integration app. It is available on the Atlassian Marketplace.
@@ -13,7 +13,7 @@ Please note that [the JSM Assets app](https://marketplace.atlassian.com/search?q
Support for the 'external' JSM Assets integration app [ended on December 30, 2024](https://community.developer.atlassian.com/t/shutdown-notice-update-on-deprecation-of-the-external-assets-platform/81193), as Atlassian has implemented asset capabilities that are 'internal' (native) to its premium Jira platform.
:::
-The instructions below describe the initial setup process of integrating Device42 with your JSM Cloud account.
+This page describes the initial setup process for integrating Device42 with your JSM Cloud account.
## Prerequisites
@@ -50,4 +50,4 @@ A successful connection will display the green "Connection Enabled" status.

-See the [JSM solution guide](solution-guides/jira-service-management-integration.mdx) for information on connection statuses, using object schema imports, and setting user permissions.
+See the [JSM solution guide](/solution-guides/jira-service-management-integration) for information on connection statuses, using object schema imports, and setting user permissions.
diff --git a/docs/integration/external-integrations/jira-integrations/device42-jira-cloud-integration.mdx b/docs/integration/external-integrations/jira-integrations/device42-jira-cloud-integration.mdx
index bcd0803bf..8be975da6 100644
--- a/docs/integration/external-integrations/jira-integrations/device42-jira-cloud-integration.mdx
+++ b/docs/integration/external-integrations/jira-integrations/device42-jira-cloud-integration.mdx
@@ -6,12 +6,12 @@ import ThemedImage from '@theme/ThemedImage'
import useBaseUrl from '@docusaurus/useBaseUrl'
:::warning
-Please note that [the JSM Assets app](https://marketplace.atlassian.com/search?query=device42) is the currently supported Device42-Jira integration app. It is available on the Atlassian Marketplace.
+The integration described on this page uses the external JSM Assets app, which was deprecated on December 30, 2024. The setup steps below may no longer reflect the current UI or behavior.
-Support for the 'external' JSM Assets integration app [ended on December 30, 2024](https://community.developer.atlassian.com/t/shutdown-notice-update-on-deprecation-of-the-external-assets-platform/81193), as Atlassian has implemented asset capabilities that are 'internal' (native) to its premium Jira platform.
+The currently supported integration is the [Device42 for Jira Service Management Assets app](https://marketplace.atlassian.com/search?query=device42). See the [Jira Service Management Assets Integration](/integration/external-integrations/jira-integrations/device42-jira-assets-integration) page for setup instructions.
:::
-Integrate your Device42 instance with Jira Service Management (JSM) to manage your team's tasks, linking them directly to the impacted assets.
+This page covers the installation, configuration, and usage of the now-deprecated external JSM integration between Device42 and Jira Service Management (JSM) Cloud.
## Installation and Configuration
@@ -34,7 +34,7 @@ Prepare your Device42 instance for cloud service integration by navigating to **
}}
/>
-### Configuring Device42
+### Configure Device42
1. From the Device42 menu, go to **Tools > Integrations > External Integrations** and click on the **Add External Integration** button.
@@ -56,7 +56,7 @@ Prepare your Device42 instance for cloud service integration by navigating to **
}}
/>
-3. Copy the Device42 **Verification Token**, which you'll use to configure the JSM app in the next section.
+3. Copy the Device42 **Verification Token**, which you will use to configure the JSM app in the next section.
-### Configuring Jira
+### Configure Jira
To install and configure the Jira-side integration, log in to your Jira Cloud account and proceed as follows:
@@ -82,7 +82,7 @@ To install and configure the Jira-side integration, log in to your Jira Cloud ac

-### Configuring, Uninstalling, or Verifying the Installation of the JSM App
+### Manage the JSM App
1. You can view and manage the JSM app from your Jira instance. Go to **Apps > Manage your apps** and click on the **Device42 Jira Service Management** app under the "User-installed apps" heading.
2. Click on **Configure** to link your Device42 instance as detailed in the [previous section](#configuring-jira).
@@ -166,7 +166,7 @@ The new issue is now attached to the CI.
### Customizing Which Assets Sync
-By default, syncs run daily at 2 AM and only sync "Devices". You can customize the data synced from Device42 by adding new Sync [DOQL queries](reports/device42-doql/index.mdx), customizing existing queries, or writing your own.
+By default, syncs run daily at 2 AM and only sync "Devices". You can customize the data synced from Device42 by adding new Sync [DOQL queries](/reports/device42-doql), customizing existing queries, or writing your own.
Edit the DOQL selection for sync by going to **Tools > Integrations > External Integrations** and selecting the JSM external integration.
diff --git a/docs/integration/external-integrations/jira-integrations/device42-jira-integration.mdx b/docs/integration/external-integrations/jira-integrations/device42-jira-integration.mdx
index 4dae7c0f3..776530577 100644
--- a/docs/integration/external-integrations/jira-integrations/device42-jira-integration.mdx
+++ b/docs/integration/external-integrations/jira-integrations/device42-jira-integration.mdx
@@ -3,9 +3,7 @@ title: "Jira (self-managed) Integration"
sidebar_position: 3
---
-:::info
-Atlassian Server is in the process of being [discontinued](https://www.atlassian.com/blog/platform/atlassian-server-is-going-away-next-steps) and the future of self-managed products is via the [Atlassian Data Center](https://www.atlassian.com/enterprise/data-center).
-:::
+Use the Device42 - CMDB with REST APIs for Jira app to integrate Device42 with a self-hosted (Data Center) Jira instance. This page covers installation, configuration, custom fields, CI filters, and workflow automation.
## Integration Prerequisites
@@ -14,9 +12,9 @@ To use the self-hosted Device42-Jira integration, users must have:
* A running **Device42** virtual appliance, populated with configuration items (CIs) to sync to Jira.
* A properly configured **self-hosted Jira instance** with administrator access.
-_*If you are looking to integrate Device42 with Jira Service Management and/or Jira Cloud, see the [Device42-Jira Service Management/Cloud integration page.](device42-jira-cloud-integration.mdx)_
+If you are looking to integrate Device42 with Jira Service Management or Jira Cloud, see the [Jira Service Management Integration](/integration/external-integrations/jira-integrations/device42-jira-cloud-integration) page.
-## Device42-jira Self-hosted Integration Features
+## Device42-Jira Self-Hosted Integration Features
The Device42-Jira integration offers users the following functionality:
@@ -32,10 +30,10 @@ The Device42-Jira integration offers users the following functionality:
The **Device42 - CMDB with REST APIs for Jira** app is the part of Atlassian Marketplace, so you can easily install it using the Universal Plugin Manager (UPM). The app's search capability is provided by Jira from the Jira search box.
-If you have some specific environment that blocks Jira from accessing the internet, you can install Device42 plugin manually. Download the latest version of the app from this [Atlassian Marketplace](https://marketplace.atlassian.com/apps/1213601/device42-cmdb-with-rest-apis-for-jira?tab=overviewhttps://marketplace.atlassian.com/apps/1213601/device42-cmdb-with-rest-apis-for-jira?tab=overviewhosting=datacenter) link. Or copy and paste the following URL into your browser:
+If you have some specific environment that blocks Jira from accessing the internet, you can install Device42 plugin manually. Download the latest version of the app from this [Atlassian Marketplace](https://marketplace.atlassian.com/apps/1213601/device42-cmdb-with-rest-apis-for-jira) link. Or copy and paste the following URL into your browser:
```
-https://marketplace.atlassian.com/apps/1213601/device42-cmdb-with-rest-apis-for-jira?tab=overviewhttps://marketplace.atlassian.com/apps/1213601/device42-cmdb-with-rest-apis-for-jira?tab=overviewhosting=datacenter
+https://marketplace.atlassian.com/apps/1213601/device42-cmdb-with-rest-apis-for-jira
```
:::info
@@ -310,7 +308,9 @@ Create filter templates to use as preset settings for the the Device42 Custom Fi

-**Note:** if you haven't selected any CIs under general settings you will see an error message.
+:::note
+If you haven't selected any CIs under **General Settings**, you will see an error message.
+:::
### Load a Filter Template
@@ -329,9 +329,9 @@ Project administrators can load filter templates to any project. The filter temp
## Work With Jira Issues
-### View issue
+### View an Issue
-On view screens a Device42 Custom Field looks so:
+On view screens, a Device42 Custom Field looks like this:

@@ -371,7 +371,9 @@ If you don't see your custom field, you can add it by clicking on the **Configur

-> For the large scope of CIs plugin uses ajax to request the data for the CI selection list, so the CIs are loaded by portions. It is possible to search the custom field by the term. The search scope is the display name of the CI. In the future, we plan to extend this functionality and use the smart search of data.
+:::note
+For large sets of CIs, the plugin uses AJAX to load CI data in portions. You can filter the list by typing part of a CI's display name into the search field.
+:::
* * *
@@ -379,7 +381,7 @@ If you don't see your custom field, you can add it by clicking on the **Configur
Device42 custom fields allow full-text search on the CI IDs and parameters. Almost all parameters are available for search, however, users cannot specify exact parameters to search. For example, if you search for the word '_Device_' you will find the issues with a custom field containing devices and custom fields with other CI types that contain the word 'device' in their name.
-### Simple search
+### Simple Search
1. Open the issue navigator. Select 'Simple' search mode
2. Click the 'More' selection list. Search for the custom field by name
@@ -387,7 +389,7 @@ Device42 custom fields allow full-text search on the CI IDs and parameters. Almo
4. Add the search criteria in the text box under the filter
5. Click the 'Update' button. You will see the issues filtered by the custom field inside the issue navigator
-### Advanced search
+### Advanced Search
1. Open the issue navigator. Select 'Advanced' search mode
2. Type the search request using JQL query language. Supported operators for the field: '~', '!~', 'IS EMPTY', 'IS NOT EMPTY'.
diff --git a/docs/integration/external-integrations/jira-integrations/index.mdx b/docs/integration/external-integrations/jira-integrations/index.mdx
index 4d307fb3e..9b589c1d6 100644
--- a/docs/integration/external-integrations/jira-integrations/index.mdx
+++ b/docs/integration/external-integrations/jira-integrations/index.mdx
@@ -2,19 +2,21 @@
title: "Jira Integrations Overview"
---
-For Premium or Enterprise Jira Service Management accounts:
+Device42 integrates with Jira Service Management (JSM) to let you attach Device42 assets directly to Jira issues and keep CI data in sync between the two systems. The integration app and setup steps vary depending on your Jira account type.
-- Use the [Device42 for Jira Service Management **Assets** app](https://marketplace.atlassian.com/apps/1229672/device42-for-jira-service-management-assets?hosting=cloud&tab=overview) from the Atlassian Marketplace to integrate Jira Service Management with Device42.
-- Learn [how to connect your Device42 instance to your Jira Service Management account](device42-jira-assets-integration.mdx).
-- See the [Device42 for JSM assets](/solution-guides/jira-service-management-integration/#configure-device42-for-jsm-assets-the-settings-tab.mdx) sections of the Jira Integration solution guide for more guidance. The Jira solution guide includes use-case examples that practically demonstrate Device42-Jira integration features.
+**Premium or Enterprise Jira Service Management accounts:**
-For Jira Cloud accounts:
+- Use the [Device42 for Jira Service Management Assets app](https://marketplace.atlassian.com/apps/1229672/device42-for-jira-service-management-assets?hosting=cloud&tab=overview) from the Atlassian Marketplace.
+- See the [Jira Service Management Assets Integration](/integration/external-integrations/jira-integrations/device42-jira-assets-integration) page to connect your Device42 instance to your JSM account.
+- See the [Device42 for JSM Assets](/solution-guides/jira-service-management-integration/#configure-device42-for-jsm-assets-the-settings-tab) section of the Jira Integration solution guide for use-case examples.
+
+**Jira Cloud accounts:**
- Use the [Device42 for Jira Service Management app](https://marketplace.atlassian.com/search?query=device42).
-- Learn how to synchronize data from Device42 to your Jira instance and how to link or create Jira issues in the [Jira Service Management integration guide](device42-jira-cloud-integration.mdx).
-- For additional context on the Device42-Jira installation, see the [Device42 for Jira Service Management](/solution-guides/jira-service-management-integration/#device42-for-jira-service-management.mdx) sections in the Jira Integration solution guide.
+- See the [Jira Service Management Integration](/integration/external-integrations/jira-integrations/device42-jira-cloud-integration) guide to synchronize data and link or create Jira issues from Device42.
+- See the [Device42 for Jira Service Management](/solution-guides/jira-service-management-integration/#device42-for-jira-service-management) section of the Jira Integration solution guide for additional context.
-For self-hosted Jira accounts:
+**Self-hosted Jira accounts:**
-- Use the connector app, [Device42 - CMDB with REST APIs for Jira](https://marketplace.atlassian.com/apps/1213601/device42-cmdb-with-rest-apis-for-jira?hosting=datacenter&tab=overview).
-- See the [Jira (self-managed) Integration page](device42-jira-integration.mdx) for a comprehensive guide to integrating your self-hosted Jira instance with Device42, including instructions for downloading and installing the app, filtering Device42 configuration items (CIs), and creating custom fields to link CIs to Jira issues.
\ No newline at end of file
+- Use the [Device42 - CMDB with REST APIs for Jira](https://marketplace.atlassian.com/apps/1213601/device42-cmdb-with-rest-apis-for-jira?hosting=datacenter&tab=overview) connector app.
+- See the [Jira (Self-Managed) Integration](/integration/external-integrations/jira-integrations/device42-jira-integration) page for a comprehensive guide to installing the app, filtering configuration items (CIs), and creating custom fields to link CIs to Jira issues.
\ No newline at end of file
diff --git a/docs/integration/external-integrations/microsoft-laps-integration.mdx b/docs/integration/external-integrations/microsoft-laps-integration.mdx
index 4f45d0691..c6ffdd6ef 100644
--- a/docs/integration/external-integrations/microsoft-laps-integration.mdx
+++ b/docs/integration/external-integrations/microsoft-laps-integration.mdx
@@ -3,8 +3,8 @@ title: "Microsoft LAPS Integration"
sidebar_position: 18
---
-Device42 integrates with and can pull a password from the Microsoft LAPS (Local Admin Password Solution). Microsoft LAPS refers to a method which secures Active Directory member servers by randomly generating each server’s local admin password, and storing the generated PW as an attribute of that servers AD object in Active Directory. This password can then be looked up on demand via an Active Directory / LDAP query, and is often used to support scripted / automated actions that iterate through lists of AD member servers.
+Device42 integrates with Microsoft LAPS (Local Admin Password Solution) and can retrieve passwords stored by it. Microsoft LAPS secures Active Directory member servers by randomly generating each server's local admin password and storing it as an attribute of that server's AD object. The password can then be retrieved on demand via an Active Directory or LDAP query, and is commonly used to support scripted or automated actions that iterate through lists of AD member servers.
-**[Click here to jump to the Microsoft LAPS section of the Windows Discovery documentation page!](/auto-discovery/windows-and-hyper-v-auto-discovery.mdx)**
+For setup instructions, see the [Microsoft LAPS section of the Windows Discovery documentation page](/auto-discovery/windows-and-hyper-v-auto-discovery).
-If you want to [Download LAPS from Microsoft, click here.](https://www.microsoft.com/en-us/download/details.aspx?id=46899) For further resources/information on LAPS, see the [Microsoft LAPS Section of the Windows Discovery docs page](/auto-discovery/windows-and-hyper-v-auto-discovery.mdx) (also linked above)!
+To download LAPS, visit the [Microsoft Download Center](https://www.microsoft.com/en-us/download/details.aspx?id=46899).
diff --git a/docs/integration/external-integrations/monitor-device42-health-status-in-nagios.mdx b/docs/integration/external-integrations/monitor-device42-health-status-in-nagios.mdx
index 7d3319487..5871e460d 100644
--- a/docs/integration/external-integrations/monitor-device42-health-status-in-nagios.mdx
+++ b/docs/integration/external-integrations/monitor-device42-health-status-in-nagios.mdx
@@ -3,16 +3,18 @@ title: "Nagios Integration"
sidebar_position: 19
---
-Device42 offers a [Nagios plugin for Device42](https://github.com/device42/Device42-Nagios-Health-Check). It is available for download via Github, and allows easy monitoring of the health status of your Device42 appliance. Data returned includes:
+The Device42 Nagios plugin lets you monitor the health status of your Device42 appliance from within Nagios. This page covers how to install and configure the plugin, add Device42 to Nagios, and view health status data.
-- Device42 Database Size
-- Appliance Disk space usage
+The plugin is [available on GitHub](https://github.com/device42/Device42-Nagios-Health-Check) and returns the following data:
+
+- Device42 database size
+- Appliance disk space usage
- Memory usage
- CPU usage
-## Install the Nagios Add-On
+## Install the Nagios Plugin
-Prior to installing the plugin, there are a couple prerequisites we should make sure are installed.
+Before installing the plugin, ensure the following prerequisites are installed.
On Ubuntu:
@@ -20,48 +22,48 @@ On Ubuntu:
apt-get install libnagios-plugin-perl libjson-perl libwww-perl
```
-On Redhat:
+On Red Hat:
```
yum install perl-JSON.noarch perl-Nagios-Plugin.noarch
```
-To install the Nagios plugin, clone the repository to your nagios server, e.g.:
+To install the plugin, clone the repository to your Nagios server:
```
git clone https://www.github.com/device42/nagios
```
-Copy the check\_d42\_health.pl file to your Nagios plugin directory:
+Copy the `check_d42_health.pl` file to your Nagios plugin directory:
```
cp check_d42_health.pl /usr/local/nagios/libexec/
```
-And make it executable:
+Make it executable:
```
chmod +x /usr/local/nagios/libexec/check_d42_health.pl
```
-Next, copy the d42.cfg file to your Nagios configuration path, (e.g. /usr/local/nagios/etc/objects):
+Copy the `d42.cfg` file to your Nagios configuration path (for example, `/usr/local/nagios/etc/objects`):
```
cp d42.cfg /usr/local/nagios/etc/objects
```
-Edit d42.cfg in your favorite editor and customize the following lines, starting on line 30:
+Edit `d42.cfg` and customize the following lines, starting on line 30:
```
define host{
- host_name device42 # if you edit the hostname, be sure to edit the hostname in the services defined as well
- alias device42
- address 192.168.11.211
+ host_name device42 # if you edit the hostname, be sure to edit the hostname in the services defined as well
+ alias device42
+ address 192.168.11.211
```
### Use SSL with the Integration
-To enable checking over SSL, in the Health Check Command section of d42.cfg, add the port number with the -P option and --ssl to enable ssl, e.g:
+To enable checking over SSL, add the port number with the `-P` option and `--ssl` in the Health Check Command section of `d42.cfg`:
```
command_line /usr/bin/perl $USER1$/check_d42_health.pl -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$ -c $ARG3$ -P 4343 --ssl
@@ -69,31 +71,29 @@ command_line /usr/bin/perl $USER1$/check_d42_health.pl -H $HOSTADDRESS$ -I $A
## Add Device42 to Nagios
-With the scripts in place and configured, the last step is to edit your nagios.cfg file and add a line to add the Device42 configuration:
+With the scripts in place and configured, edit your `nagios.cfg` file and add a line to include the Device42 configuration:
```
cfg_file=/usr/local/nagios/etc/objects/d42.cfg
```
-Be sure to change the path to reflect where you've place the d42.cfg file.
-
-After this, restart Nagios:
+Update the path to match where you placed the `d42.cfg` file, then restart Nagios:
```
service nagios restart
```
-Now when you browse to Nagios, you should see your Device42 instance start to report information:
+After restarting, browse to Nagios to see your Device42 instance reporting health information.
-## View Device42's Health Status in Nagios
+## View Device42 Health Status in Nagios
-When you select the Device42 host from Nagios, you will now be able to see the appliance's current status via the various health checks:
+When you select the Device42 host from Nagios, you can see the appliance's current status via the various health checks:

-The Backup Status will report an error if any one of your backup jobs has failed. The Free disk space, memory, and swap statuses have thresholds that can be set in d42.cfg. When setting the thresholds “50” will trigger the flag if the value is greater than 50 while “50:” will trigger the flag if the value is less than 50.
+Backup Status reports an error if any backup job has failed. The free disk space, memory, and swap statuses have thresholds that can be set in `d42.cfg`. A threshold of `50` triggers the flag if the value is greater than 50, while `50:` triggers the flag if the value is less than 50.
-The following are suggested 'sane' thresholds for the default Device42 disk size and default allotted memory. Note if your appliance is using difference settings, you'll want to configure these appropriately: 50GB HDD, and 4GB RAM:
+The following are suggested thresholds for the default Device42 disk size (50 GB HDD) and default allotted memory (4 GB RAM). If your appliance uses different settings, configure these values accordingly:
* * *
@@ -113,8 +113,8 @@ The following are suggested 'sane' thresholds for the default Device42 disk size

-You can also view the trending data for any health stat by clicking the service and then "View Trending Data for this Service"
+You can view trending data for any health stat by clicking the service and then **View Trending Data for this Service**.

-A log of all statuses is available for the host by clicking "View Notifications for this Host".
+A log of all statuses is available for the host by clicking **View Notifications for this Host**.
diff --git a/docs/integration/external-integrations/odbc-driver-integration.mdx b/docs/integration/external-integrations/odbc-driver-integration.mdx
index 7d7c20716..f5094e522 100644
--- a/docs/integration/external-integrations/odbc-driver-integration.mdx
+++ b/docs/integration/external-integrations/odbc-driver-integration.mdx
@@ -3,127 +3,127 @@ title: "ODBC Driver Integration"
sidebar_position: 20
---
-The Device42 ODBC driver allows users to connect to Device42 and pull data externally as an ODBC (Open Database Connectivity) data source. The current ODBC driver installs on Microsoft Windows, and Device42 provides instructions to leverage both generic ODBC connectivity, and to connect Microsoft PowerBI to your Device42 ODBC datasource below.
+The Device42 ODBC driver lets you connect to Device42 and pull data externally as an ODBC (Open Database Connectivity) data source. The driver installs on Microsoft Windows and supports generic ODBC connectivity as well as connecting Microsoft PowerBI to your Device42 ODBC data source.
-**Download the Device42 ODBC driver** (which should work with many ODBC-compatible consumers) directly from the [Device42 Miscellaneous Tools Download page](https://www.device42.com/miscellaneous-tools/).
+**Download the Device42 ODBC driver** from the [Device42 Miscellaneous Tools Download page](https://www.device42.com/miscellaneous-tools/).
## ODBC System Requirements
-System requirements for connecting to Device42 via ODBC are as follows:
+The following are required to connect to Device42 via ODBC:
-- Current Device42 installation, properly configured, licensed, running, and accessible.
-- A host system for the D42 ODBC driver running Microsoft Windows.
-- PowerBI software to follow the tutorial below to connect to the Device42 ODBC data source.
+- A current Device42 installation that is properly configured, licensed, running, and accessible.
+- A host system for the Device42 ODBC driver running Microsoft Windows.
+- PowerBI software, if you want to follow the tutorial below to connect to the Device42 ODBC data source.
-### Install the Device42 ODBC Driver
+## Install the Device42 ODBC Driver
-To install the Device42 ODBC driver, download the .exe installer from https://device42.com and double-click to install on a Microsoft Windows-based instance. Follow the instructions on the screen, clicking **Next** until you see **Installation Complete**, indicating you have finished installing the Device42 ODBC data source driver:
+To install the Device42 ODBC driver, download the `.exe` installer from https://www.device42.com/miscellaneous-tools/ and double-click to run it on a Microsoft Windows-based system. Follow the on-screen instructions, clicking **Next** until you see **Installation Complete**:

-## Connect PowerBI to the Device42 ODBC Datasource
+## Connect PowerBI to the Device42 ODBC Data Source
-Device42's ODBC driver works to connect Microsoft PowerBI directly to your Device42 CMDB. For details on using PowerBI with Device42's ODBC driver, see the [Microsoft PowerBI Integration documentation](integration/external-integrations/powerbi-integration.mdx).
+The Device42 ODBC driver works with Microsoft PowerBI to connect directly to your Device42 CMDB. For details, see the [Microsoft PowerBI Integration documentation](/integration/external-integrations/powerbi-integration).
## Create a DSN
-1. To create or pre-define a DSN (Data Source Name), open the Windows ODBC Data Source Administrator via the Windows Start Menu. **Windows 10:** Click **Start > Windows Administrative Tools > ODBC Data Sources (64-bit)** (note there is also a 32-bit version, which you can ignore). **Windows 7:** Click **Start > All Programs > Administrative Tools > Data Sources (ODBC)**:
+To create or pre-define a DSN (Data Source Name), open the Windows ODBC Data Source Administrator:
+
+- **Windows 10:** Click **Start > Windows Administrative Tools > ODBC Data Sources (64-bit)**.
+- **Windows 7:** Click **Start > All Programs > Administrative Tools > Data Sources (ODBC)**.

-2. Click the **Add** button to begin adding a new datasource. In the **Create New Data Source** window that is displayed, choose **Device42 ODBC Driver** and click **Finish**:
+1. Click **Add** to begin adding a new data source. In the **Create New Data Source** window, choose **Device42 ODBC Driver** and click **Finish**:

-3. On the **Device42 ODBC Driver DSN Configuration** screen that is displayed, enter values as explained below:
+2. On the **Device42 ODBC Driver DSN Configuration** screen, enter values as described below:

-- **DSN Name**: The name to identify this DSN.
-- **Server Host**: The host name of the Device42 server.
-- **Port**: The port number that the Device42 server is servicing requests on. The default value is the standard SSL port of 443. If you leave this field blank, it will also default to 443.
-- **Username**: The username you use to login to Device42.
-- **Password**: The password you use to login to Device42.
+- **DSN Name:** The name to identify this DSN.
+- **Server Host:** The host name of the Device42 server.
+- **Port:** The port number that the Device42 server uses for requests. The default is the standard SSL port `443`. If you leave this field blank, it also defaults to `443`.
+- **Username:** The username you use to log in to Device42.
+- **Password:** The password you use to log in to Device42.
:::note
-The ODBC connection requires a valid SSL certificate on your Device42 instance, otherwise the connection will error out. If you're using Device42 for internal use only and don't have a valid certificate, you can upload a self-signed certificate to your Main Appliance and restart the service to get the ODBC connection working.
+The ODBC connection requires a valid SSL certificate on your Device42 instance, otherwise the connection will fail. If you're using Device42 for internal use only and don't have a valid certificate, you can upload a self-signed certificate to your Main Appliance and restart the service to get the ODBC connection working.
:::
-4. Click the **Test** button to try connecting using the information you specified. You will receive a message if the connection could or could not be made. If the connection could not be made, verify that the information you entered is correct.
-5. Click the **Save** button to save the changes you made to the DSN. Your changes will only be saved if the information entered results in a successful connection. If the connection could not be made, verify that the information you entered is correct.
+3. Click **Test** to try connecting using the information you specified. You will receive a message indicating whether the connection succeeded. If it did not, verify the information you entered.
+4. Click **Save** to save the DSN. Changes are only saved if the connection is successful.
-Setup of the Device42 ODBC DSN is complete. You should now be able to utilize the pre-configured DSN throughout PowerBI.
+The Device42 ODBC DSN is now configured and available for use in PowerBI.
---
## Import Data Into MS SQL Server
-Using the Device42 ODBC driver, it is possible to import data directly into SQL Server. The following procedure will facilitate a data import. (The following instructions are for Windows 10 and may differ from other versions of Windows).
+Using the Device42 ODBC driver, you can import data directly into SQL Server. The following instructions are for Windows 10 and may differ from other versions of Windows.
### Import Prerequisites
-1. Begin by copying the Mapping files (The mapping files control how data types from the Device42 ODBC Driver map to Microsoft SQL Server data types).
-2. Start the **SQL Server Import and Export Wizard**.
-3. Start **Task Manager**.
-4. Browse to the location of the **SQL Server Import and Export Wizard** executable. Right-click on the app executable (it will be named similar to **SQL Server Import and Export Wizard**). Note that the name may end with "32 bit" or "64 bit" and the .exe file extension.
+Before starting the import, copy the mapping files that control how data types from the Device42 ODBC Driver map to Microsoft SQL Server data types:
+
+1. Start **Task Manager**, then browse to the **SQL Server Import and Export Wizard** executable. Right-click the app executable (named similarly to **SQL Server Import and Export Wizard**, possibly ending with "32 bit" or "64 bit").

- 1. Click **Open file location** and go up one level to the `DTS` folder.
- 2. Go into the `MappingFiles` folder.
- 3. Open another instance of Windows Explorer.
- 4. Go to `C:\\Program Files\\Device42\\Device42 ODBC Driver\\MS SQL Server Mapping Files`.
- 5. Copy files `D42ODBCToMSSql10.XML` and `D42ODBCToSSIS10.XML` from `C:\\Program Files\\Device42\\Device42 ODBC Driver\\MS SQL Server Mapping Files` and paste them in the `DTS\\MappingFiles` folder of the **SQL Server Import and Export Wizard** that you found earlier.
- 6. Close the **SQL Server Import and Export Wizard**. The mapping files that were just copied will not take effect until the **SQL Server Import and Export Wizard** is restarted.
+2. Click **Open file location** and go up one level to the `DTS` folder, then open the `MappingFiles` folder.
+3. Open another Windows Explorer window and navigate to `C:\Program Files\Device42\Device42 ODBC Driver\MS SQL Server Mapping Files`.
+4. Copy `D42ODBCToMSSql10.XML` and `D42ODBCToSSIS10.XML` into the `DTS\MappingFiles` folder you found in step 2.
+5. Close and restart the **SQL Server Import and Export Wizard** for the mapping files to take effect.
### SQL Server Data Import Procedure
-Note: These instructions are for SQL Server Management Studio v17.9.1 and may differ from other versions of SQL Server Management Studio.
+These instructions apply to SQL Server Management Studio v17.9.1 and may differ from other versions.
-1. Start the **SQL Server Import and Export Wizard**. You will see the following screen and can press **Next**:
+1. Start the **SQL Server Import and Export Wizard** and click **Next**:

-2. Select a data source of **.Net Framework Data Provider for ODBC**:
+2. Select **.Net Framework Data Provider for ODBC** as the data source:

-3. Enter a connection string or DSN for the Device42 ODBC Driver and then click the **Next** button.
-4. Select a destination of **SQL Server Native Client 11.0**:
+3. Enter a connection string or DSN for the Device42 ODBC Driver, then click **Next**.
+4. Select **SQL Server Native Client 11.0** as the destination:

-5. Enter the server and database to import the data to, plus appropriate authentication details with proper permissions.
-6. Choose how you'd like to select Device42 data – from a table or view, or using a query, then click **Next**:
+5. Enter the server and database to import data into, along with authentication details with the appropriate permissions.
+6. Choose how to select Device42 data — from a table or view, or using a query — then click **Next**:

-7. **If you selected “Write a query to specify the data to transfer”**, then go ahead and enter your query _(otherwise, skip this step)_:
+7. **If you selected "Write a query to specify the data to transfer"**, enter your query:

-8. **If you selected “Copy data from one or more tables or views”**, select the views you'd like to copy:
+8. **If you selected "Copy data from one or more tables or views"**, select the views to copy:

-9. Click the **Edit Mappings** button to review or change which data will be copied (you can select a destination of "" if you do not want to copy a column) and attributes of the destination column such as data type.
+9. Click **Edit Mappings** to review or change which data will be copied and the attributes of the destination columns, such as data type:

-10. Close the **Column Mappings** window, and then click the **Preview** button to see a sample of the data that will be copied:
+10. Close the **Column Mappings** window, then click **Preview** to see a sample of the data that will be copied:

-11. Close the **Preview Data** window, and then click the **Next** button to continue.
-12. Review the selected data type mappings, and then click the **Next** button:
+11. Close the **Preview Data** window, then click **Next**.
+12. Review the selected data type mappings, then click **Next**:

-13. Select if you want to run the data import immediately and or to save it as an SSIS package:
+13. Choose whether to run the import immediately or save it as an SSIS package:

-14. Click the **Next** button, and review the selections made in the **SQL Server Import and Export Wizard**.
-15. Click the **Finish** button to complete the wizard. Your data import should be imported according to your chosen settings.
+14. Click **Next** and review your selections in the wizard.
+15. Click **Finish** to complete the import.
-If you have any questions about the Device42 ODBC driver that aren't answered here, please open a ticket at [https://support.device42.com](https://support.device42.com) or email support@device42.com.
+For questions about the Device42 ODBC driver not answered here, open a ticket at [support.device42.com](https://support.device42.com) or email support@device42.com.
diff --git a/docs/integration/external-integrations/opsgenie-integration.mdx b/docs/integration/external-integrations/opsgenie-integration.mdx
index 6075cfe81..deae52123 100644
--- a/docs/integration/external-integrations/opsgenie-integration.mdx
+++ b/docs/integration/external-integrations/opsgenie-integration.mdx
@@ -3,80 +3,74 @@ title: "Opsgenie Integration"
sidebar_position: 22
---
-Device42 integrates with Opsgenie to automatically route alerts to your incident management platform. This page explains how to configure the integration and set up alert forwarding.
+Device42 integrates with Opsgenie to automatically route alerts to your incident management platform. This page explains how to configure the integration, set up alert forwarding, and test it with a prohibited software alert.
## Set Up an API Key in Opsgenie
-- Click **Settings** in the Opsgenie top navigation bar.
+Click **Settings** in the Opsgenie top navigation bar.
-
+
-- Click **Integrations list** in the **Integrations** section on the left panel.
-- Hover over the **API** tile and click **Add.**
+In the **Integrations** section on the left panel, click **Integrations list**. Hover over the **API** tile and click **Add**.
-
+
-**Set Up The API**
+### Configure the API
- Enter a **Name** for the API.
-- Make note of and copy the **API Key**. You will need to enter this API key into Device42.
+- Copy the **API Key** — you will need to enter it into Device42.
-
+
-- Scroll down the page and ensure that the **Create and Update Access** option is enabled.
+- Scroll down and ensure that **Create and Update Access** is enabled.
- Click **Save Integration**.
-
+
-## Set Up Opsgenie External Integration in Device42
+## Set Up the Opsgenie External Integration in Device42
-- From the Device42 menu bar, select **Tools > Integrations > External Integrations**.
-- Select **Add External Integration** on the top right of the page.
+From the Device42 menu bar, select **Tools > Integrations > External Integrations**, then click **Add External Integration** in the top right.
-
+
-- Set the **URL** as user’s Opsgenie URL.
+- Set the **URL** to your Opsgenie URL.
- Select **Opsgenie** from the **Type** drop-down menu.
-- Click the **Token** magnifying glass to open the Select Password page.
+- Click the **Token** magnifying glass icon to open the Select Password page.
-
+
-- Click **Add Password** and use the Opsgenie API Key to create a new Token.
+- Click **Add Password** and use the Opsgenie API key to create a new token.
- Click **Save**.
-- The Opsgenie integration is now configured in Device42.
-
+
-## Set Up an Alert to Use Opsgenie
+## Set Up an Alert To Use Opsgenie
-You need to configure a Device42 alert to use the Opsgenie external integration to route the alert message to Opsgenie. The following steps will configure a prohibited software alert, but any type of alert can be used with the Opsgenie external integration and would have similar steps.
+To route a Device42 alert to Opsgenie, you need to configure an alert that uses the Opsgenie external integration. The following steps configure a prohibited software alert as an example, but any alert type can use the Opsgenie integration with similar steps.
-- From the Device42 menu bar, select **Reports > Setup Alerts**.
+From the Device42 menu bar, select **Reports > Setup Alerts**.
-
+
-- Click **Add Alert**.
+Click **Add Alert**.
-
+
- Select **Rule Type: Software**.
-- Select **Trigger:** **Prohibited Software Installed**.
-- Select **Alert Type:** Alert.
+- Select **Trigger: Prohibited Software Installed**.
+- Select **Alert Type: Alert**.
- Select the Opsgenie URL from the **Alert Integration** drop-down list.
- Click **Save**.
## Configure Software as Prohibited
-- From the Device42 menu bar, select **Apps > Software > Software Components**.
-- Select the software component you want to set as prohibited (this example uses _7 Zip_).
-- Select the **Edit** button on the top right.
-- Select **Software Type: Prohibited**.
-- Click **Save** button at the bottom right.
+From the Device42 menu bar, select **Apps > Software > Software Components**. Select the software component you want to mark as prohibited (this example uses `7 Zip`), then click **Edit** in the top right.
-
+- Select **Software Type: Prohibited**.
+- Click **Save**.
-This marks the software as prohibited and will trigger the alert created in the section above.
+
-If the 7 Zip software is detected during discovery, an alert is generated in Opsgenie similar to the alert shown below.
+This marks the software as prohibited and triggers the alert created in the previous section. If `7 Zip` is detected during discovery, an alert is generated in Opsgenie similar to the one shown below.
-
+
diff --git a/docs/integration/external-integrations/pagerduty-integration.mdx b/docs/integration/external-integrations/pagerduty-integration.mdx
index aa40f6bce..4273d77fe 100644
--- a/docs/integration/external-integrations/pagerduty-integration.mdx
+++ b/docs/integration/external-integrations/pagerduty-integration.mdx
@@ -6,11 +6,9 @@ sidebar_position: 23
import ThemedImage from '@theme/ThemedImage'
import useBaseUrl from '@docusaurus/useBaseUrl'
-Use the PagerDuty integration to notify on-call responders when an alert is triggered in Device42. PagerDuty allows you to set up escalation profiles to ensure a response to critical IT events if the designated on-call staff do not respond in time.
+The PagerDuty integration notifies on-call responders when an alert is triggered in Device42. PagerDuty lets you set up escalation profiles to ensure a response to critical IT events if the designated on-call staff do not respond in time.
-Connect your Device42 CMDB using the Device42 integration in PagerDuty, then configure an alert in Device42 to log an incident in PagerDuty when a violating condition is met.
-
-This guide walks you through creating a PagerDuty Service, setting up the integration and alert in Device42, testing the integration, and uninstalling the integration in PagerDuty and Device42.
+This page walks you through creating a PagerDuty Service, setting up the integration and alert in Device42, testing the integration, and uninstalling the integration.
## Alert Types
@@ -63,7 +61,7 @@ When a Device42 metric falls outside of a designated range or meets a given crit
## Support
-If you need help with this integration, please contact **Device42 Support** using any of our listed contact methods.
+If you need help with this integration, contact **Device42 Support** using any of the following:
- **Hours of Operation:** Monday-Friday, 9 am–6 pm EST
- **Phone:** 1 (844) 424-2422
@@ -72,18 +70,16 @@ If you need help with this integration, please contact **Device42 Support** usin
## PagerDuty Configuration
-You need a new or existing PagerDuty Service to add the Device42 integration to.
-
-The Device42 integration in PagerDuty will generate a key that you'll use in Device42's External Integration.
+You need a new or existing PagerDuty Service to add the Device42 integration to. The Device42 integration in PagerDuty generates a key that you'll use in Device42's External Integration.
### Create a New Service with Integration
To create a new service, go to **Services > Service Directory** and click the **+ New Service** button.
-Follow the guided setup until you reach the [fourth **Integration** step](#select-the-device42-integration).
+Follow the guided setup until you reach the [fourth **Integration** step](#select-the-device42-integration).
:::tip
-Please refer to PagerDuty's [Configuring Services and Integrations](https://support.pagerduty.com/docs/services-and-integrations#section-configuring-services-and-integrations) docs page for details on the service options.
+Refer to PagerDuty's [Configuring Services and Integrations](https://support.pagerduty.com/docs/services-and-integrations#section-configuring-services-and-integrations) page for details on the service options.
:::

@@ -108,11 +104,11 @@ An **Integration Key** will be generated. Keep this key saved in a safe place,
## Device42 Configuration
-The Device42 setup includes configuring your [Cloud Services](/integration/external-integrations/cloud-services-settings.mdx) (if you haven't already), an [External Integration](#create-an-external-integration), and an [Alert](#configure-an-alert). To ensure that the integration is working as expected, you can manually trigger the alert condition as described below under [Test the Integration](#test-the-integration).
+The Device42 setup includes configuring your [Cloud Services](/integration/external-integrations/cloud-services-settings) (if you haven't already), an [External Integration](#create-the-pagerduty-external-integration), and an [Alert](#configure-an-alert). To verify that the integration is working, you can manually trigger the alert condition as described under [Test the Integration](#test-the-integration).
### Configure Cloud Services
-The [Cloud Connector](/integration/external-integrations/device42-cloud-connector-overview.mdx) provides a secure and reliable way to route external integration communication.
+The [Cloud Connector](/integration/external-integrations/device42-cloud-connector-overview) provides a secure and reliable way to route external integration communication.
- From the Device42 Dashboard, go to **Tools > Integrations > Cloud Services** and click **Edit** at the top right of the page.
- Enter your Device42 instance URL in the **D42 URL for SaaS apps** field, for example, `https://192.168.92.130/`.
@@ -190,7 +186,7 @@ To test that the condition triggers the alert as expected, designate a Software
}}
/>
-Next, manually associate (without running a discovery job) the prohibited software with a device. You can do this in multiple ways, such as by creating a new Software In Use record or a new device with the prohibited software. In this example, we'll edit an existing device to include the prohibited software:
+Next, manually associate the prohibited software with a device (without running a discovery job). You can do this in multiple ways, such as by creating a new Software In Use record or a new device with the prohibited software. This example edits an existing device to include the prohibited software:
- Go to **Resources > Compute > All Devices** and select a device.
- Click **Edit** and scroll down to **Software In Use**.
@@ -215,7 +211,7 @@ You can view incident details in PagerDuty.
Remember to undo the changes you made in Device42 when testing the instance: Change the prohibited software type on the Software Component you used and remove the Software In Use entry from the device.
-## How to Uninstall the Integration
+## Uninstall the Integration
To uninstall the integration, delete the Device42 integration in PagerDuty or disable its associated service. Then, in Device42, delete the External Integration.
@@ -224,7 +220,7 @@ To uninstall the integration, delete the Device42 integration in PagerDuty or di
In PagerDuty, navigate to **Services > Service Directory** and click on the service with the Device42 integration:
- Go to the **Integrations** tab and click the black **gear icon**.
-- Select **Delete Integration**
+- Select **Delete Integration**.
- Confirm the deletion when prompted.

diff --git a/docs/integration/external-integrations/powerbi-integration.mdx b/docs/integration/external-integrations/powerbi-integration.mdx
index 490bad286..72836c265 100644
--- a/docs/integration/external-integrations/powerbi-integration.mdx
+++ b/docs/integration/external-integrations/powerbi-integration.mdx
@@ -3,59 +3,62 @@ title: "PowerBI Integration"
sidebar_position: 24
---
-Device42 integrates with Microsoft PowerBI using the [Device42 ODBC driver package \[click to download\]](https://www.device42.com/miscellaneous-tools/), currently available for Microsoft Windows. With the Microsoft PowerBI / ODBC integration, users to connect to Device42 and pull data via an ODBC \[Open Database Connectivity\] data source presented by the driver.
+Device42 integrates with Microsoft PowerBI using the Device42 ODBC driver, currently available for Microsoft Windows. The integration lets you connect to Device42 and pull data via an ODBC (Open Database Connectivity) data source.
-The current ODBC driver installs on Microsoft Windows, and we provide instructions to leverage the ODBC connectivity through PowerBI below. _If you're looking to use the Device42 ODBC driver with an ODBC-compatible consumer other than PowerBI, you should be able to do that as well. See the Device42 [ODBC driver documentation page here](integration/external-integrations/odbc-driver-integration.mdx) to obtain the driver and for more information._
+This page covers how to download the ODBC driver, connect PowerBI to the Device42 ODBC data source, and optionally create a DSN. If you want to use the Device42 ODBC driver with an ODBC-compatible client other than PowerBI, see the [ODBC Driver Integration](/integration/external-integrations/odbc-driver-integration) page.
-## Obtain the Device42 PowerBI ODBC Driver
+## Download the Device42 PowerBI ODBC Driver
-Download the Device42 ODBC Driver at [https://www.device42.com/integrations/powerbi/](https://www.device42.com/integrations/powerbi/).
+Download the Device42 ODBC driver from [https://www.device42.com/integrations/powerbi/](https://www.device42.com/integrations/powerbi/).
-## Connect PowerBI to the Device42 ODBC Datasource
+## Connect PowerBI to the Device42 ODBC Data Source
-To connect PowerBI to the Device42 ODBC datasource, follow the instructions below. _Note that this section assumes you have completed the D42 ODBC driver installation and otherwise meet all of the requirements listed in the "ODBC System Requirements" section on this page._
+The following steps assume you have completed the Device42 ODBC driver installation and meet all the requirements listed in the ODBC System Requirements section of the [ODBC Driver Integration](/integration/external-integrations/odbc-driver-integration) page.
-1. Begin by launching the PowerBI software, and clicking the "Get Data" icon in the upper left hand corner:
+1. Launch PowerBI and click **Get Data** in the upper left corner:

-2. In the "Search" field, enter `ODBC` to narrow down the listed data source options (1). Highlight ODBC (2), and click "Connect"(3):
+2. In the **Search** field, enter `ODBC` to filter the data source options. Select **ODBC** and click **Connect**:

-3. To connect using a DSN, see the _“Creating a DSN” section below_ to learn how to create a DSN which will show in this list; otherwise, continue by simply supplying a connection string manually by **expanding the "Advanced Options"** section by clicking on it:
+3. To connect using a DSN, see [Create a DSN](#create-a-dsn) below. Otherwise, expand **Advanced Options** to enter a connection string manually:
-
+
-4. In the connection string field, enter the string as follows: `DRIVER={Device42 ODBC Driver};SERVER=YOUR-D42-SERVER.COM;`. Leave the SQL Statement (optional) section blank, and click OK:
+4. In the connection string field, enter: `DRIVER={Device42 ODBC Driver};SERVER=YOUR-D42-SERVER.COM;`. Leave the **SQL Statement (optional)** field blank and click **OK**:

-5. Enter the **User Name** and **Password** that were provided to you, and the click the **Connect** button. Setup is complete!
+5. Enter your **User Name** and **Password**, then click **Connect**.
## Create a DSN
-1. To create / pre-define a DSN (Data Source Name), open the Windows ODBC Data Source Administrator via the Windows Start Menu. Windows 10: click **_Start -> Windows Administrative Tools -> ODBC Data Sources (64-bit)_**; \[note there is also a 32-bit version, which you can ignore\]. Windows 7: Click **_Start -> All Programs -> Administrative Tools -> Data Sources (ODBC)_**:
+To create or pre-define a DSN (Data Source Name), open the Windows ODBC Data Source Administrator:
+
+- **Windows 10:** Click **Start > Windows Administrative Tools > ODBC Data Sources (64-bit)**.
+- **Windows 7:** Click **Start > All Programs > Administrative Tools > Data Sources (ODBC)**.

-2. Click the **Add** button to begin adding a new datasource. In the "Create New Data Source" window that is displayed, choose the "Device42 ODBC Driver" and click "Finish":
+1. Click **Add** to begin adding a new data source. In the **Create New Data Source** window, choose **Device42 ODBC Driver** and click **Finish**:

-3. On the "Device42 ODBC Driver DSN Configuration" screen that is displayed, enter values as explained below:
+2. On the **Device42 ODBC Driver DSN Configuration** screen, enter values as described below:

-- **DSN Name**: The name to identify this DSN.
-- **Server Host**: The host name of the Device42 server.
-- **Port**: The port number that the Device42 server is servicing requests on. The default value is the standard SSL port of 443. If you leave this field blank, it will also default to 443.
-- **Username**: The username you use to login to Device42.
-- **Password**: The password you use to login to Device42.
+- **DSN Name:** The name to identify this DSN.
+- **Server Host:** The host name of the Device42 server.
+- **Port:** The port number that the Device42 server uses for requests. The default is the standard SSL port `443`. If you leave this field blank, it also defaults to `443`.
+- **Username:** The username you use to log in to Device42.
+- **Password:** The password you use to log in to Device42.
-4. Click the “Test” button to try connecting using the information you specified. You will receive a message if the connection could or could not be made. If the connection could not be made, verify that the information you entered is correct.
-5. Click the “Save” button to save the changes you made to the DSN. Your changes will only be saved if the information entered results in a successful connection. If the connection could not be made, verify that the information you entered is correct.
+3. Click **Test** to try connecting. You will receive a message indicating whether the connection succeeded. If it did not, verify the information you entered.
+4. Click **Save** to save the DSN. Changes are only saved if the connection is successful.
-Setup of the Device42 ODBC DSN is complete. You should now be able to utilize the pre-configured DSN throughout PowerBI.
+The Device42 ODBC DSN is now configured and available for use in PowerBI.
-_Should you have any questions about the Device42 ODBC driver that aren't answered here, please open a ticket at [https://support.device42.com](https://support.device42.com) or email support@device42.com._
+For questions about the Device42 ODBC driver not answered here, open a ticket at [support.device42.com](https://support.device42.com) or email support@device42.com.
diff --git a/docs/integration/external-integrations/puppet-and-chef-integrations.mdx b/docs/integration/external-integrations/puppet-and-chef-integrations.mdx
index 3b55c7f12..978ae3e27 100644
--- a/docs/integration/external-integrations/puppet-and-chef-integrations.mdx
+++ b/docs/integration/external-integrations/puppet-and-chef-integrations.mdx
@@ -3,33 +3,45 @@ title: "Puppet and Chef Integrations"
sidebar_position: 25
---
-Puppet is a free configuration management utility created by Puppet Labs that helps sysadmins automate configuration and management of machines and the software running on them throughout the enterprise IT infrastructure.
+Device42 integrates with both Puppet and Chef to synchronize discovered system data into Device42's asset inventory, eliminating the need to run redundant discovery processes across your IT infrastructure. This page covers the Chef integration briefly and the Puppet ENC integration in detail.
-Device42’s integration connector for Puppet allows Device42 software to utilize discovered system information data stored in “puppet manifests” to populate the Device42 asset inventory, eliminating the need to run redundant auto-discovery processes across the IT infrastructure.
+## Chef Integration
+
+Device42 provides an integration connector for Chef, which streamlines provisioning, configuring, and maintaining servers. The connector uses Chef-discovered system information to populate the Device42 asset inventory and works with all Chef-supported versions.
+
+For the sync script, see [github.com/device42/chef_to_device42_sync_py](https://github.com/device42/chef_to_device42_sync_py).
+
+## Puppet Integration
+
+Puppet is a configuration management tool that helps system administrators automate the configuration and management of machines and software across enterprise IT infrastructure. The Device42 connector for Puppet uses system information stored in Puppet manifests to populate the Device42 asset inventory.
## Puppet ENC (External Node Classifier) Integration
-External Node Classifiers can accept the name of a node as input, and return the class hierarchy for that node as output. Device42 can be utilized as a Puppet ENC, allowing easy management of Puppet classes right from Device42. As opposed to managing node definitions in the main site manifest (site.pp) on your Puppet master.
+External Node Classifiers accept the name of a node as input and return the class hierarchy for that node as output. Device42 can act as a Puppet ENC, allowing you to manage Puppet classes directly from Device42 instead of managing node definitions in the main site manifest (`site.pp`) on your Puppet master.
-An ENC Script pipes data between your Puppet Master and an ENC source -- Device42, in this case.
+An ENC script pipes data between your Puppet master and an ENC source — Device42, in this case.
**Requirements:**
-- Puppet v4.8+
-- Puppet Server v2.7.2+
-- Python v2.7.10+Getting the Device42 - Puppet ENC Integration up and running is a four step process.
- 1. Create a JSON custom field in Device42 (named whatever you like)
- 2. Fill the custom field you created in step #1 with your desired enviornment, in JSON.
- 3. Download and configure the Device42-Puppet ENC [Integration Script](https://github.com/device42/d42-puppet-enc/).
- 4. Configure your Puppet Master to use Device42 as an ENC.
+- Puppet v4.8 or later
+- Puppet Server v2.7.2 or later
+- Python v2.7.10 or later
-**Setting up the Puppet ENC Integration Details:**
+Setting up the Puppet ENC integration is a five-step process:
-1. Navigate to **Tools -> Custom -> Devices** Fields in Device42, and click “Add Device Custom Field”. Choose "Type" JSON, and for demonstration purposes, we’ll call the field `node_classes`.
+1. Create a JSON custom field in Device42.
+2. Populate the custom field with your desired environment in JSON.
+3. Download and configure the [Device42 Puppet ENC integration script](https://github.com/device42/d42-puppet-enc/).
+4. Configure your Puppet master to use Device42 as an ENC.
+5. Restart your Puppet server services.
+
+### Set Up the Puppet ENC Integration
+
+**Step 1:** Navigate to **Tools > Custom > Devices Fields** in Device42 and click **Add Device Custom Field**. Set the **Type** to **JSON**. For this example, name the field `node_classes`.

-1a. Populate the `node_classes` field (with a placeholder) in Device42 on your target Puppet Node's CI (puppet.device42.pvt, in our case) by setting one of your device’s `node_classes` field to the following:
+**Step 2:** On your target Puppet node's CI (for example, `puppet.device42.pvt`), set the `node_classes` field to the following placeholder value:
Click to expand the code block
@@ -47,19 +59,19 @@ An ENC Script pipes data between your Puppet Master and an ENC source -- Device4

-1. Grab the script, and set it up:
- 1. Clone the `d42-puppet-enc` repository onto your Puppet master
- 2. Set it as executable permissions (`chmod +x {filename}`).
- 3. If you don't have all the requirements in requirements.txt installed, install with: `pip install -r requirements.txt`
- 4. Configure the settings.yaml file. It requires:
-
- - The IP address of your D42 appliance.
- - The Username + Password for your D42 appliance for authentication.
- - The name of the custom field we created earlier `node_classes`.
-
+**Step 3:** Set up the integration script:
+
+1. Clone the `d42-puppet-enc` repository onto your Puppet master.
+2. Set executable permissions: `chmod +x {filename}`.
+3. If you don't have the required dependencies installed, run: `pip install -r requirements.txt`
+4. Configure the `settings.yaml` file with the following:
+ - The IP address of your Device42 appliance.
+ - The username and password for your Device42 appliance.
+ - The name of the custom field created in Step 1 (`node_classes`).
+

-2. Designate your Puppet master as the ENC authority by editing your puppet.conf (`/etc/puppetlabs/puppet/puppet.conf`). Add these two configuration lines, specifying the location of `d42_enc_fetcher.py`:
+**Step 4:** Designate your Puppet master as the ENC authority by editing `puppet.conf` (`/etc/puppetlabs/puppet/puppet.conf`). Add the following two lines, specifying the location of `d42_enc_fetcher.py`:
```
[master]
@@ -67,35 +79,24 @@ An ENC Script pipes data between your Puppet Master and an ENC source -- Device4
external_nodes = /etc/puppetlabs/puppet/d42-puppet-enc/d42_enc_fetcher.py
```
+**Step 5:** Restart your Puppet server services. The integration is now active.
-Once that's set, restart your Puppet server Services, and you're all set. Now, just create a class, and you're in business!
+## Additional IT Infrastructure Capabilities
-## Chef Integration
-
-Device42 also provides an integration connector for Chef software — used to streamline the task of provisioning, configuring, and maintaining servers.
-
-The Device42 – Chef integration allows Device42 software to utilize Chef-discovered system information data to populate the Device42 asset inventory, eliminating the need to run redundant auto-discovery processes.
-
-The Device42 integration connector works with all Chef-supported versions of Chef software.
-
-## Device42’s Additional IT Infrastructure Capabilities
-
-Integrating Puppet or Chef with Device42, also ensures that Device42 remains aligned with the Chef or Puppet device data ensuring consistency and uniformity between Device42 and either application across all of Device42’s broad IT infrastructure management capabilities:
+Integrating Puppet or Chef with Device42 ensures that Device42 stays aligned with your Puppet or Chef device data, maintaining consistency across Device42's IT infrastructure management capabilities:
- IP address management
-- Cabling management
+- Cabling management
- Password management
- Server room, rack, and device visualizations
- Software license management
- Power and environmental monitoring
- Power control
-- Integration Connectors Information
-
-## Puppet and Chef Integrations
-
-**Puppet:** The script to sync Puppet nodes information to Device42 can be found here: [github.com/device42/puppet_to_device42_sync_py](https://github.com/device42/puppet_to_device42_sync_py)
-**Puppet ENC:** The script to use Device42 as a Puppet External Node Classifier: [github.com/device42/d42-puppet-enc](https://github.com/device42/d42-puppet-enc)
+## Integration Scripts
-**Chef:** The script to sync Chef nodes information to Device42 can be found here: [github.com/device42/chef_to_device42_sync_py](https://github.com/device42/chef_to_device42_sync_py)
+The following GitHub repositories contain the scripts for syncing data between Device42 and Puppet or Chef:
+- **Puppet:** [github.com/device42/puppet_to_device42_sync_py](https://github.com/device42/puppet_to_device42_sync_py) — sync Puppet node information to Device42
+- **Puppet ENC:** [github.com/device42/d42-puppet-enc](https://github.com/device42/d42-puppet-enc) — use Device42 as a Puppet External Node Classifier
+- **Chef:** [github.com/device42/chef_to_device42_sync_py](https://github.com/device42/chef_to_device42_sync_py) — sync Chef node information to Device42
diff --git a/docs/integration/external-integrations/webhooks-generic-integration.mdx b/docs/integration/external-integrations/webhooks-generic-integration.mdx
index e3b72f5d1..69f07e628 100644
--- a/docs/integration/external-integrations/webhooks-generic-integration.mdx
+++ b/docs/integration/external-integrations/webhooks-generic-integration.mdx
@@ -3,45 +3,63 @@ title: "Webhooks - Generic Integration"
sidebar_position: 28
---
-Webhooks are used to initiate an external action in another part of your IT environment when some "event", based on rules you define, occurs. Also known as _HTTP callbacks_, webhooks are "fired" at HTTP endpoints (URLs) when a configured "Webhook Action" criteria is met. Within Device42, anything that produces an audit-log entry can also be configured to "fire" a webhook.
+import ThemedImage from '@theme/ThemedImage'
+import useBaseUrl from '@docusaurus/useBaseUrl'
-For example, when a Device42 auto-discovery job finds a new device, when details about an existing device change, or when an existing device is deleted are three simple examples of actions that can be configured to trigger webhooks from Device42. An IT Administrator might configure a webhook to deliver a "message" to one or more IT employees via a webhook-compatible endpoint _(like Slack or Skype)_, letting them know that this action took place.
+Webhooks initiate an external action in another part of your IT environment when an event, based on rules you define, occurs. Also known as HTTP callbacks, webhooks are sent to HTTP endpoints (URLs) when a configured Webhook Action criteria is met. Within Device42, anything that produces an audit-log entry can be configured to fire a webhook.
-## Create a Webhook Action in Device42
-
-Configuring Device42 to send a webhook is a simple two-step process:
+For example, you can configure webhooks to trigger when a Device42 discovery job finds a new device, when details about an existing device change, or when a device is deleted. An IT administrator might configure a webhook to deliver a message to one or more IT employees via a webhook-compatible endpoint (like Slack or Zapier), letting them know that an action took place.
-1. Define one or more **Webhook Endpoints:** the HTTP URLs Device42 should send your webhooks to via **Tools -> Webhooks -> Endpoints -> Add Webhook Endpoint**.
+
-
+## Create a Webhook Action in Device42
-2. Define a **Webhook Action:** the Device42 action(s) that will trigger your webhook, and the endpoints they should go to via **Tools -> Webhooks -> Actions -> Add Webhook Actions**.
+Configuring Device42 to send a webhook requires two things: a **Webhook Endpoint** and a **Webhook Action**.
-
+## Add a Webhook Endpoint
-## Webhook Options
+A webhook endpoint is the HTTP URL that Device42 sends webhook events to. Navigate to **Tools > Webhooks > Endpoints > Add Webhook Endpoint**.
-### Webhook Action Screen options
+
-- **Name:** User-defined name for webhook action
-- **Process All Categories:** Hides "Available Categories" choices; webhooks fired on changes in all categories
-- **Available Categories:** Specify the CI categories you'd like to trigger the webhook on
-- **Process Add Events:** Trigger a webhook if a new CI is added to a _Chosen Categories_
-- **Process Delete Events:** Trigger a webhook if a CI in any of _Chosen Categories_ is deleted
-- **Process Change Events:** Trigger a webhook if a CI in any of _Chosen Categories_ is Changed
-- **Process View Events:** Trigger a webhook if a "View event" is logged on a CI in _Chosen Categories_
-- **Process Login Events:** Trigger a webhook if a "Login event" is recorded on a CI in _Chosen Categories_
-- **Destination:** Choose the defined endpoint(s) to receive triggered webhook events
+- **Name:** A name to identify this endpoint.
+- **URL:** The URL that Device42 will send webhook events to.
+- **Endpoint:** Select **Slack** or **Zapier** to see fields specific to that service, or **Custom** for any other endpoint.
+- **Channel:** Slack only. The Slack channel to post the message to.
+- **Username:** Slack only. The name the message will appear to come from.
+- **Icon:** Slack only. A custom icon for the message sender.
+- **Webhook Header:** Optional headers to include with the request. Each header has a **Name** and a **Token** field.
-### Webhook Endpoint Screen options
+## Add a Webhook Action
-
+A webhook action defines which Device42 events trigger the webhook and which endpoints receive it. Navigate to **Tools > Webhooks > Actions > Add Webhook Action**.
+
-- **Name:** User-defined name for webhook endpoint
-- **URL:** URL destination for webhook
-- **Endpoint:** Choose Slack or Zapier to reveal fields specific to those endpoints; Choose custom if targeting anything else
-- **Channel:** _Slack Endpoint only_; Specify Slack channel that should receive message when webhook is received
-- **Username:** _Slack Endpoint only_; Specify the Slack username the message will originate "From"
-- **Icon:** _Slack Endpoint only_; Specify a custom "From" icon
-- **Webhook Header:** Define custom Header payloads; each includes a user-defined 'Name' and 'Token' field.
+- **Name:** A name to identify this action.
+- **Process All Categories:** When checked, webhooks fire for changes across all CI categories, hiding the category picker.
+- **Available Categories:** The specific CI categories to monitor for changes.
+- **Process Add Events:** Fire the webhook when a new CI is added.
+- **Process Delete Events:** Fire the webhook when a CI is deleted.
+- **Process Change Events:** Fire the webhook when a CI is updated.
+- **Process View Events:** Fire the webhook when a CI in a chosen category is viewed.
+- **Process Login Events:** Fire the webhook when a login event is recorded on a CI in a chosen category.
+- **Destination:** The endpoint or endpoints that should receive the webhook.
diff --git a/docs/integration/external-integrations/zapier-integration.mdx b/docs/integration/external-integrations/zapier-integration.mdx
index 99c5dbed3..29483a9e1 100644
--- a/docs/integration/external-integrations/zapier-integration.mdx
+++ b/docs/integration/external-integrations/zapier-integration.mdx
@@ -6,19 +6,19 @@ sidebar_position: 29
import ThemedImage from '@theme/ThemedImage'
import useBaseUrl from '@docusaurus/useBaseUrl'
-[Zapier](https://zapier.com/) is a versatile workflow automation tool based on "if-this-then-that" logic. You can create an automation sequence, known as a "Zap", to perform actions in response to changes made to Device42 resources. Zapier supports response actions using features of a [variety of apps](https://zapier.com/apps), including Jira, MySQL Server, and Google products.
+[Zapier](https://zapier.com/) is a versatile workflow automation tool based on "if-this-then-that" logic. You can create an automation sequence, known as a Zap, to perform actions in response to changes made to Device42 resources. Zapier supports response actions using features of a [variety of apps](https://zapier.com/apps), including Jira, MySQL Server, and Google products.
-In this example, we'll have Zapier create a new row in a Google spreadsheet of the webhook payload whenever a new device is added to the Device42 main appliance. The process consists of the following broad steps:
+This page walks through an example where Zapier creates a new row in a Google spreadsheet from the webhook payload whenever a new device is added to the Device42 main appliance. The process consists of the following steps:
- Generate the Zapier endpoint and add it to Device42.
-- Configure the Device42 trigger action.
+- Configure the Device42 trigger action.
- Configure the Zapier response action.
- Test the automation.
## Generate the Zapier Endpoint
-1. Log in to your Zapier account and click on the **+ Create Zap** button.
-2. Name your Zap at the top-left corner and then click on the **1. Trigger** box to open a window with a list of trigger options to choose from.
+1. Log in to your Zapier account and click **+ Create Zap**.
+2. Name your Zap in the top-left corner, then click the **1. Trigger** box to open a list of trigger options.

@@ -26,16 +26,16 @@ In this example, we'll have Zapier create a new row in a Google spreadsheet of t

-4. Under the **Event** field, choose the **Catch Raw Hook** option to return header information with the response. For parsed data, select the **Catch Hook** option from the dropdown menu. Click on the **Continue** button.
-
+4. Under the **Event** field, choose **Catch Raw Hook** to return header information with the response. For parsed data only, select **Catch Hook** instead. Click **Continue**.
+

-5. Copy the generated webhook URL to add as an endpoint in the Device42 main appliance.
+5. Copy the generated webhook URL to add as an endpoint in Device42.
## Add the Endpoint to Device42
1. Log in to your Device42 main appliance and navigate to **Tools > Webhooks > Endpoints**.
-2. Click the **+ Add Webhook Endpoint** button on the left.
+2. Click **+ Add Webhook Endpoint**.
-3. Create a webhook endpoint by filling in the following:
+3. Fill in the following fields:
- **Name:** A unique name for the endpoint.
- **URL:** The URL generated by Zapier in the previous section.
- **Endpoint:** Select **Zapier**.
- - **Retry:** Select **After 5 and 15 minutes** from the dropdown menu.
+ - **Retry:** Select **After 5 and 15 minutes** from the dropdown menu.
- **Ignore Certificate Errors:** Check this option.
-Optionally, you can add webhook headers to be included in the returned data when the Zap is triggered. Click the **+ Add another Webhook Header** button and provide the header name and value.
+Optionally, add webhook headers to be included in the returned data when the Zap is triggered. Click **+ Add another Webhook Header** and provide the header name and value.
Webhooks > Actions** and click on the **+ Add Webhook Action** button.
+1. Navigate to **Tools > Webhooks > Actions** and click **+ Add Webhook Action**.
-2. Provide a **Name** for your webhook action. If you want to include all IT resources managed by Device42 in the action, check the **Process All Categories** checkbox. Alternatively, add selected IT resources to the **Chosen categories** box. Use the search bar under **Available categories** to narrow down the options.
+2. Provide a **Name** for your webhook action. To include all IT resources managed by Device42, check the **Process All Categories** checkbox. Alternatively, add selected IT resources to the **Chosen categories** box. Use the search bar under **Available categories** to narrow down the options.
-In addition to monitoring for adding, deleting, and updating events, you can trigger the action when a resource is viewed by selecting **Process View Events**, or when a login occurs by selecting **Process Login Events**.
+In addition to monitoring for add, delete, and update events, you can trigger the action when a resource is viewed by selecting **Process View Events**, or when a login occurs by selecting **Process Login Events**.
-3. Add the endpoint you previously created to the action by clicking on the **Add another Webhook Action Endpoints** link. Click on the **magnifying glass icon** and select the endpoint from the list.
+3. Add the endpoint you created to the action by clicking **Add another Webhook Action Endpoints**. Click the **magnifying glass icon** and select the endpoint from the list.
Webhooks > Pending**.
+To view webhooks that are triggered and pending, navigate to **Tools > Webhooks > Pending**.
diff --git a/docs/integration/imports/index.mdx b/docs/integration/imports/index.mdx
index 9cb8601a3..fe1d0c4ca 100644
--- a/docs/integration/imports/index.mdx
+++ b/docs/integration/imports/index.mdx
@@ -2,10 +2,12 @@
title: "Imports"
---
-This section provides information on how to import various types of data into Device42 using Excel spreadsheets.
+Import data into Device42 with spreadsheets and spreadsheet-based import tools. These options let you add new records, update existing data, and make bulk changes without building API calls manually.
-- **General Import**: Refer to [Spreadsheet Import and Exports](spreadsheet-imports-and-exports.mdx) for instructions on importing, editing, and exporting data.
+This page is for users who want to choose the right spreadsheet-based import workflow for their task. Use the links below to import general data, load data with the Generic Spreadsheet Import Tool, or make bulk changes to selected devices.
+
+- **General Import**: See [Spreadsheet Imports and Exports](spreadsheet-imports-and-exports.mdx) for instructions on importing, editing, and exporting data.
- **Using the Generic Spreadsheet Import Tool**: Use the [Generic Spreadsheet Import Tool](spreadsheet-converter-tool.mdx) to load existing XLS, XLSX, and CSV data into Device42.
-- **Bulk Changes**: Make bulk changes to devices by utilizing the "Do a re-importable export for selected devices" option. See [Using the re-importable export feature](using-the-re-importable-export-feature.mdx) for an example of renaming multiple devices using this feature.
\ No newline at end of file
+- **Bulk Changes**: Make bulk changes to devices with the **Do a re-importable export for selected devices** option. For a device renaming example, see [Using the Re-Importable Export Feature](using-the-re-importable-export-feature.mdx).
diff --git a/docs/integration/imports/spreadsheet-converter-tool.mdx b/docs/integration/imports/spreadsheet-converter-tool.mdx
index d114a9340..d95e2fa18 100644
--- a/docs/integration/imports/spreadsheet-converter-tool.mdx
+++ b/docs/integration/imports/spreadsheet-converter-tool.mdx
@@ -3,54 +3,73 @@ title: "Generic Spreadsheet Import Tool"
sidebar_position: 3
---
-The Device42 Generic Spreadsheet Import Tool enables users to take data in existing spreadsheets or CSV files and easily load them into Device42. The tool supports XLS, XLSX, and CSV formats and enables users to quickly and easily map columns from the spreadsheets to the appropriate fields in Device42.
-Here is a [video how-to on this Generic CSV import tool.](how-to-videos/generic-csv-import-tool-how-to.mdx)
+Use the Device42 Generic Spreadsheet Import Tool to load data from spreadsheet and CSV files into Device42. The tool supports `XLS`, `XLSX`, and `CSV` files and lets you map spreadsheet columns to the correct fields in Device42.
-The spreadsheet converter is a standalone executable and is available for download at [https://www.device42.com/bulk-data-management/](https://www.device42.com/bulk-data-management/).
+This page covers how to download the tool, open and map a spreadsheet, save mapping templates, and create custom device fields.
-## Open an Existing Spreadsheet
+For a video walkthrough, see [Generic (.CSV) Import Tool How to](/how-to-videos/generic-csv-import-tool-how-to).
+
+## Use the Generic Spreadsheet Import Tool
+
+The spreadsheet converter is a standalone executable. You can download it from [https://www.device42.com/bulk-data-management/](https://www.device42.com/bulk-data-management/).
+
+### Open an Existing Spreadsheet
+
+Start by opening the tool and selecting the source file you want to import.

-To get started, open the tool, browse for your existing xls, xlsx, or csv file, and select the file.
+Browse to your existing `XLS`, `XLSX`, or `CSV` file, and then select it.
+
+### Run the File Prep Wizard
-## Run the File Prep Wizard
+Use the File Prep Wizard to review the spreadsheet before you map any fields.

-You now see a preview of the first several rows of your spreadsheet. If you have any extraneous header rows that you wish to delete, you can delete them here by clicking “Remove first N rows”.
+You can preview the first several rows of the spreadsheet. If the file includes extra header rows, click **Remove first N rows** to delete them before continuing.
-After you do this, click “Next”.
+When the preview looks correct, click **Next**.
-## Map Columns to Device42 Fields
+### Map Columns to Device42 Fields
+
+Map each source column to the corresponding field in Device42.

-Now select a column from your existing spreadsheet and then select the field you want to map to in Device42.
+Select a column from your spreadsheet, and then select the Device42 field you want to map it to.
-In the example above we have the “Device Name” field in the spreadsheet and we are mapping it to the “Device: name” in Device42. Once the correct field for Device42 is selected you can click on “Map to” and this will map the field.
+In the example above, the `Device Name` spreadsheet column is mapped to the `Device: name` field in Device42. After you select the correct Device42 field, click **Map to**.

-Each time you map a field, you will see a green check box indicating that “Device” has already mapped this field. Now click “Next” to continue to map other fields.
+Each mapped field displays a green check mark to show that the mapping is complete. After you finish mapping the fields you need, click **Next**.
+
+### Create Custom Device Fields
-## Custom Device Fields
+If a spreadsheet column does not match an existing Device42 field, you can create a custom field during the import process.

-If you have a field that doesn't have an appropriate Device42 field to map to, you can create a custom Device42 field. When you do this, the spreadsheet converter will automatically create the custom field for you and associate it to the Device you are importing.
+When you create a custom field, the spreadsheet converter automatically creates it in Device42 and associates it with the imported device.
+
+:::note
+Custom fields are only available for Devices.
+:::
+
+### Save a Mapping Template
-Note: Custom fields are only available for Devices.
+Save the mapping if you expect to import similar spreadsheets again.
-## Save Mappings as Template
+Click **Save current mapping as template** to reuse the same mapping later. This reduces repeated setup for spreadsheets with the same structure.
-If you click “Save current mapping as template”, you will save a template that you can use for future spreadsheets that are similar in format. This will save you time spent on mapping fields.
+After you finish mapping the fields and optionally save the template, click **Finish**.
-Once you are done mapping the fields as well as saving your template click Finish.
+## Import the Spreadsheet Data
-## Run the Script
+Enter the connection details and run the import to send the spreadsheet data to Device42.

-To run the script, select the file name and enter the Device42 IP address and the authentication information. Click on “Run” and your data from the spreadsheet will be imported into Device42!
+Select the file name, enter the Device42 IP address, and provide the authentication details. Then click **Run** to import the spreadsheet data into Device42.
diff --git a/docs/integration/imports/spreadsheet-imports-and-exports.mdx b/docs/integration/imports/spreadsheet-imports-and-exports.mdx
index 94032c7fa..31f1e607a 100644
--- a/docs/integration/imports/spreadsheet-imports-and-exports.mdx
+++ b/docs/integration/imports/spreadsheet-imports-and-exports.mdx
@@ -6,11 +6,11 @@ sidebar_position: 1
import ThemedImage from "@theme/ThemedImage";
import useBaseUrl from "@docusaurus/useBaseUrl";
-Use the spreadsheet imports and export functionality to modify data, add data to Device42, and export current data. The import and export feature uses the Device42 API without you needing to construct the API calls yourself and provides feedback on whether the records were successfully updated or why they were not.
+Use the spreadsheet import and export tools to add data to Device42, update existing records, and export current data. These tools use the Device42 API in the background, so you do not need to build API calls manually. They also show whether each record was imported successfully and, if not, why it failed.
-It may be useful to import and export resource IP addresses for analysis by another tool or to reflect a new network configuration by making bulk changes to the IP addresses and then reuploading the data to Device42.
+This page explains where to find the feature, how to prepare sample files, how to upload changes, and how exports behave for large datasets and passwords.
-The spreadsheet import functionality is located under **Tools > Imports/Exports (xls)**.
+The spreadsheet import and export functionality is located under **Tools > Imports/Exports (xls)**.
Imports/Exports
## Import Data
-To load a set of data, choose a category on the left and click **Download Sample Excel File**. You'll add your data to the sample spreadsheet and import it.
+To import data, choose a category on the left and click **Download Sample Excel File**. Add your data to the sample spreadsheet, and then import it.
-Below is the sample spreadsheet for the **Buildings - Create/Update Buildings** category.
-- The first three rows should not be modified. They consist of the API endpoint, request method, and column headings.
-- The fourth (and sometimes fifth) row contains sample data. Delete the sample data and add the data to import to rows four and up.
-- Save the .xls or .xlsx file.
+Below is a sample spreadsheet for the **Buildings - Create/Update Buildings** category.
+
+- Do not modify the first three rows. They contain the API endpoint, request method, and column headings.
+- The fourth row, and sometimes the fifth row, contains sample data. Delete the sample data, and then add the records you want to import starting on row four.
+- Save the file as `.xls` or `.xlsx`.

-Now upload the file. Head back to the **Import/Export (xls)** page, browse to add the modified sample spreadsheet, and click **Import**.
+After you prepare the file, upload it from the **Imports/Exports (xls)** page.
+
+Browse to the modified sample spreadsheet, and then click **Import**.
-Below the **Browse** button, you'll see a message listing all the records that were added or updated successfully. If any records were rejected, you'll see a reason for each rejection.
+Below **Browse**, Device42 displays a message listing the records that were added or updated successfully. If any records are rejected, the message includes a reason for each rejection.
-### Data Explanations
+### Data Field Descriptions
-If you want to learn more about a data field, hover over the small triangle in the upper right of the field name cells. Alternatively, click the **View Documentation** link on the **Imports/Exports (xls)** page to be redirected to the online documentation.
+If you want to learn more about a data field, hover over the small triangle in the upper-right corner of the field name cell. You can also click **View Documentation** on the **Imports/Exports (xls)** page to open the online documentation.

## Export Data
-Click the **Download Current Data** link to download a spreadsheet of the current data for the chosen category. This is a simple way to export your data.
+To export data, click **Download Current Data** for the selected category. This downloads a spreadsheet that contains the current records for that category.
-As of Device42 19.06, the export feature will generate a spreadsheet in a new browser tab for each 1,000,000 records generated.
+The export feature opens a new browser tab for each 1,000,000 exported records.
-For example, the spreadsheet below shows exported data for the **Buildings - Create/Update Buildings** category.
+For example, the spreadsheet below shows exported data for the **Buildings - Create/Update Buildings** category.

## Modify Data
-This same functionality can be used to modify your data. Simply download the current data, modify the data in the spreadsheet, and import by clicking the **Browse** and **Import** buttons as described above.
+You can use the same workflow to modify existing data.
-If a category has the **Create** or **Add** options visible to its left and not **Modify** or **Update**, then the records in the imported spreadsheet will be added. So, if you **Download Current Data** and re-import it, you will get duplicates.
+Download the current data, update the spreadsheet, and then re-import it with **Browse** and **Import** as described above.
-To prevent duplicate records, download and modify the data in the spreadsheet and then delete the existing records before you do the re-import step. Find the list view for the _primary object_ of your category of interest to bulk delete the existing records. For example, go to the racks list view for the **Create Racks** category.
+If a category shows **Create** or **Add**, but does not show **Modify** or **Update**, importing the spreadsheet adds new records instead of updating existing ones. If you export current data and re-import it for one of these categories, you will create duplicates.
+
+To avoid duplicate records, modify the spreadsheet and then delete the existing records before you re-import it. Go to the list view for the *primary object* in the category to bulk-delete the existing records. For example, use the racks list view for the **Create Racks** category.
## Export Passwords
-By default, the password export does not export the actual passwords even for users with the necessary permissions to view passwords. Go to **Tools > Settings > Password Security** to change the default setting. Password exports will then contain the literal string passwords for users with the correct permissions.
+By default, password exports do not include the actual password values, even for users who have permission to view passwords.
+
+To change this behavior, go to **Tools > Settings > Password Security**. Password exports then include the literal password strings for users with the appropriate permissions.
diff --git a/docs/integration/imports/using-the-re-importable-export-feature.mdx b/docs/integration/imports/using-the-re-importable-export-feature.mdx
index a9dd9d1d9..db726342c 100644
--- a/docs/integration/imports/using-the-re-importable-export-feature.mdx
+++ b/docs/integration/imports/using-the-re-importable-export-feature.mdx
@@ -1,16 +1,18 @@
---
-title: "Using the re-importable export feature"
+title: "Using the Re-Importable Export Feature"
sidebar_position: 2
---
import ThemedImage from '@theme/ThemedImage'
import useBaseUrl from '@docusaurus/useBaseUrl'
-The re-importable export option can be used to make bulk changes to devices.
+Use the re-importable export feature to make bulk changes to devices by exporting selected records, editing them in a spreadsheet, and importing the updated data back into Device42.
+
+This page walks through a bulk device renaming example and points to the related API documentation for additional update options.
## Example: Renaming Multiple Devices
- In this example, we will use this feature to rename multiple devices.
+This example shows how to rename multiple devices with a re-importable export.
Select the devices you want to rename from any device list view, like the one located under **Resources > Compute > All Devices**.
@@ -24,7 +26,7 @@ From the **Actions** dropdown menu, choose the **Export selected items** option.
}}
/>
-Choose the **Re-importable Export** option and click **Export**. Note that as of Device42 19.06, the re-importable export feature will generate a spreadsheet in a new browser tab for each 1,000,000 records generated.
+Choose **Re-importable Export**, and then click **Export**. The export opens in a new browser tab for each 1,000,000 generated records.
-Download the spreadsheet and change the device names. If you're using a naming convention that includes numbers, you can allow Excel to auto-fill the device names by typing in the first two names, selecting the cells, and dragging the selection down the column.
+Download the spreadsheet and update the device names. If your naming convention includes numbers, Excel can auto-fill the names after you enter the first two values, select both cells, and drag the selection down the column.

-Back in Device42, go to **Tools > Imports/Exports (xls)** to upload the spreadsheet and then click **Import**.
+After you update the spreadsheet, go to **Tools > Imports/Exports (xls)** in Device42, upload the file, and click **Import**.
-When the import is complete, you will see the confirmation, "The following lines from worksheet Current were added or updated successfully".
+When the import is complete, you will see the confirmation message stating that the lines from worksheet `Current` were added or updated successfully.
-To confirm the success of the bulk device renaming, search for the new device names from the device list page search bar.
+To confirm the bulk device rename, search for the new device names from the search bar on the device list page.
-Renaming devices is just one example of how the **Re-importable Export** feature can be used. For example, the re-importable export sheet includes almost 30 device parameters that can be edited and imported back into the system.
+Renaming devices is just one example of how you can use **Re-importable Export**. The re-importable export sheet includes nearly 30 device parameters that you can edit and import back into Device42.
## More Information
-For more details on the options available using API / API Imports:
+For more information about the available API import options, see the following references:
[https://api.device42.com/#update-device-by-serial-or-asset](https://api.device42.com/#update-device-by-serial-or-asset)
-[https://api.device42.com/#create/update-device-by-name](https://api.device42.com/#create/update-device-by-name)
\ No newline at end of file
+[https://api.device42.com/#create/update-device-by-name](https://api.device42.com/#create/update-device-by-name)
diff --git a/static/assets/images/external-logging-config/webhook-endpoint-splunk-logging.png b/static/assets/images/external-logging-config/webhook-endpoint-splunk-logging.png
new file mode 100644
index 000000000..93e9db81d
Binary files /dev/null and b/static/assets/images/external-logging-config/webhook-endpoint-splunk-logging.png differ
diff --git a/static/assets/images/webhooks-generic-integration/webhook-action-dark.png b/static/assets/images/webhooks-generic-integration/webhook-action-dark.png
new file mode 100644
index 000000000..b381eebe4
Binary files /dev/null and b/static/assets/images/webhooks-generic-integration/webhook-action-dark.png differ
diff --git a/static/assets/images/webhooks-generic-integration/webhook-action-light.png b/static/assets/images/webhooks-generic-integration/webhook-action-light.png
new file mode 100644
index 000000000..e637c6a66
Binary files /dev/null and b/static/assets/images/webhooks-generic-integration/webhook-action-light.png differ
diff --git a/static/assets/images/webhooks-generic-integration/webhook-endpoint-dark.png b/static/assets/images/webhooks-generic-integration/webhook-endpoint-dark.png
new file mode 100644
index 000000000..52673472c
Binary files /dev/null and b/static/assets/images/webhooks-generic-integration/webhook-endpoint-dark.png differ
diff --git a/static/assets/images/webhooks-generic-integration/webhook-endpoint-light.png b/static/assets/images/webhooks-generic-integration/webhook-endpoint-light.png
new file mode 100644
index 000000000..d8338b248
Binary files /dev/null and b/static/assets/images/webhooks-generic-integration/webhook-endpoint-light.png differ
diff --git a/static/assets/images/webhooks-generic-integration/webhook-menu-dark.png b/static/assets/images/webhooks-generic-integration/webhook-menu-dark.png
new file mode 100644
index 000000000..d4b8ed0b0
Binary files /dev/null and b/static/assets/images/webhooks-generic-integration/webhook-menu-dark.png differ
diff --git a/static/assets/images/webhooks-generic-integration/webhook-menu-light.png b/static/assets/images/webhooks-generic-integration/webhook-menu-light.png
new file mode 100644
index 000000000..aac9091d7
Binary files /dev/null and b/static/assets/images/webhooks-generic-integration/webhook-menu-light.png differ