Worldox Integration

Worldox provides a very robust API feature that allows AdvoLogix to launch Worldox Desktop, with a predefined set of search criteria. When a Worldox link is clicked from AdvoLogix, the end user is presented with the Worldox application dialog, pre-filtered to display only those documents pertinent to the underlying AdvoLogix record.

Worldox can be related to any AdvoLogix object. The most common implementations will allow Worldox to be launched from the context of a Matter (and/or Account/Client).

The following information applies to setting up the Worldox integration in lightning. Please see this article for using the Worldox integration in classic.

Prerequisites

Users will need Worldox GX3 or Worldox GX4 with access to the Worldox Desktop application. Keep in mind, your firm can choose to hide the integration links for users without access to Worldox.

Create the Worldox Visualforce Page

  1. Navigate to Setup
  2. Type Visualforce Pages into the Quick Find box
  3. Select the New button
  4. Check the box for Available for Lightning Experience, Lightning Communities, and the mobile app 
  5. Now copy and paste the following code in the Visualforce Page Editor:
<apex:page standardController="advpm__Matter__c">
    <!-- 'standardController' is the API name of the Object on which this Button has been created on -->
   
    <!-- Classic Environment -->
    <apex:sectionHeader title="Worldox Documents" subtitle="{!advpm__Matter__c.Name}" rendered="{! $User.UIThemeDisplayed!='Theme4d'}" />
   
    <!-- Lightning Experience Environment -->
    <apex:slds rendered="{! $User.UIThemeDisplayed == 'Theme4d'}" />
    <apex:outputPanel styleClass="slds-scope" layout="block" rendered="{! $User.UIThemeDisplayed == 'Theme4d'}">
        <div class="slds-page-header">
            <div class="slds-grid">
                <div class="slds-col slds-has-flexi-truncate">
                    <div class="slds-media slds-no-space slds-grow">
                        <div class="slds-media__body">
                            <p class="slds-text-title_caps slds-line-height_reset">Worldox Documents</p>
                            <h1 class="slds-page-header__title slds-m-right_small slds-align-middle slds-truncate" title="{!advpm__Matter__c.Name}">{!advpm__Matter__c.Name}</h1>
                        </div>
                    </div>
                </div>
                <div class="slds-col slds-no-flex slds-grid slds-align-top"> </div>
            </div>
        </div>
    </apex:outputPanel>
   
    <!-- Classic Environment -->
    <apex:outputPanel layout="inline" rendered="{! $User.UIThemeDisplayed != 'Theme4d'}">
        <script type="text/javascript">
            window.onload = function() {
                    var wdoxURL = 'wdox://?G5 AND ?2{!advpm__Matter__c.advpm__Client_Matter_ID__c}';
                    window.location.href = wdoxURL;
            };
        </script>
    </apex:outputPanel>
   
    <!-- Lightning Experience Environment -->
    <apex:outputPanel layout="inline" rendered="{! $User.UIThemeDisplayed == 'Theme4d'}">
        <script type="text/javascript">
            window.onload = function() {
                //Your Button Javascript can go here, and the JavaScript redirect URL will replace <YOUR BUTTON URL HERE> below.
                if ( (typeof sforce != 'undefined') && (sforce != null) ) {
                    var wdoxURL = 'wdox://?G5 AND ?2{!advpm__Matter__c.advpm__Client_Matter_ID__c}';
                    sforce.one.navigateToURL(wdoxURL, false);
                }
            };
        </script>
    </apex:outputPanel>
   
    <apex:pageMessages />
    <apex:form styleClass="{!IF($User.UIThemeDisplayed == 'Theme4d','slds-scope','')}" >
        <center>
            <apex:commandButton action="{!cancel}" value="  Go Back  " immediate="true" styleClass="slds-button slds-button--neutral" />
        </center>
       
        <!-- hidden inputFields for the sake of letting Visualforce Page know that we need to use value of these fields, a platform bug need this workaround, otherwise an error may be thrown that value could not be read from the object -->
        <apex:inputField value="{!advpm__Matter__c.Name}" rendered="false" />
        <apex:inputField value="{!advpm__Matter__c.advpm__Client_Matter_ID__c}" rendered="false" />
    </apex:form>
</apex:page>

The illustration shown above exhibits the calling convention to open Worldox for the underlying Matter.  Worldox provides many options for this calling parameter. This example uses the field named Client Matter ID to map to the Worldox Matter in profile field 2. This command can also include a Client ID or any other parameters needed by your Worldox implementation.

The parameters are defined as follows:

(A) ?G5 specifies the Worldox Profile Group ID you want to search within.
(B) ?2 tells Worldox to search using profile field 2.
(C) {!advpm__Matter__c.advpm__Client_Matter_ID__c} this value works in conjunction with ?2.

Given these parameters, Worldox will return documents whose value in profile field 2 matches with the AdvoLogix value in Client_Matter_ID field.

For more information on Worldox, please visit Worldox Support.