Hello everyone, wanted to take a moment to let everyone know of a new feature I put into the Admin Essentials Plugin.

 

Since I need to be brief, it is in essence a source tracker.  It allows you to create marketing URLs that can track a person's source, and persist that information into the User's session.  Here is the documentation that I put into the plugin's readme file, that helps explain how it works.  Apologies in advance for the roughness of this feature, but was in a hurry and had to lean on the function over aesthetic argument a bit more than I would have wished.

 

Source Track Documentation

This feature is controlled via System Properties, and is pretty straight forward.

To be clear, this is not meant to be a fully featured source tracking system; however, very basic and very functional. Happy to expand the nature of this feature over time; however, I am not looking to build a fully featured source tracking system.


Goal: Provide a means to track in the Jive Session where a person came from, such that other Actions, Widgets, and Features in the community can be tuned in.

 

Getting Started:

  1. Choose a TrackCode, such as "ABCDEF1234". Can be as short or long as needs be (less than 2000 characters though), ideally no spaces or special characters
  2. Market the URL ${yourJiveHomeURL}/sourcetrack/ABCDEF1234
    1. Note: TrackCode is case in-sensitive.
  3. In the System Properties, create the following properties:
    • admin.sourceTrack.abcdef1234 = test
      • Note: TrackCode MUST be lower-case.
    • admin.sourceTrack.abcdef1234.url = /groups/my-group
  4. When a user visits ${yourJiveHomeURL}/sourcetrack/ABCDEF1234 they will be redirected to ${yourJiveHomeURL}/groups/my-group
  5. Behind the scenes, a marker will be set in the user's Java Session, with the key admin.sourceTrack.code with the value test

 

Now you can use code in Java, FreeMarker, or any other technology that has access to the Session to see where they came from.  For example, to print this value in FreeMarker, you would use a snippet similar to this:

${action.getSession().get('admin.sourceTrack.code')!''}

or in a Java Struts Action:

getSession().get("admin.sourceTrack.code")

 

Note: When TrackCodes step on each other, the most recent wins out; however, it will be marked with an asterisk, such as test* in the session. Which means an overwrite occurred.