Getting list of site languages via ROQL


Quick Query tip. If you need to get a list of the supported languages on a site, try the following query:

Select Language.ID, Language.LookupName From SiteInterface GROUP BY Language.LookupName;

The query will provide the ISO Local/Language codes applicable to your site. Unfortunately, it does not give you the localized labels for these languages.

Seamless Async CPM Updates

Async CPM jobs are processed by Oracle's SPM queue, but the actual PHP code runs on any number of utility servers (likely based on some load-balancing logic for the pod). The custom CPM code itself runs in a looping PHP process that executes jobs from the queue, which means that the code stays in memory for a period of time. (To my knowledge, Oracle hasn't published any information as to exactly how long these processes run, however.) This causes two important results:

Important August 2017 SOAP API endpoint change

CX Version: 

Warning: August 2017 SOAP API change

With the August 2017 release of Oracle Service Cloud, the SOAP API endpoint has been changed AND the old WSDL URL is NOT backwards compatible. This quiet, instant and important change can cause some chaos and broken integrations depending upon your tools and set-up.

What does "Invalid SAML assertion in security header" mean?


If a profile doesn't have Session Authentication checked and an add-in tries to make a SOAP request (using a connection prepared with session authentication), an error reading "Invalid SAML assertion in security header" will be shown and the request will fail.

Abusable Functions in CP, CPMs, and Custom Scripts

When calling create and update functions from within Customer Portal code, the system requires the use of checks via the RightNow\Libraries\AbuseDetection library method isAbuse(), to ensure the CP endpoint is not under a DOS or similar attack. This is helpful, in theory at least, because it ensures that your CP site is mostly protected from these sorts of attack, but this can cause major headaches when building out more complex solutions. 3 out of 4 scenarios below require some level of workaround, depending on your use-case:

cURL and Async CPMs

CX Version: 

If you are using cURL in an asynchronous CPM to post data to an external endpoint, beware. Calling the \load_curl() method will usually load the cURL library, unless the back-end SPM process that runs your particular instance of the CPM already loaded the library! In this case the CPM will fail, in what appears to be an inconsistently reproducible way.

Get in the habit of wrapping your \load_curl() method like this:

if (!function_exists("\curl_init"))

Quick Tip: Encrypted Pass Through Authentication (EPTA) Initialization Vectors

When setting up Encrypted PTA, configuring the correct Initialization Vector in the PTA_ENCRYPTION_IV configuration setting can be confusing. I find the setting documentation misleading unless you really understand what it is asking for.

Per the field documentation:

Duplicate Contacts and Unique Fields

In order to reduce duplicate contact records, it would be useful to be able to specify unique contact fields (such as mobile phone number, or a particular custom field), similar to how email addresses are handled as unique identifiers. If the client needs a full-fledged solution for this across their entire system, this is difficult to do from a purely technical level. Most clients simply train their agents to first search for existing contacts and have a business process for merging duplicate contacts when manually found in the system, which is good enough for most.

Fun with Cloud9 IDE and CP3

Today I had a bit of fun with Cloud9 IDE, which is one of the better cloud-based IDEs I've found. It is geared mostly towards front-end web development but has a fully functional Ubuntu OS underneath running in a Docker instance, so you can pretty much do anything.

Mobile Client Considerations

More and more often, clients look for a way to integrate their mobile and web applications with their RightNow instance. The ability to connect end-users directly to the support infrastructure is powerful, but the standard tools RightNow provides don't quite fit the bill.


Zircon - This is a contributing Drupal Theme
Design by WeebPal.