Tutorials

Registering Hook Handlers for a Subset of Pages

I've found on recent projects that I want to use the Customer Portal hook system to register hook handlers, but want to restrict the execution to only certain pages (or triggered by other conditions). Turns out this is very easy to do as hook handlers are registered in the config/hooks.php file using very standard PHP code. Because there is no DSL (Domain Specific Language) you can use any other PHP statement you desire in the config/hooks.php file and it will be evaluated and executed whenever a request is made to the Customer Portal.

Disabling automatic re-sizing of workspace add-ins

The Problem

You want to add a control to the table that so often exists at the top of a workspace. So you create a label and a workspace config to allow it's width to be adjusted. You then meticulously count pixels until your label fits perfectly with the other labels already in the column. (This could probably be considered a defect, or at least a very nice to have enhancement). However, once you load your workspace with a record the size of your label is off.

Workspace Config

Supplying Contextual Report Filters to CBO Reports in Customer Portal

In Customer Portal you may notice that much of the content is supplied by Analytic Reports that are filtered by the ID of the logged in Contact. An example of this is the list of submitted Incident's found on the Account Overview page (/app/account/overview).

The framework automatically adds a Contact ID filter for Incident type reports as well as Answer type reports. Unfortunately this contextual filter is not automatically added for any other object types.

Creating Custom Page Meta Tag Attributes in CP3

Page meta tag attributes are a Customer Portal feature that allow a developer to establish page behaviors in a declarative fashion. A meta tag is placed at the top of every page (/views/pages) and behavior is defined through the addition of attributes and attribute values. Except for very rare cases, each page has a page meta tag.

A typical meta tag looks something like this:

CPMs 101: Introduction to Custom Process Models

CPMs provide the ability to trigger custom code whenever select objects in the system are either created, updated, or destroyed. This is extremely useful for myriad types of functionality such as external integrations and advanced business logic. This tutorial is a primer for those just getting started and will walk through how to build a simple CPM from the ground up. More advanced CPM articles are also available. Enjoy!

Proactive Chat - Intercepting Chat Events

RightNow Syndicated Proactive Chat is a RightNow feature that exposes proactive chat functionality to external websites such as your homepage, shopping cart, or any other page that can execute some JavaScript. Like Proactive Chat in Customer Portal, syndicated proactive chat prompts the user for a chat session when certain conditions are met (such as if the user has been on a single page for a configurable time interval). Due to the fragmented documentation around this product feature, most people don't know that you can customize the proactive chat experience beyond the basic settings available in the Syndicated Chat Wizard.

This tutorial will give a glimpse at the advanced customization possible.

Setting custom fields via SOAP

This goes under the "seriously?!!" heading.

In previous version of the WSDL it was fairly simple to set a custom field. I'd even go as far as easy (though "intuitive" isn't even part of the language used by the twisted minds who created this API), but with the addition of custom attributes they decided to confuse custom fields as well.

AddIn - Status: Toast

Tags: 

I think at this point it's been accepted that Toast Notifications are quite irritating,
and after 20 years of internet usage people are amazingly good at killing pop-ups without reading them, but regardless of all that
here's how to make a toast notification from a Status Bar add-in.

Project Setup on a Mac with NetBeans

When developing for Customer Portal, it's very handy to have your IDE handle moving files automatically to the server for rapid testing. Here's how to setup NetBeans on a Mac, along with a simple WebDAV mounting script that helps if you have multiple RightNow projects.

Working with Workspace Records

Tags: 

This tutorial will show how you can use the AddIn Framework to access and modify information on a workspace. In this case I'll be creating a button that assigns the current incident to the logged in agent.

Pages

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