# Mass conversion of direct OPC tags to UDT's

**URL:** <https://forum.inductiveautomation.com/t/mass-conversion-of-direct-opc-tags-to-udts/66693>\
**Category:** General Discussion\
**Created:** [November 18, 2022, 4:24pm UTC](https://forum.inductiveautomation.com/t/mass-conversion-of-direct-opc-tags-to-udts/66693 "2022-11-18T16:24:35Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [November 18, 2022, 4:46pm UTC](https://forum.inductiveautomation.com/t/mass-conversion-of-direct-opc-tags-to-udts/66693/2 "2022-11-18T16:46:13Z")

</div>

`jq` is a very powerful (somewhat hard to use) tool to make structural manipulations to JSON data:  
[https://stedolan.github.io/jq/](https://stedolan.github.io/jq/)

You could likely also accomplish this through scripting, but I'd probably do it with jq, to be honest.

For example, adding a computed tooltip to all your OPC tags:

> [@How to create / append bulk tooltips via script with json export?](https://forum.inductiveautomation.com/t/how-to-create-append-bulk-tooltips-via-script-with-json-export/50072/4):
>
> You can do it with jq (a downloadable command-line executable designed to manipulate JSON): walk( if type == "object" and .valueSource == "opc" then .tooltip = "TagName: \(.name) \(.opcItemPath)" else . end) [https://jqplay.org/s/Pe6T7qNEFY](https://jqplay.org/s/Pe6T7qNEFY) I mostly copied this snippet from here:

---

_[View the full topic](https://forum.inductiveautomation.com/t/mass-conversion-of-direct-opc-tags-to-udts/66693)._
