Perficient Portal Solutions Blog

Subscribe to RSS feed


Archive for the ‘Technical’ Category

SharePoint migrations may cause consternation

When migrating to SharePoint 2013 older assets may need serious modification to gain from the benefits of the new, lightweight, fast, and fluid user interface. These benefits come from new CSS styles, themes, and master pages.

Thus, you must re-create your custom branding by using the new styles, themes, or master pages available in SharePoint 2013, and then apply the newly re-created design to the upgraded site collection.

SharePoint2013You can read more about the details from a Microsoft support article which outlines the approach for migrating custom UI artifacts to SP2013.

Some of the common approaches suggest creating an evaluation site collection and then, making specific modifications depending on the artifact:

  • Custom CSS – use that site as the environment where you can identify the new SharePoint 2013 styles that you need to override. Create a new CSS file for these styles, and then apply that CSS to your upgraded site.
  • Custom theme - re-create the theme by using the new theming features in SharePoint 2013.
  • Master pages - re-create the master page in the SharePoint 2013 site. After you verify that the new master page works as expected, move the master page to the new site collection and apply it to the site.
  • Custom content placeholders on a custom master page - create an evaluation site collection that is also a publishing site, and then set the master page to the out-of-the-box SharePoint 2013 master page. If the site still renders, you don’t have this issue.

Microsoft recommends that you do not add custom content placeholders to your custom master page or page layouts.

In conclusion, I hope this helps with your planning when considering either new initiatives on older releases of SharePoint (i.e. SP 2010), or when migrating to SP 2013.

Multifaceted Search using IBM Web Content Manager

Maria Rauba from Asponte presented how she implemented a multifaceted search using IBM Web Content Manager in Portal.  Faceted search is an often requested feature and is not something that comes out of the box in WCM.  Components used:

  • Custom JSPMultifaceted Search Using IBM Web Content Manager
  • Custom Search Seedlist
  • WCM Search component
  • Custom Javascript

The HTML Form contains the custom JSP used to render the checkboxes for the faceted search.  The search component is placed on the HTML form to show the results of the search.  When the search is submitted, custom javascript executes the search against the seedlist.

JSP component was used instead of Taxonomy fields because the taxonomy field is sortable only one way – alphbetical.

Search Component & Search Collection.  They used one search component for each language.  In the search component you can specify the sort order.  Out of the box you can select sort by relevance, date and none.  The search collection was scheduled to run every night, but you can schedule the crawler as often as you want.

Custom Seedlist was necessary to support the many levels in the taxonomy. Out of the box seedlist only looks at the last level for the search and does not include the full taxonomy hierarchy.  Also many times category names are repeated under different taxonomies, so you have to use a unique identifier (UUID) to make sure the search finds the right categories.

Some issues that were faced:

  • Dojo performance for sorting wasn’t as good as it could be, so they reduced the number of items in the list.  In the end, the sort time was unacceptable, so they went back to the default sort provided by WCM instead of using the custom sort.
  • Caching was an issue when the advanced cache was turned on.  They ended up turning cache off for this feature.
  • When there were a lot of check boxes, the ran into url length issues.

As a summary, Maria’s solution was

  • Dynamic
  • Fully multifaceted
  • Used only WCM
  • Provided a custom sort
  • Allowed content authors to manage the content and feed the search appropriately

Overall Maria’s solution was a good way to use out of the box features with some simple customizations.

Optimizing Experiences Using IBM TeaLeaf

IBM Tealeaf is a tool that can help you optimize customer experiences with your website.  Here are a couple of examples of where Tealeaf can be used:

  • A customer has an issue with the website and calls your service center for help.  Rather than have the customer relive the poor experience, Tealeaf allows the CSR to see what happened and take corrective action.
  • Customers are not responding to your marketing offers.  They get part-way through the desired interaction, but don’t finish.  Use Tealeaf to see what users are doing on the site and maybe discover an error popping up.

Tealeaf screen shot

With Tealeaf you can passively capture all actions, all interactions, and all customer experience obstacles.  Since Tealeaf is passive, you don’t have to alter your code to start working with it.

Here are some results that Forrester found with Tealeaf:

  • 3.5% increase in conversion rates
  • 1% improvement in customer retention rates
  • 80% reduction in investigative time
  • 249% ROI
  • 7.3 months payback

Tealeaf also includes built-in analytics, including a Struggle Score.  Here you can tweak the analytics to alert you when Tealeaf perceives a customer is struggling.  Using the analytics, you can drill down into the data and find out who succeeded vs failed in attempting an interaction.

You can also set up “known obstacles” so you can track specific problem areas.  Say you have a known issue with a recent update, but its not bad enough to fix it right away.  These known problems can then be separated from “unknown obstacles” so you can identify new, unknown issues.

Oh, and all this works with mobile web clients too. You can track zooms, swipes, pinches and more. If you have mobile apps, you can use a Tealeaf SDK to integrate Tealeaf capabilities into the app itself.

Data entered by the user is stored in a secure way by Tealeaf and sensitive information can be obfuscated for specific roles of people who need to access the user data.

Finally, you can use the analytics provided by Tealeaf to assess the impact to your business.  This can help prioritize issues, or help sell the need to address problems.

Tealeaf really provides a lot of insight into your website that traditional web analytics tools can’t match.

What’s coming in WebSphere Portal and WCM

Rob Will, Chief Architect at IBM, presented the future vision for Portal and WCM today.   He started out talking about how the concept of customer experience has been evolving over the past few years.  A core shift has been to enable non-technical users to do more and more with less reliance on IT.

What's Coming in WebSphere Portal and WCMA slight change with profound implications has been the change from a Web experience to a Digital experience, which implies support many more devices and output streams.   Portal and WCM has always been about web sites, not mobile applications.  Portal is now in the mobile web site business to enable multi-channel web site business.  Portal is still the integrating platform for content, applications, etc.  Everything done in Portal and WCM is now done with mobile in mind.

IBM Worklight is the hybrid application platform that integrates with Portal and WCM.   Worklight enables access to all the mobile device features through portlets.  Its easy to create a Worklight adapter to grab content from WCM to display in a native application.  WCM’s personalization engine can also be leveraged from Worklight so you see the same promotions on the web as you see in the mobile app.

Mobile Directions

  • Improving integration to support device classes
  • Fine tuning seamlessness of the theme integration
  • Co-deploy Worklight on Portal

Content and Rich Media

  • More and more convergence between portal and content management
  • Projects and Templates (in Portal 8) are heavily relied on in future releases
  • Content Template Catalog 4.1.2 came out last week – uses latest CKEditor for inline editing
  • Vanity URLs- in beta now.  You can completely control the URL.  URLs are stored in WCM to support Syndication.  This feature will deprecate URL Mappings in Portal.
  • WCM Content Security is more seamless with Portal.
  • Attribute based security means you can control access to content based on Attributes.
  • Project templates make it easier to set up projects, including predefined workflow
  • Now everyone is entitled to EditLive! Enterprise version
  • Customers on have entitlement to WebRadar which is content reporting and analytics
  • Cross Version syndication is supported to ease content migration.  You can syndicate from WCM CF26 or higher to WCM CF09 or higher
  • Syndication – improvements in error messaging, error handling, more retry capabilities.  Also in the Authoring UI, you can see a status of each object’s syndication.
  • Rich Media Edition seamlessly integrates with MediaBeacon.
  • Deliver and Stream HD Videos – this includes integration with BrightCove

Personalization and Targeting

  • In 8.0 IBM added in-context rules editing.  New minor enhancements are coming here.
  • Marketing Management is more of a focus for a richer experience, including Unica Marketing Center and IBM Interact.
  • New Portlet allows user to enter a few details about the spot and the portlets does all the work to bring in offers from Interact.  This reduces the rules that you have to write in portal.

WCM and Commerce

  • This is available now.
  • You can link content from WCM directly into a commerce site.  This also includes preview capability


  • Social rendering in takes content from connections and delivers them inside portal mixed with other content and applications. WCM presentation templates are used to make the social content look like other content on the page.
  • In the next version, IBM provides a bunch of enhancements.  Discussion threads hosted on IBM Connections, but linked to WCM content.   Here the visual experience of the discussion is controlled by WCM.
  • Now you can Like, create posts, comment, etc right in line.
  • Dynamic filters for social lists – these lists cooperate with other page components to filter content and drilling down in lists.
  • This is all available in mobile web too.

For a sample of how well Portal, WCM and Connections are integrated together, take a look at the Connect 2014 Site:

  • News and updates are blogs in Connections
  • Events are in WCM.
  • Session info is in WCM,
  • Speaker profile is in Connections.
  • Downloads are in Connections Files.
  • Session add is a DB2 application

Digital Data Connector (DDC) – this is a new concept and we’ll more information on this shortly.

  • Extends social rendering and WCM to any type of data source.
  • Can take most data source and bring into Portal through social rendering

I had to leave this session early, so I will follow up with another post on the rest of the new features coming in the future.

A beta version of Portal is now available if you want to try out some of these features.




IBM Connect: Going Deeper Into The Activity Stream

Mikkel Heisterberg presented on a deeper dive into Connections Activity Stream.  The Activity Stream in social represents a tool with high potential to make interaction easier and to get into what is most important to you.  This session focused on what it is and how to interact with it.  It was a pretty technical session but eye opening in terms of what you can do in the stream and how you can get external events into your social network.

What is the activity stream in Connections / SmartCloud for Social

  • a River of news that flows by you
  • Notifications about stuff happening in other systems. Otherwise known as entries
  • Entries may be saved for future reference and may be actionable
  • Typically you decide what goes into your stream
  • A replacement for email notifications………although you don’t have to
  • Standards based – meaning IBM took the standard and added IBM Connections to it. (OpenSocial for example)

What is isn’t

  • a new inbox. It’s not email
  • The master of the data. It’s just a feed

Interaction With It

The Activity Stream is available via a RESTful API.  It’s your typical sets a request via a method like GET, POST, PUT, DELET and get a response via  return code like 200/ok, 301/moved, and 404/not found.

You will mainly use the POST and PUT methods to send JSON data.  It’s not meant to be consumed in a web browser even though it’s really an http request.














Best Practice: Don’t consider it as one single stream.  Think of it as each user having their own stream.  That extends to communities and even public streams.  There can be a lot of streams with which you can interact.  This makes it nice if you want to post to a stream on a prod server. By sending to one stream, you haven’t made a huge mistake.

URL Component: URL looks like:

https://<host?/connections/opensocial/<auth>/rest/activitystreams/<userid>/<application id>/<activity ID>

  • auth is authorization
  • user id is obvious
  • group id is the group of entried you are addressing
  • application id is the app in connections (blog, update, activity, community, etc.)
  • activity id is where you want to put it. It could be all for the public stream or a specific one for a specific user.
    • query – give me all the events that are actionable
    • query – give me all the latest blog event
    • Result: “The current user posted a note to IBM Connections and you should act on it’
      • current user is the actor. It could be @me
      • action: here it’s posted. It’s a verb
      • What happened: the object.  it could be a note, tweet, meeting, sales order from external system, etc.
      • Where: it was posted to IBM connections.   Could be posted somewhere else
      • other attributes like actionable.














The presenter used the CocoaRestClient to create that query rather than handcode it. Here’s what that looks like:














How do you delete from a stream.

Answer: you can’t! It’s forbidden.  However, “We are howevrer, adding propogateDelete at the moment which deletes all events related to a given object on receipt of a given event. This will be protected by a Trusted Role”

Cool stuff: You can make something actionable which goes into one of the facets of your stream filter.  This isn’t a POST but a PUT.  Context is exactly the same. Mark and unmark items as actionable.

Saved: You can save an item for later.   UI save is easy.  Simple PUT lets you update saved to false

Rolling it up: You can post to the same “thing” or part of the conversation.  (like a reply to someone’s comments or a comment on a file.)  You would specific rollup id for this.   It’s a POST because it’s a new comment for example.  But then you specify a rollup id.

Rollup id vs object id: similar but it’s not the same.  Rollup tells the stream of different posts with different object ids.  The rollup just tells the system about the relationship. So every comment on a file has an object id but is related to the parent object via the rollup id.

Templates: You can create multiple templates.  For example you might have multiple versions of a business card.  It’s useful for multiple language and support.  Context: when identifying title, don’t hardcode but instead point to template.

Embedded experiences lets you send along an event and identify the gadget in the activity stream to use when acting on in within the stream.  It’s also useful to render something nicely. (file preview gadget for example)

Posting to other users streams: Yeah, that’s spam. You aren’t allowed to do it unless you have a trusted role.  Use the id of the poster to post it.  The application will post on someone elses behalf.

Generator: want to add a pretty icon for all external posts then user generator tag and give it an image for example.  Generators should be registered. If it’s registered then you can filter the stream by the “generator” For example, all workflow items from the CRM system.

Cool use: Mikkel created a cool script that queried twitter for any references to himself, grabbed it and then posted it to his stream with the API’s he walked us through.






Multichannel Feature Pack 2 added to IBM Web Experience Factory

Multichannel delivery is a hot topic these days.  Just when you thought developing for multiple browsers was tedious, not we have to account for multiple device types, responsive sites, native mobile apps, etc, etc.

To help with this IBM has updated the Multichannel Feature Pack to their rapid development environment Web Experience Factory.  With Web Experience Factory (WEF), you can develop an application and run in on an application server or IBM WebSphere Portal.  This new version, Multichannel Feature Pack 2, lets you target the many different devices that access these servers.

Here are some enhancements that come in this version:

  • New wizards to implement various patterns for multi-part forms
  • Enhanced client-side support for Javascript, JSON and REST development
  • New Application Page Builder to quickly create common user interface patterns
  • Additional layouts in the Data Layout builder, which makes it easier to build data displays for the various devices and browsers
  • Worklight support for the Camera builder

You can find documentation for this feature pack on the IBM Web Experience Factory site

5 Ways to Personalize Your Site Content

Claire Marshall  recently posted on IBM’s Smarter Conference blog an article titled “5 ways to personalize your site content via IBM Marketing Center“. In the post, she talks about the following ways to personalize your site:

  1. Greeting – if you know the person’s first/last name then display it on the page
  2. Referring Site – if you know where the person came from to get to your site, then display content targeted to users of that site.  She used the example of someone coming from Facebook.  You could display an offer to people that have “liked” your site in Facebook.
  3. Browsed – if the person is a return visitor, display content that is relevant to what they looked at before.
  4. Purchased – if the user has purchased something from your site, display a cross-sell or an accessory to that item.
  5. Offline – import offline data about customers, so when they come to your site, you can personalize something for them.

After reading the post, I was left the question, “Good ideas, but how do I do this?”.  And since this is a Portal blog, I thought, how can I do these 5 suggestions using IBM WebSphere Portal?

So, here are ways you can use WebSphere Portal to implement these five suggestions:

  1. Greeting – in your portal theme, you can easily display a welcome message to your logged in user.  You can use the JSP tag <portal-fmt:user attribute=” value”/> to display any attribute about the user that you store in LDAP (or via Member Manager to be totally correct).  So you can display the user’s name this way: Welcome <portal-fmt:user attribute=”Salutation”/> <portal-fmt:user attribute=”FirstName”/> <portal-fmt:user attribute=”LastName”/>.
  2. Referring Site – the referring site is available to the WebSphere Portal Personalization engine, so you can write rules about the referring site.  The referrer is available through the Profiling rule and you can use the host name or the entire URL.
  3. Browsed – You can capture the fact that a person has been to your site in a variety of ways.  One way is to log an entry in a database when the user logs on – you can use a login filter for this.  Another way is to capture the data being fed to your user analytics systems like Core Metrics or Web Trends.  As an example, you could update an LDAP attribute for the user to indicate they have logged on, or maybe you can add the date of the last login.  These LDAP attributes are available to the personalization engine as part of the user object.  With this data, it becomes a simple task to create a personalization rule that displays content to a returning user.
  4. Purchased – Here you can take a similar approach to the “browsed” suggestion above.  You can also use a custom data source in WebSphere Portal’s Personalization Engine.  With this in mind, you can create a custom datasource out of your “items purchased” table in your sales order system.  Using that datasource, you can now write a Personalization rule that decides what content to show a user based on past purchases.  In addition, WebSphere Portal includes the LikeMinds Recommendation Engine.  You can use that tool in your personalized site to make recommendations based on what purchases the user has made or where they have navigated on your site, and more.
  5. Offline – I think this is a special version of “purchased”.  If you can load data from your offline interactions with customers, then you can make a personalization datasource out of that data just as easily as the sales order data mentioned above.

There you have it.  5 ways to personalize your site in WebSphere Portal taking advantage of all the built-in features that have been available for a long time.  To learn more about all the Personalization capabilities of WebSphere Portal, take a look at the product document for Personalization on the IBM site.

Digital Asset Management in IBM Customer Experience Suite

In May of this year, I blogged about IBM’s then up-coming Digital Asset Management integration with MediaBeacon.  IBM  started shipping that product on June 18, 2013 via electronic distribution and July 12 via CD.  You can see the official announcement letter for details.

Here is a demo of MediaBeacon working directly with IBM Web Content Manager.

As I mentioned, the DAM solution is an integration with MediaBeacon R3volution Enterprise, so you must have access to a MediaBeaon server.  You can install the MediaBeacon server software on your Portal server or on a standalone server.  For development environments, combining Portal and MediaBeacon on the same server is fine. For production environments (authoring included), you will want a separate server for MediaBeacon.  MediaBeacon software and documentation are included in the IBM software you can download (see below).

According to IBM’s best practices documentation, when using MediaBeacon and IBM Web Content Manager, you have three options for accessing and storing your digital media:

  • Always store the asset in MediaBeacon.  With this storage option, you can directly manage and update the asset, regardless of whether the content item is in draft state or is published. However, you must also ensure that the authoring, delivery, and web servers in the environment can access the MediaBeacon server to render the asset.
  • Copy the asset into a web content library when the content item is created.  With this option, you can syndicate the asset along with the content item, which can be useful in distributed authoring environments. But if you must modify the asset before you publish the content item, you must repeat the process of adding the updated asset from MediaBeacon.
  • Preview the asset from MediaBeacon and then copy the asset into Web Content Manager when you publish the content item.  With this option, the asset remains in MediaBeacon while the content is in draft state. When the content is published in a workflow that contains the Promote Digital Assets workflow action, the asset is copied to a web content library and rendered normally.

The preferred storage option is to preview the asset from MediaBeacon and then copy the asset into Web Content Manager when you publish the content item. This approach has several benefits:

  • Because the asset is stored in MediaBeacon while the content item is in draft state, any changes to the asset are immediately visible in the draft content.
  • When the content is approved and published, a workflow stage copies the asset into a web content library. As part of the library, the asset can be versioned, syndicated to delivery servers, and rendered through Web Content Manager. Storing the asset in a web content library also ensures that changes to the asset in MediaBeacon are not automatically passed through to the published content.
  • When the published asset is stored in a library, unauthenticated users can view the asset without the need for configured access to the MediaBeacon server.

IBM has included Digital Asset Management into two new editions of the following products:

  • IBM Web Content Manager Rich Media Edition V8.0.0.1
  • IBM Customer Experience Suite Rich Media Edition V8.0.0.1

As with other products, IBM is selling these editions using the Processor Value Unit (PVU) method, so you will pay a license fee based on how many processors on which these editions are installed.

Documentation for these new editions can be found in the Fix Pack Supplements section of the portal wiki.  Finally, you can access quick start guides for both editions here:  Quick Start Guides for Rich Media Edition

SAP and IBM WebSphere Portal working together

Integration is a long-standing requirement satisfied by enterprise portals.  Over the past 10 years, integrating SAP and IBM WebSphere Portal has been top of mind for a lot of people.  Marty Lechleider spoke at the IBM Exceptional Web Experience Conference on the offerings IBM has for integration.

Both IBM and SAP have multiple products, so Marty put them into buckets and described which products integrate with which products in each bucket.  In fact, SAP has a portal and IBM has a portal.  Some SAP functions are naturally better displayed using SAP’s portal.  Often, however, we need to integrate SAP data with other content, which is where IBM WebSphere Portal really shines.

The technologies used to integrate the various systems include:

  • WSRP
  • iFrames
  • Web Services
  • REST
  • RFC / BAPIs

Each of these technologies work great for parts of SAP integration, but each can have its pitfull.

WebSphere Portal Integrator for SAP is a package from IBM that is available from the Solutions Catalogue.  This software works with NetWeaver v7.3 to provide integration at the User Interface level.  This tool exposes SAP User Experience Elements using SAP iFrames specially built by SAP.  Three key functions are provided by the Integrator for SAP:

  • Single Sign On (SSO) using SAML 20
  • Navigation Integration – navigation through SAP is dynamic and reflected in WebSphere Portal directly.
  • Content Integration – single pieces of SAP Portal content (URL Addressable) is displayed directly in portal. For these content pages, SAP provides the content without left side or top level navigation. This can include iViews, Object Views and more.

SAP has a whitepaper about this integration here:

Read the rest of this post »

Salesforce: Can I really build a portal on the platform?

Back in 2012, Gartner included in their Horizontal Portal Magic Quadrant as a Visionary.  Since that time, many people have scratched their head wondering how is a CRM system a horizontal portal?   In fact, Michael Porter recently blogged about Virgin Airline’s new employee portal built on Salesforce.  But the real story behind Salesforce as a portal is that the Salesforce platform is the star of the show.

The Salesforce platform consists of, on which is built, and includes features such as Apex, Canvas, Sites, etc.  In addition, Salesforce has fostered an Application ecosystem consisting of over 1,000 applications that are easy to integrate into the platform.  Finally, the Salesforce platform provides necessary systems functions like infrastructure, security, registration, monitoring, etc.

Lets take a quick look at what makes up a horizontal portal and see how the Salesforce platform can enable you to build an internally- or externally- facing portal.  Here are some common features of modern horizontal portals:

  • Security, included single sign on and user management. includes SSO, integration with third-party authorization services and identity providers, login pages, and self registration.  In addition, you can secure pages and components to authorized users or groups. takes care of the login process so you don’t have to write any code to enable these features.  
  • Read the rest of this post »