ActivePrime Applet Visibility in CRM On Demand

Problem

Your team uses Applets in Oracle COD (CRM On Demand) to provide some awesome new functionality for your CRM. For instance, the ActivePrime applet to enable CleanEnter 

Ok. That’s great, but you now need more control over who sees the Applet. Sure you can have individual users enable the applet, or assign to all users based on Role. However, say you have this scenario. You have 50 users in the Custom Power User Role in COD, but only 42 of those 50 should see the ActivePrime Applet that’s configured to show CleanEnter. What do you do?

Solution

The solution is rather simple and sweet; add JavaScript to the Custom HTML Head Tag on your COD instance, and that JavaScript will specify which users to enable. The JavaScript is a dictionary of dictionaries, which is more complex than it sounds. See below.

<script>
var ap_enabled_users = {
ce: {
“ace/will.johnson”:true,
“ace/samantha.willis”:true
},
ccrm: {
“ace/will.johnson”:true,
“ace/samantha.willis”:false
}
}
</script>

This tells ActivePrime that these two users should be enabled for CleanEnter:
ace/will.johnson
ace/samantha.willis
and only
ace/will.johnson
should be enabled for CleanCRM.

Some Details

1. The ap_enabled_users is the name of the dictionary that ActivePrime uses to hold the list of users to enable, per ActivePrime application. What is happening is the ActivePrime Applet is loaded into COD, but there’s code in the ActivePrime Applet (JavaScript) that only enables those users specified in this variable. Otherwise the ActivePrime Applet is never shown.

2. ce is the symbol for CleanEnter. All the symbols supported are:
a. ce for CleanEnter
b. ccrm for CleanCRM
c. ci for CleanImport
d. aps for ActivePrime Search.

3. Each application symbol, like ce or ccrm, is a dictionary that specifies which users to enable.

4. Notice how ace/will.johnson is set to true. That means this user is enabled for that product (in the above case ce and ccrm).

5. Also, note how ace/samantha.willis is set to false in ccrm. This is for your convenience. Say you want to temporarily toggle a user off. Simply set their value from true to false. Then when you’re ready to toggle them back on, set their value to true. This way you can do that without having to remove them from the dictionary. Instead you simply set their value to false for the time being, until ready to turn them back on.

6. All ActivePrime application names like ccrm, ce, etc., are case sensitive. They must be lowercase.

7. All user names are case insensitive, so you can use ACE/Will.Johnson or ace/will.johnson. That makes no difference.

We hope you found this valuable. As an exercise you could do something similar for your own Applets. Just don’t call the variable ap_enabled_users, since that would clash with ActivePrime’s applet. Then you would also need to add the JavaScript that enabled or disabled the Applet based on the settings, but that’s reasonably easy.

As usual, don’t hesitate to reach out to ActivePrime for assistance.