Skip to content

Commit 32e0f71

Browse files
authored
Merge pull request #481 from ritza-co/19.07.10
Docs 19.07.10 release (Week 46, 2025)
2 parents d2cead5 + 13b25a6 commit 32e0f71

17 files changed

+419
-58
lines changed

docs/auto-discovery/enrichai-data/index.mdx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ The EnrichAI Data service populates the following vendor attributes, operating s
3131
| OS Version Number | The general version number of the release |
3232
| Key Support Dates | See the details for the available date fields in the table below |
3333

34-
:::note
3534
The **OS Architecture: 32 vs 64 bit** field is no longer part of EnrichAI Data. The 32- and 64-bit architectures have been coalesced into a single entry, since the architecture does not affect OS dates, licensing, patches, or risk profiles.
36-
:::
3735

3836
### Key Support Dates
3937

@@ -183,10 +181,9 @@ The image below shows a vendor view page with enriched data. Enriched data is al
183181
## Data Handling and Security Practices
184182

185183
1. No personal or personally identifiable data is maintained by the EnrichAI Data service.
186-
2. Data sent to EnrichAI Data is not associated with or tracked to the calling system or installation.
187-
3. Unmatched values (those without a corresponding match in EnrichAI Data) are stored for future mining and resolution. This storage has no association with the calling system or installation.
188-
4. Only Device42 personnel work with these non-identifiable data elements.
189-
5. Data collected for future enrichment mining is stored in the United States.
184+
2. Unmatched values (those without a corresponding match in EnrichAI Data) are stored for future mining and resolution. This storage has no association with the calling system or installation.
185+
3. Only Device42 personnel work with these non-identifiable data elements.
186+
4. Data collected for future enrichment mining is stored in the United States.
190187

191188
:::note
192189
Device42 reserves the right to change and update the internal matching algorithm and the golden records provided with this service.

docs/integration/external-integrations/freshservice-integration/customize-freshservice.mdx

Lines changed: 134 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,19 @@ This page covers advanced data mapping customization and XML file editing.
1212
- For usage and operations, see [Using the Freshservice Integration](use-freshservice-integration.mdx).
1313
:::
1414

15-
If you make an adjustment and use a custom XML file, Device42 will not update the custom XML during updates.
15+
## Manage Customization with Newer Releases
1616

17-
If you want to incorporate updates, you'll 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.
17+
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).
1818

19-
## Custom Data Mapping
19+
If you make an adjustment and use a custom XML file, Device42 will not update the custom XML during updates.
20+
21+
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.
22+
23+
We recommend keeping track of your customizations so they can be added to the latest default mapping file.
24+
25+
## Get Started with Custom Data Mapping
26+
27+
To get started, download the default mapping XML file and view the current mapping.
2028

2129
### Download the `mapping.xml` File
2230

@@ -28,7 +36,7 @@ If you want to incorporate updates, you'll need to do so manually: Download the
2836

2937
### View the Current Mapping
3038

31-
- Explore the mapped fields and their data types by selecting an asset type (for example, **Devices**) from the **Data Mapping Chart**. Scroll to the bottom of the page to view the mapping table.
39+
- Explore the mapped fields and their data types by selecting a type (for example, **Devices**) from the **Data Mapping Chart**. Scroll to the bottom of the page to view the mapping table.
3240

3341
![View current mapping](/assets/images/freshservice-integration/view-mappings-2.png)
3442

@@ -326,6 +334,42 @@ Use the following steps to verify that the field name is correct:
326334
}}
327335
/>
328336

337+
338+
## Control Updates
339+
340+
Control whether changes made to Device42 asset types and contracts will update the corresponding items in Freshservice during sync.
341+
342+
### Control Asset Type Updates
343+
344+
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.
345+
346+
### Control Contract Updates
347+
348+
You can control whether Device42 contract updates sync to Freshservice. This applies to contract tasks with `name="Contracts"` and `name="Software Licensing"`.
349+
350+
Add the `skip-update` attribute to the `<task>` element:
351+
352+
- If `skip-update="false"`, contract updates in Device42 will be updated in Freshservice (if the contract exists).
353+
- If `skip-update="true"`, the contracts are created in Freshservice but will not be updated after initial creation.
354+
355+
If the attribute is absent from the task element, the contracts in Freshservice will not be updated.
356+
357+
- For example, add `skip-update="false"` to enable contract updates in mapping.xml v4.0:
358+
359+
![Contracts task element with skip-update](/assets/images/freshservice-integration/vscode-contracts-skip-update.png)
360+
361+
```xml
362+
<task enable="true" name="Contracts" type="contract" description="Copy contract info from Device42 to Freshservice" skip-update="false">
363+
```
364+
365+
- For example, add `skip-update="false"` to enable contract updates for software licensing in mapping.xml v4.0:
366+
367+
![Contracts task element with skip-update](/assets/images/freshservice-integration/vscode-software-licensing-skip-update.png)
368+
369+
```xml
370+
<task enable="true" name="Software Licensing" type="contract" description="Copy Software Licensing info from Device42 to Freshservice" skip-update="false">
371+
```
372+
329373
## Data Mapping FAQs
330374

331375
This section answers some common questions about data mapping between Device42 and Freshservice. We're actively improving the integration and this documentation. Please [contact support](mailto:[email protected]) if you have technical questions, and use the **Page Feedback** button at the top of this page to leave feedback about the documentation.
@@ -419,6 +463,92 @@ If you can't find a task related to your custom field, you can create a new `<ta
419463

420464
![Custom field in Freshservice](/assets/images/freshservice-integration/device-custom-field-fs-final.png)
421465

466+
### How Do I Sync a Device42 Field to a Custom Contract Field in Freshservice?
467+
468+
You can map existing Device42 contract data to custom fields in Freshservice contracts. This allows you to sync Device42 contract information (either standard fields or existing custom fields) to new custom fields you create in Freshservice.
469+
470+
**Prerequisites:**
471+
- You need to upload a custom mapping file in Freshservice to make these changes.
472+
- For updating contracts to work, you need to add `skip-update="false"` to contract tasks. See [Control Contract Updates](#control-contract-updates) for details.
473+
474+
**In Freshservice:**
475+
476+
1. Create custom fields. Go to **Settings > Contract Types** in Freshservice and add custom fields to receive the Device42 contract data.
477+
478+
- Log in to your Freshservice instance.
479+
- Click the **ellipsis menu** (bottom of left panel) and select **Admin**.
480+
- In the search bar, type `contract type`.
481+
- Click the **edit icon** to the right of the contract type name.
482+
483+
![Edit icon for Lease contract type](/assets/images/freshservice-integration/fs-contract-edit-button.png)
484+
485+
- Drag one of the data type buttons below the last input on the form to add the custom field. Freshservice supports the following custom field types: Single Line Text, Multi Line Text, Checkbox, Number, Dropdown, Phone Number, URL, and Date.
486+
487+
![Drag custom field](/assets/images/freshservice-integration/fs-custom-field-drag.png)
488+
489+
- Label the custom field and set whether a value is required and whether the field should appear on renewal forms. If you don't send a value to the required field, you will get an error.
490+
491+
![Configure custom field](/assets/images/freshservice-integration/fs-custom-field-properties.png)
492+
493+
You can create custom fields that exist in one contract type but not others, allowing you to customize each contract type independently.
494+
495+
**In `mapping.xml`:**
496+
497+
2. Update the DOQL queries in the contract type tasks to select data that you will enter in the contract custom fields. For example, add the **Cancel Policy** field, `pli.cancel_policy`, from the purchase line item:
498+
499+
<details>
500+
<summary>Click to expand the code block</summary>
501+
```sql
502+
<task enable="true" name="Contracts" type="contract" description="Copy contract info from Device42 to Freshservice" skip-update="false">
503+
<api>
504+
<target/>
505+
<resource
506+
doql="
507+
select plid.device_name, v.name vendor_name,
508+
v.name || '-' || p.order_no || '-' || pli.line_no as name,
509+
case
510+
WHEN lower(pli.contract_type_name) = 'warranty' THEN 'Warranty'
511+
WHEN lower(pli.contract_type_name) in ('base', 'upgrade') and lower(v.name) in ('ibm', 'lenovo') THEN 'Warranty'
512+
WHEN lower(pli.contract_type_name) = 'lease' THEN 'Lease'
513+
ELSE 'Maintenance'
514+
end as contract_type_name,
515+
pli.contract_id, pli.cost, pli.start_date, pli.end_date, pli.cancel_policy
516+
from view_purchaselineitems_to_devices_v1 plid
517+
inner join view_purchaselineitem_v1 pli on plid.purchaselineitem_fk = pli.purchaselineitem_pk
518+
inner join view_purchase_v1 p on pli.purchase_fk = p.purchase_pk
519+
inner join view_vendor_v1 v on p.vendor_fk = v.vendor_pk
520+
where lower(pli.line_type) = 'contract' and pli.start_date is not null and pli.end_date is not null
521+
```
522+
</details>
523+
524+
:::tip
525+
Use the **ERD Diagram** located under the **question mark icon** in Device42 to look up Device42 tables and fields for the DOQL query.
526+
:::
527+
528+
3. Add a field mapping to map the field from the DOQL query to the Freshservice contract custom field. For example:
529+
530+
```xml
531+
<field resource="cancel_policy" source-type="string" target="cf_cancel_policy" target-type="string"/>
532+
```
533+
534+
The Freshservice custom field `target` is `cf_cancel_policy`, following this pattern:
535+
536+
```
537+
cf_[lowercase with underscores replacing spaces]
538+
```
539+
540+
![Custom Field mapping in mapping.xml](/assets/images/freshservice-integration/vs-code-custom-field-mapping.png)
541+
542+
**In Freshservice:**
543+
544+
4. [Reupload `mapping.xml` to Freshservice](#reupload-the-mappingxml-file) using the **Upload Custom Mapping** button.
545+
546+
5. Verify that your custom field (`cf_cancel_policy`) appears in the **Data Mapping Chart** table.
547+
548+
![Data Mapping Chart with custom field](/assets/images/freshservice-integration/fs-cancel-policy-mapping.png)
549+
550+
6. Run the [sync](index.mdx#run-the-data-synchronization).
551+
422552
### How Do I Change an Existing Mapping to Pull From a Different Device42 Field?
423553
424554
In the `<task>` that corresponds with the Device42 field you want to pull from, change the `resource` and `target` attributes of the `<field>` elements in the `<mapping>` element.

docs/integration/external-integrations/freshservice-integration/index.mdx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ After installing the integration app in Freshservice, set up an External Integra
134134

135135
![SAML/SSO settings](/assets/images/freshservice-integration/saml-sso-settings.png)
136136

137-
- **Auto Login**: Device42 will try to log you in automatically, without first directing you to the login page. If the automatic login fails, you will be directed to the login page.
138-
- **Show Login Page**: Device42 will always direct you to the login page (with buttons for normal and SSO login).
137+
- **Auto Login**: Device42 will try to log you in automatically, without first directing you to the login page. If the automatic login fails, you will be directed to the login page.
138+
- **Show Login Page**: Device42 will always direct you to the login page (with buttons for normal and SSO login).
139139

140140
4. Restart your Device42 instance. From the Appliance Manager, go to **Application > Restart Application** and check the confirmation box before restarting Device42.
141141

@@ -160,7 +160,7 @@ Test the SSO as follows:
160160

161161
Now, when you're logged out of both Device42 and Freshservice, clicking the **Freshworks Login** button in Device42 will direct you to the Freshworks sign-in page.
162162

163-
![Freshworks sign-in page](/assets/images/freshservice-integration/freshworks-sign-in-2.png)
163+
![Freshworks sign-in page](/assets/images/freshservice-integration/freshworks-sign-in-2.png)
164164

165165
## Troubleshooting
166166

@@ -172,16 +172,18 @@ If you see this error:
172172
[ERROR] 2025-06-30T19:06:37Z main.go:327: Connection error, error: websocket: bad handshake, response: Error: secure tunnel already established with same instance ID. Is there another D42 instance running with same settings?
173173
```
174174

175-
This means multiple Device42 instances are using the same GUID. To fix this:
175+
This means multiple Device42 instances are using the same GUID. Each Device42 instance must have a unique GUID. The primary should keep its GUID, and any duplicate GUIDs on other instances should be regenerated to be unique.
176+
177+
To action this:
176178

177179
1. Check the GUID on your primary Device42 instance at **Tools > Integrations > Cloud Services**.
178180
2. Check the GUID of your other Device42 instances (hot standby, development, and so on).
179-
3. If the instances have the same GUID, regenerate GUID on all instances except the primary one.
180-
4. Restart Device42 services on instances where you changed the GUID.
181+
3. If the instances have the same GUID, regenerate the GUID on all instances except the primary one.
182+
4. Restart Device42 services on the instances where you changed the GUID.
181183

182184
## Next Steps
183185

184186
Once you have completed the setup, you can:
185187

186188
- [Use the Freshservice Integration](use-freshservice-integration.mdx) for data synchronization, and understanding data flows.
187-
- [Customize the Freshservice Integration](customize-freshservice.mdx) for advanced data mapping and XML configuration.
189+
- [Customize the Freshservice Integration](customize-freshservice.mdx) for advanced data mapping and XML configuration.

0 commit comments

Comments
 (0)