How can I troubleshoot Primo VE search results and links using Record Id, Display CTO and Show PNX?


Sometimes it can be hard to tell where your search result bib records and view online links are coming from. Here are some ways that you can identify the source of your metadata, see which links have met the criteria for display in view online, and other troubleshooting tools.

Show Record ID:

It can be challenging to figure out where a record is coming from. Is it an Alma record? Is it coming from the Central Discovery Index (CDI)? You can use the Show Record ID bookmarklet to identify the source of the record in your results list.

How to set up the bookmarklet:

  • Bookmark any page in your browser and call it something like "Record Id"
  • Edit the bookmark and replace the URL with this code: 

javascript:(function() {var showPnxLinkElem = document.querySelectorAll('.list-item-count'),urlParamVid ='vid=')[1].split('&')[0];for (var i=0, j=showPnxLinkElem.length; i < j; i++) {var showPnxRecId = showPnxLinkElem[i].parentNode.getAttribute('data-recordid'),resultItemChildren =showPnxLinkElem[i].parentNode.parentNode.childNodes,resultItemLastChild = resultItemChildren[resultItemChildren.length - 1],recordIdSpan = document.createElement("span"),showSourceUrl = document.createElement("a"),showSourceUrlHref ="./sourceRecord?vid="+urlParamVid+"&docId="+showPnxRecId,showPnxUrl = document.createElement("a"),showPnxUrlHref ="./fulldisplay?vid="+urlParamVid+"&docid="+showPnxRecId+"&showPnx=true";showSourceUrl.setAttribute("href", showSourceUrlHref);showSourceUrl.setAttribute("target", "_blank");showSourceUrl.innerHTML = "Show Source Record"; = "0 0 0 2em";showPnxUrl.setAttribute("href", showPnxUrlHref);showPnxUrl.setAttribute("target", "_blank");showPnxUrl.innerHTML = "Show Pnx Record"; = "0 0 0 2em";recordIdSpan.className = "show-recordid";recordIdSpan.innerHTML = showPnxRecId; = "2em 0 0 0";if (/^TN./.test(showPnxRecId) == false ) {recordIdSpan.appendChild(showPnxUrl);recordIdSpan.appendChild(showSourceUrl);}if (resultItemLastChild.className !== 'show-recordid') {showPnxLinkElem[i].parentNode.parentNode.appendChild(recordIdSpan);}};})()

  • Can also grab this code from
  • Move the bookmark to your toolbar for easy access
  • When you get a results list in Primo and click on that bookmark, the record id will show underneath the record:

Record id

  • If the id starts with "alma," then the bib record is coming from Alma, and the id record is the Alma MMS id. If it starts with "cdi," then the record is coming from the CDI, and the following information tells you the source of the search record, which is NOT the collection that you have active in Alma. It's just one of the many search collection records that may have been activated when the book or journal was published as available through the CDI publishing job. Use the CDI Activation Analysis Tool to figure out what activation in Alma caused this search record to appear.

Display CTO:

The CTO will show the underlying metadata for content coming from the Central Discovery Index (CDI) and via link resolver links from databases outside of Primo or places like Google Scholar. To activate the CTO link, add &displayCTO=true to the end of your record URL when you're in the full display.  This will add a DISPLAY CTO link which will show you the OpenURL parameters and the links from the View Online. For example:

  • Trees article by Henri Epstein
  • Add &displayCTO=true to end of URL:,contains,trees&offset=0&displayCTO=true and you now get a "display CTO" link on the record:

display CTO

  • Or, create bookmarket for javascript:void((function(){'&displayCTO=true');})()) 

    (or you can grab at  

  • When you click that link, you get a page that shows the underlying metadata:

CTO metadata

  • Scrolling down will show you the links associated with this data, and help you determine why they might or might not be displaying in Primo. Reasons the might not be displaying could be: display logic rule making only one EBSCO database display as a result rather than a long list of them, portfolio with incorrect coverage dates, etc.

Show PNX:

If you're trying to understand what metadata is being used in Primo VE and why information appears in the results, add &showPnx=true parameter to the end of the record's full display URL. This will show you a normalized record in the JSON format. 

Or, create a bookmarklet javascript:void((function(){'&showPnx=true');})()) 

(or you can grab it at

Hide Customization:

Sometimes it can be helpful to see what Primo VE looks like out of the box vs. the customization that you've added. To do this, add &noCustomization=true to the end of your URL. 

Performance Monitor:

This tool could help when trying to see if you are imagining the long load times in Primo VE or if they are real. Add &show_performance=true to the end of your URL.

URL Parser Tool:

This can help you figure out what content is being sent through OpenURL.

Redirect Path:

This Chrome plugin documents all the URLs that your browser goes through until reaching its final destination, and it's helpful in troubleshooting OpenURL paths that lead to odd Primo VE services pages

Debug Link:

If you want to see where a Primo VE View Online link is going without clicking on it, you can right click on the link name, copy link, paste it into a new tab and add &debug=true to the end to see the actual link, including the proxy and parser data information.


  • Last Updated Sep 22, 2023
  • Views 4630
  • Answered By Michelle Eichelberger

FAQ Actions

Was this helpful? 17 0

Comments (2)

  1. Just a quick side note/ helpful hint: This works best in Chrome. I tried in Firefox and got a big jumbled mess and it took me a minute to figure out what the issue was.
    by Jill L on Oct 16, 2019
  2. Some more here
    by M Schwendener on Jul 14, 2022