wcm Articles / Blogs / Perficient https://blogs.perficient.com/tag/wcm/ Expert Digital Insights Mon, 06 Aug 2018 14:00:48 +0000 en-US hourly 1 https://blogs.perficient.com/files/favicon-194x194-1-150x150.png wcm Articles / Blogs / Perficient https://blogs.perficient.com/tag/wcm/ 32 32 30508587 Collaboration vs Communication https://blogs.perficient.com/2018/08/06/collaboration-vs-communication/ https://blogs.perficient.com/2018/08/06/collaboration-vs-communication/#respond Mon, 06 Aug 2018 12:00:41 +0000 https://blogs.perficient.com/?p=230013

I recently read a very short article on CMO.com regarding “Collaboration vs Communication and Why It Matters.” The article makes some good points but could expound on the topic overall. Let me give you my take on this. We see a lot of companies today attempting to redo their intranet, development processes, etc. Almost without fail, more than a few think that collaboration tools like Slack, Microsoft Teams, Stride, Chatter, and other tools are the perfect replacement as THE medium of communication. Very few remain supporters of more traditional one to many communication tools that web content tools provide.

Don’t get me wrong; I love these types of tools. I see their benefit. However, they don’t fit every single use case. In reality, when you think about collaboration and communication, you need to think through how to support multiple use cases. Let me walk through a few

Collaboration and Stream of Thought (Many to Many)

Tools like Slack and Chatter manage this use case very well. It’s stream of thought. It’s meant to be referenced often and can be searched. You keep up with this type of medium and hopefully interact with it.  It’s good for:

  • Keeping up to date
  • Asking questions and receiving answers to questions
  • Knowledge about really esoteric items
  • Up to the minute communication (e.g. really new items)

It also has one key drawback: news you want everyone to see and understand will quickly drown in a sea of comments and content.

News and Key Communications (one to many)

Under this scenario, you gain the ability push key news and information to the top. Project Managers, HR, Corporate Communications, Executive Leadership, and others tend to like this because it helps you get the key information to the top of the stream and it isn’t as easily lost.

Web content management tools tend to be the best at this.

Source of Knowledge and Reference (one to many)

While somewhat related to news and key communications, reference information differs enough to merit its own category.  This scenario deals with reference material and ongoing knowledge. Anyone who has downloaded detailed specifications in PDF form or gone to a wiki to lookup answers to questions understands this scenario.

What tools work best for this type of need?

  1. Wikis
  2. File storage and other tools
  3. Possibly web content but it’s a bit iffy

Bottom Line

Note that I don’t denigrate any of these tools. Each has their place. I strongly suggest however that you don’t try to use one tool to fit all scenarios. All too often I see the new and cool tools touted as the solution to it all.  If I had a dollar for the number of Slack and Chatter/Community users who think that’s a perfect intranet solution for example. My suggestion: think through what you want to achieve and how you want to pass on this knowledge. Then expect to use two to three of these scenarios.

]]>
https://blogs.perficient.com/2018/08/06/collaboration-vs-communication/feed/ 0 230013
AEM with Front-end Technologies Like Grunt https://blogs.perficient.com/2017/06/09/aem-with-font-end-technologies-like-grunt/ https://blogs.perficient.com/2017/06/09/aem-with-font-end-technologies-like-grunt/#respond Fri, 09 Jun 2017 22:06:12 +0000 https://blogs.perficient.com/adobe/?p=11213

This post will demonstrate how to use Grunt and Grunt plugins with AEM archetype projects. The purpose of front-end technologies integrated with AEM projects is to automate various tasks like Sass lint, compile Sass into CSS, minify CSS, merge JS files, JS error checking, and minify JS.
With the use of front-end technologies like Node, Grunt with an AEM project comes into the picture when a design team wants to write an entirely new dialect of JavaScript like Coffee Script. They might use different JavaScript testing libraries to unit test their code. Before handing over the code to an AEM developer, they will try to use task runners like Gulp or Grunt to compile and minify the code. This code is often so optimized it becomes difficult to read, difficult to edit, and difficult to debug. An inadvertent consequence of this process is that the AEM developer becomes dependent on the design team for even the smallest change.
What if instead of taking compiled, minified code from the design team, we did the compilation, minification in our build process? What if we receive the raw Sass, Less, or Coffee Script file right from the front-end developers? Rather than making the integration process more complicated, we can afford to learn few more programming languages that’d make the process smooth for the entire development team.
Code demonstration:
For the demonstration, we’re going to build a site based on a sample template. We will use “AEM project archetype” as a starting point for AEM projects. With the help of the AEM eclipse plugin, it indeed becomes piece of cake to create an AEM project. You can download the base project from here.
The next steps will require having Node.js installed, but in the case of an AEM project, Maven will download a local copy of Node.js. This will allow the project to run on machines where Node.js is not installed.
As a next step, in the ui.apps pom.xml, add dependencies to download Node and Grunt.

<plugin>
            <groupId>com.github.eirslett</groupId>
            <artifactId>frontend-maven-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <id>install node and npm</id>
                    <goals>
                        <goal>install-node-and-npm</goal>
                    </goals>
                    <configuration>
                        <nodeVersion>v6.11.0</nodeVersion>
                        <npmVersion>3.10.10</npmVersion>
                    </configuration>
                </execution>
                <execution>
                    <id>npm install</id>
                    <goals>
                        <goal>npm</goal>
                    </goals>
                    <configuration>
                        <arguments>install</arguments>
                    </configuration>
                </execution>
                <execution>
                    <id>grunt build</id>
                    <goals>
                        <goal>grunt</goal>
                    </goals>
                </execution>
            </executions>
</plugin>

Note: Make sure to copy/paste this code in ui.apps pom.xml under the “VAULT PACKAGE PLUGIN” section.
Once the dependencies are added to your pom file, run “mvn clean install” from the root of ui.apps under sample. The “front-end-maven-plugin” will download Node.js and NPM in parallel to sample.ui.apps (if they are not already there) and run Node.js and NPM from this directory. Node.js will install the dependencies indicated in the package.json file and run the Grunt task. The beauty of this solution is Node.js and NPM do not have to be installed on the machine where this build is running. More information on this great plugin can be found here.
Expand project under sample.ui.apps and create the following files.

  • package.json – this file holds various metadata relevant to the project. The file is used to give information to npm that allows it to identify the project as well as handle the project’s dependencies.
  • Gruntfile.js – Grunt is a JavaScript task runner, a tool used to automatically perform frequently used tasks such as minification, compilation, unit testing, linting, etc. It uses a command-line interface to run custom tasks defined in a file (known as a Gruntfile) .                        
  • Dependencies added in package.json
{
 {
  "name": " sample ",
  "version": "1.0.0",
  "dependencies": {
   
  },
  "devDependencies": {
    "grunt": "^1.0.1",
    "grunt-cli": "^1.2.0",
    "grunt-contrib-clean": "^1.1.0",
    "grunt-contrib-jshint": "^1.1.0",
    "grunt-sass": "^2.0.0"
  }
}

Tasks defined in Gruntfile.js

module.exports = function(grunt) {
    // Project configuration.
    grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    clean: ['src/**/main.js'],
    sass: {                              // Task 
      dist: {                            // Target 
        options: {                       // Target options 
          style: 'expanded'
        },
        files: {                         // Dictionary of files 
          'src/main/content/jcr_root/etc/designs/sample/clientlib-site/css/main.css': 'src/**/main.scss'       // 'destination': 'source'
        }
      }
    },
    jshint: {
        all: ['Gruntfile.js', 'src/**/*.js']
      }
    });
    // Load required modules
    grunt.loadNpmTasks('grunt-sass');
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-jshint');
 
    // Task definitions
    grunt.registerTask('default', ['clean', 'sass', 'jshint']);
};

Adding the Scss and js files.
Create folders named scss and js under “src/main/content/jcr_root/etc/designs/sample/clientlib-site”
Download the SaaS and JS files from here. Unzip downloaded folders and copy/paste SaaS and JS folders from filesystem to project (in Eclipse) under client-site.
Path for clientlib-site where SaaS/Js folders requires to be added “src/main/content/jcr_root/etc/designs/sample/clientlib-site”

Build Sample Page Template.
Let’s create a template to show for demo purposes. Usually I break the html into components, but since it’s for demonstration, we will use as it is. Open up “apps/sample/components/structure/page/partials/body.html” and add the following content:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title> - POC Workflow Sample</title>
    <link href="./main.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="https://cloud.typography.com/7901534/7014552/css/fonts.css" />
  </head>
  <body>
    <!-- Google Tag Manager -->
    <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-N58S75&gtm_auth=4Z8z1P62GrTwxM_4TZaFag&gtm_preview=env-6&gtm_cookies_win=x"
    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    '//www.googletagmanager.com/gtm.js?id='+i+dl+'&gtm_auth=4Z8z1P62GrTwxM_4TZaFag&gtm_preview=env-6&gtm_cookies_win=x';f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-N58S75');</script>
    <!-- End Google Tag Manager -->
    <header>
      <ul>
        <li><a href="#">Maecenas faucibus</a></li>
        <li><a href="#">Euismod Venenatis</a></li>
        <li><a href="#">Praesent</a></li>
        <li><a href="#">Donec id elit</a></li>
        <li><a href="#">Donec ullamcorper</a></li>
        <li><a href="#">Duis mollis</a></li>
      </ul>
    </header>
    <main>
<div>
  <h1>Sample Page</h1>
  <p>Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.  </p>
  <p>Sed posuere consectetur est at lobortis. Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.  </p>
  <p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Maecenas sed diam eget risus varius blandit sit amet non magna. Sed posuere consectetur est at lobortis.  </p>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue.  </p>
</div>
    </main>
    <footer>
      <ul>
        <li><a href="#">sample footer link</a></li>
        <li><a href="#">another footer link</a></li>
        <li><a href="#">more footer link</a></li>
        <li><a href="#">yup, footer link</a></li>
      </ul>
    </footer>
    <!-- jQuery -->
    <script src="./jquery.min.js"></script>
    <script src="./script.js"></script>
  </body>
</html>

 
Build the sample project now:

  1. mvn clean install -PautoInstallPackage

The “ui.apps” package should be successfully installed. Once the build is successfully done, expand client-site folder. Under css folder, main.css file has been successfully generated as per task defined in Gruntfile.js. On the page load, main.css styles will apply on page.
Navigate to http://localhost:4502/sites and create a page using the “Sample Site Content Page” template. Your page should match the following screenshot:
Let us know how it worked, and if you have any questions around using Grunt with AEM.

]]>
https://blogs.perficient.com/2017/06/09/aem-with-font-end-technologies-like-grunt/feed/ 0 257820
Adobe & Demandware: Cloud Integration for Content & eCommerce https://blogs.perficient.com/2016/03/25/adobe-demandware-cloud-integration-for-content-ecommerce/ https://blogs.perficient.com/2016/03/25/adobe-demandware-cloud-integration-for-content-ecommerce/#respond Fri, 25 Mar 2016 15:27:37 +0000 https://blogs.perficient.com/digexplatforms/?p=3264

shutterstock_224409799-350Make no mistake—this week’s announcement of an Adobe/Demandware partnership is a pretty big deal for online retailers. In the words of Demandware VP Tom Griffin:

By integrating best-in-class rich content authoring and creation with best-in-class enterprise commerce, we can provide a single, unified solution for all consumer touchpoints. At the same time, retailers can optimize and personalize the shopping experience, in real time, by testing different content types based on purchase data. (Tom Griffin, Demandware)

Makes good sense, doesn’t it? The integration of best-in-class content authoring and publishing, digital marketing and analytics (Adobe) with an omnichannel commerce engine and storefront (Demandware) is so obvious that it’s kind of a no-brainer.
Of course, integrating content and commerce is nothing new. We’ve been doing it since the earliest days of the internet as a sales engine.  The two diverged as specialized platforms for first web content management, and then e-commerce, became the rage in the past decade—but the obvious next step on either side was to reach back out and embrace the other.
Certain platforms and software companies have seen limited success in this regard, but for quite some time the only way for an online retailer to achieve a “best-in-class” experience was through custom integration between a pure-play CMS and a pure-play e-commerce platform.

Born in the Cloud

To some extent, that’s still the case; Adobe and Demandware remain different companies with different software platforms and different licenses.  The value of this particular partnership, however—what sets it apart and makes it so exciting—is that it’s born in the cloud.
The Adobe Marketing Cloud is more than just the CMS—Adobe Experience Manager.  It’s digital marketing and analytics, rich media and more, and it’s a unified cloud platform offering the flexibility and scalability that software-as-a-service provides as its primary value proposition.  Similarly, Demandware is a purely cloud-based solution— and that cloud DNA is what sets it apart from the rest of its peers.  The ability to scale up or down quickly to meet demand is a huge advantage for any retailer—B2C or B2B—who anticipates seasonal or market-driven shifts in volume.

Not Quite Yet, Though…

Naturally, there will be challenges down the road as these software companies seek to present an integrated offering.  The integration itself is officially still in pilot mode, and big questions are yet to be answered.  As a wizened green Jedi Master told us back in 1980, “Always in motion, the future is.”  On balance, though, the prospects offered by this announcement are too exciting to ignore.

]]>
https://blogs.perficient.com/2016/03/25/adobe-demandware-cloud-integration-for-content-ecommerce/feed/ 0 257234
Web Maintenance a Chore? AEM Live Copy to the Rescue! https://blogs.perficient.com/2016/02/23/web-maintenance-a-chore-aem-live-copy-to-the-rescue/ https://blogs.perficient.com/2016/02/23/web-maintenance-a-chore-aem-live-copy-to-the-rescue/#respond Tue, 23 Feb 2016 17:00:18 +0000 https://blogs.perficient.com/digexplatforms/?p=2911

In my recent work with distributors and manufacturers, I’ve noticed many have a similar problem. They are responsible for supporting multiple dealer or branch websites, and are struggling to do so. These are hundreds of sites, which are managed at a corporate level and mainained by a branch or dealer. The size and complexity in managing these sites and help non-technical authors maintain them makes this a daunting task for more organizations, so how can we make it easier? Adobe Experience Manager Live Copy allows authors to easily manage multiple local sites that share some content between sites and allows for unique content on a particular site.

What is Live Copy?

Live Copy is a feature in Adobe Experience Manager where the content and structure of a source site is copied to target sites via a configurable process. This can either be automatic or manual, and can even invoke other processes like automatic publication workflows upon changes to the source site.


As shown in the illustration above, a source site (or blueprint) contains the base content and structure. The Live Copied sites (Local Branch 1 and Local Branch 2) will receive updates with the shared content, which is shown in red. The blue content is created for each individual local site and will not be shared with the blueprint site or the other local sites. This same process can act within a page, allowing authors to add, change or remove pieces of content on a page while preserving the live copy link for the rest of the page content. Live Copies can also be Live Copied allowing the creation of multiple blueprints, for example, creating a region or service focused blueprint versus the default generic blueprint.

Live Copy Process

The process for creating a live copy is simple. First, an author would log into Adobe Experience Manager and select + Create >> Create Live Copy from the Sites Manager.

Next, the author will select the source or blueprint site:
Select Source
Then select the destination path, which is the path under which the live copy target site will be created:
Select Destination
Finally, the author enters the site title, name and rollout configurations. The rollout configurations are hooks which are executed by Live Copy on certain event triggers to perform updates to the target site or other actions. For more information, check out this article on creating Rollout Configurations. The two rollout configurations I have selected below will update the content of the Live Copy target when the Live Copy is first executed (Standard rollout config) and update the target whenever there is a modification to the source (Push on modify).
Configure Live Copy
When the author clicks create, the new site will be created and linked back to the source site via Live Copy. From there the content can be managed similarly to any other AEM content and the authors can choose to override any Live Copied page content via canceling inheritance.
Canceling Live Copy Inheritance
You can find more documentation about Live Copy on the Adobe documentation website. If you are facing the problem of managing a large number of similar, but not quite the same websites in Adobe Experience Manager, Live Copy can be the solution to your challenges.

]]>
https://blogs.perficient.com/2016/02/23/web-maintenance-a-chore-aem-live-copy-to-the-rescue/feed/ 0 257141
Is There a Place for “Headless CMS” in Digital Transformation? https://blogs.perficient.com/2016/02/11/is-there-a-place-for-headless-cms-in-digital-transformation/ https://blogs.perficient.com/2016/02/11/is-there-a-place-for-headless-cms-in-digital-transformation/#comments Thu, 11 Feb 2016 16:01:01 +0000 http://blogs.perficient.com/digitaltransformation/?p=9235

The term “Headless CMS” has come up in the past year and it has started to generate some buzz in the industry.  “Headless CMS” is basically a concept and not a product or technology. But it has potential to help in our digital transformation efforts by making content delivery and marketing more flexible.API Image

Traditionally, content management systems have been built not only to create and manage content, but also to manage the entire web experience, from displaying content, to managing navigation, to tag management and so on.  As content management systems grow to take on more and more duties, they tend to become more rigid and limiting in how we build websites.  Say you want to implement a new, cool technique, but find that you can’t do that with your current CMS.  In the early days of responsive web design, many content management system could not provide this feature and left us with a lot of work arounds for our mobile sites.

This is where “Headless CMS” comes into the picture.  What if you could have a content management system that did a good job at managing content, but left the presentation of the content and the website (the “head”) up to somebody else?  In this case you could do anything you want when building the site, but still display content that is managed in a nice, clean way. Many years ago (before REST become popular) we developed a Content Services Framework at Perficient to help our customers with this concept.

Technologies like REST and Javascript frameworks have really pushed these ideas to the forefront.  If our CMS can produce RESTful forms of content, then I can use AngularJS, Node, etc. to build a truly custom and interactive site and pull in content when I need it.

headless cmsTo go further, what if I can produce a public API or content service that can be consumed by others?  I could potentially charge for that service (remember when news organizations did that? – they still do).  Advertisers work that way – here is an ad that you can embed on a website, just call this Javascript library.

So its not a stretch to think of a content management system as a content service.  That service can provide content to web sites, web applications, mobile applications, marketing tools, etc.  All you need is for your CMS to have a well defined service contract (API) so all these other applications know how to access content.

Before we get all nirvana on this idea, there are some real hurdles that enterprise content management systems have already overcome:

  • Secure content – its fairly easy to secure content, but making sure permissions and user credentials are shared across all applications can be tricky.
  • Content in context – sometimes snippets of content don’t mean a whole lot unless presented in a larger context.  For example, getting a description of a conference event doesn’t do a whole lot unless you also have the dates, times, speakers names, etc.
  • Personalization and targeting – this is a two edged sword.  If the CMS knows a lot about the user, it can personalize content for them.  If your “head” is passing along a limited amount of information about the user, your content system may not be able to serve very personalized content back.  On the other hand, if you pass a good amount of user information to the CMS, it may slow down the submission.  Think of trying to pass along a list of pages the user visited on your site, plus their location, language, past buying habits, etc. so the CMS can present an offer on a page.
  • Content formatting – content management systems have evolved to show previews of content, to edit content in the context of a page, etc. All this is done because content – the size of images or tables – can affect how a page is displayed.  If you are grabbing content through a service, you may not get a good looking page unless you do a lot of upfront work to anticipate this problem.

In summary, headless CMS has a lot of potential benefits, but does pose some significant technical hurdles.  At this stage of the technology, if you don’t have great skills in the “head” area, then sticking with a full-featured CMS may be your best option for now. Luckily for us, many (or all) of the enterprise CMS vendors are including content RESTful services in their products.  These systems provide the option to use the CMS fully or to use it as a content service for your custom applications.

]]>
https://blogs.perficient.com/2016/02/11/is-there-a-place-for-headless-cms-in-digital-transformation/feed/ 1 186520
Is There a Place for "Headless CMS" in Digital Transformation? https://blogs.perficient.com/2016/02/11/is-there-a-place-for-headless-cms-in-digital-transformation-2/ https://blogs.perficient.com/2016/02/11/is-there-a-place-for-headless-cms-in-digital-transformation-2/#respond Thu, 11 Feb 2016 16:01:01 +0000 https://blogs.perficient.com/digitaltransformation/?p=9235

The term “Headless CMS” has come up in the past year and it has started to generate some buzz in the industry.  “Headless CMS” is basically a concept and not a product or technology. But it has potential to help in our digital transformation efforts by making content delivery and marketing more flexible.API Image
Traditionally, content management systems have been built not only to create and manage content, but also to manage the entire web experience, from displaying content, to managing navigation, to tag management and so on.  As content management systems grow to take on more and more duties, they tend to become more rigid and limiting in how we build websites.  Say you want to implement a new, cool technique, but find that you can’t do that with your current CMS.  In the early days of responsive web design, many content management system could not provide this feature and left us with a lot of work arounds for our mobile sites.
This is where “Headless CMS” comes into the picture.  What if you could have a content management system that did a good job at managing content, but left the presentation of the content and the website (the “head”) up to somebody else?  In this case you could do anything you want when building the site, but still display content that is managed in a nice, clean way. Many years ago (before REST become popular) we developed a Content Services Framework at Perficient to help our customers with this concept.
Technologies like REST and Javascript frameworks have really pushed these ideas to the forefront.  If our CMS can produce RESTful forms of content, then I can use AngularJS, Node, etc. to build a truly custom and interactive site and pull in content when I need it.
headless cmsTo go further, what if I can produce a public API or content service that can be consumed by others?  I could potentially charge for that service (remember when news organizations did that? – they still do).  Advertisers work that way – here is an ad that you can embed on a website, just call this Javascript library.
So its not a stretch to think of a content management system as a content service.  That service can provide content to web sites, web applications, mobile applications, marketing tools, etc.  All you need is for your CMS to have a well defined service contract (API) so all these other applications know how to access content.
Before we get all nirvana on this idea, there are some real hurdles that enterprise content management systems have already overcome:

  • Secure content – its fairly easy to secure content, but making sure permissions and user credentials are shared across all applications can be tricky.
  • Content in context – sometimes snippets of content don’t mean a whole lot unless presented in a larger context.  For example, getting a description of a conference event doesn’t do a whole lot unless you also have the dates, times, speakers names, etc.
  • Personalization and targeting – this is a two edged sword.  If the CMS knows a lot about the user, it can personalize content for them.  If your “head” is passing along a limited amount of information about the user, your content system may not be able to serve very personalized content back.  On the other hand, if you pass a good amount of user information to the CMS, it may slow down the submission.  Think of trying to pass along a list of pages the user visited on your site, plus their location, language, past buying habits, etc. so the CMS can present an offer on a page.
  • Content formatting – content management systems have evolved to show previews of content, to edit content in the context of a page, etc. All this is done because content – the size of images or tables – can affect how a page is displayed.  If you are grabbing content through a service, you may not get a good looking page unless you do a lot of upfront work to anticipate this problem.

In summary, headless CMS has a lot of potential benefits, but does pose some significant technical hurdles.  At this stage of the technology, if you don’t have great skills in the “head” area, then sticking with a full-featured CMS may be your best option for now. Luckily for us, many (or all) of the enterprise CMS vendors are including content RESTful services in their products.  These systems provide the option to use the CMS fully or to use it as a content service for your custom applications.

]]>
https://blogs.perficient.com/2016/02/11/is-there-a-place-for-headless-cms-in-digital-transformation-2/feed/ 0 186810
FSClassLoader Now In AEM6.0 SP3 https://blogs.perficient.com/2015/10/28/fsclassloader-now-in-aem6-0-sp3/ https://blogs.perficient.com/2015/10/28/fsclassloader-now-in-aem6-0-sp3/#respond Wed, 28 Oct 2015 13:01:56 +0000 https://blogs.perficient.com/digexplatforms/?p=2581

Customers and developers upgrading to AEM 6.0 SP3 will find that there’s a new bundle in use, FSClassLoader. As I described in my previous post this bundle offers superior performance as compared to the repository based classloader, however it does remove the option for developers to access the generated Java code for their JSP’s under /var/classes.
Luckily, when Adobe built AEM 6.0 SP3, they used FSClassLoader version 1.0.2 which includes an OSGi console allowing developers to view the compiled Java files. To view this, open up the OSGi console at http://localhost:4502/system/console and select the console under Sling >> File System Class Loader
Finding the FSClassLoader OSGi Console

From the console you can view or download the compiled .class file, generated .java file or the .deps file which lists the JSP scripts and TagLibs the files depends on.
Viewing files in the FSClassLoader OSGi Console
Hopefully this helps anyone upgrading to AEM 6.0 SP3 and wondering why their generated Java files aren’t appearing under /var/classes

]]>
https://blogs.perficient.com/2015/10/28/fsclassloader-now-in-aem6-0-sp3/feed/ 0 257054
B2B2C: The Next Wave of Digital Marketing https://blogs.perficient.com/2015/10/21/b2b2c-the-next-wave-of-digital-marketing/ https://blogs.perficient.com/2015/10/21/b2b2c-the-next-wave-of-digital-marketing/#respond Wed, 21 Oct 2015 16:26:21 +0000 http://blogs.perficient.com/digexplatforms/?p=2563
Over the last several years, the digital marketing revolution has moved outward from B2C brands into the B2B companies. This wave of change has seen massive changes in retail and the death of numerous brands that were not able to compete in the new digitized landscape. Consumer’s increased expectations are now affecting B2B interactions, and companies that cannot provide comparable digital experiences to the customers, no matter whether consumer or businesses, will soon find themselves out-competed.
The Wave of Digital Marketing

New Pressure & Competition

Whereas most retail and B2C companies have been leveraging digital marketing to enhance their customer’s experience for some time, many B2B companies are only recently started to identify, track and market to their customers using modern digital marketing technologies and techniques.  For B2B companies, successfully providing digital experiences and justifying the spend, requires an even deeper understanding their customers within the businesses they serve and finding the relationships between activity on their digital properties and the purchases of their products, which often occurs offline.
Increasing expectations around digital experiences are affecting the B2B space as their customers now expect the same quality of experience they receive as consumers, no matter the channel.  These increasing expectations are now affecting B2B2C companies, which previously only had to worried about marketing their products to consumers. Now, with rising expectations and digitization becoming common if not expected, customers within businesses are willing and able to switch providers easier than ever before.

Who is affected?

So who is affected by this trend? Companies especially affected:

  • provide a premium product
  • as an add-on to another product or service
  • market to consumers, but sell through another company which provides a the primary product
  • and service an internet-connected audience

Let’s consider some examples:

Food and Beverage Industry

Food and beverage companies are good examples of B2B2C companies.  A consumer buying a burger is buying the buying the burger first, and the soda is an add-on.  At the same time, consumers have a choice at the soda fountain, and even more importantly, the restaurant has a choice of which beverage vendor to carry.

A Soda Fountain

Ski Cola Soda Fountain” by Tom Conder is licensed under CC BY-ND 2.0
In order to ensure their products are vended and purchased consistently, food and beverage providers must market to both consumers and businesses. Their digital marketing must provide an excellent, consistent customer experience to build and reinforce brand loyalty.

Consumer Goods

In the case of consumer goods are another great example, let’s take a detergent company as an example. A consumer buys the detergent as a secondary product to the clothes they buy and potentially even from the same store. So how does the company ensure their products are purchased over the products provided by their competitors?
Comparing Detergent
Consumer goods companies must convince consumers their products are better than their consumers and provide a superior value. Additionally, they must convince the businesses they sell to to provide the company premium shelf space by proving that stocking their products will make the store more money.

What’s Next?

In order to stay relevant in the new era of Digital Marketing, B2B2C companies must focus on providing an excellent, consistent brand experience for both their consumer and business customers. By leveraging best-of-breed technologies and techniques, these companies can start bringing these experiences together providing a unified message and experience to every customer who interacts with the brand.
In order to take the next step into the digital marketing revolution, B2B2C companies should ask themselves:

  • How do I differentiate my product as a premium product versus generic competitors?
  • How do I drive and measure customer engagement?
  • How do I use engagement to drive and measure sales of my product through partner channels?
  • How do I prove the value of my product to your distribution partners?
  • How do I integrate real world sales and digital marketing efforts?
  • How can I provide a consistent brand experience for every customer type across all channels?

 

]]>
https://blogs.perficient.com/2015/10/21/b2b2c-the-next-wave-of-digital-marketing/feed/ 0 257083
Survey Says…Measurement is #1 in Most Need of Improvement! https://blogs.perficient.com/2015/08/24/survey-says/ https://blogs.perficient.com/2015/08/24/survey-says/#respond Mon, 24 Aug 2015 14:45:51 +0000 http://blogs.perficient.com/digexplatforms/?p=2365
  • 20% of marketers believe their organizations are effective at measuring customer experience.
  • 62% indicate that customer-focused culture is their strongest aspect of customer experience.
  • 50% said their overall digital strategy needs more focus.

The process…

Earlier this year, we asked marketing leaders at Adobe Summit 2015 to take a brief survey on customer experience. This survey was based on Perficient’s CXIQ Customer Experience assessment – which helps predict overall customer experience performance and marketing success. We developed and used this assessment to help bench mark companies attending Adobe Summit as well as for several clients who are going through a digital transformation focused on customer experience.
The categories…
The seven dimensions fall within three broad categories of creating, delivering and sustaining the customer experience.
The results…
The infographic below highlights the 7 dimensions of customer experience maturity. To learn more, we have  in-depth guide outlining the CXIQ process and where to get started that can be used to help improve your overall customer experience. To learn more, download the guide here: How Customer Experience Drives Digital Transformation
CXIQ_AdobeSummit_Perficient
 
 

]]>
https://blogs.perficient.com/2015/08/24/survey-says/feed/ 0 257075
Sitecore once again a Leader in Gartner Magic Quadrant for WCM https://blogs.perficient.com/2015/08/07/sitecore-once-again-a-leader-in-gartner-magic-quadrant-for-wcm/ https://blogs.perficient.com/2015/08/07/sitecore-once-again-a-leader-in-gartner-magic-quadrant-for-wcm/#respond Fri, 07 Aug 2015 17:06:41 +0000 https://blogs.perficient.com/microsoft/?p=27493

GartnerMQ_Picture1According to Gartner, companies that prioritize customer experience generate 60% higher profits than competitors. And more than ever before, web content management is viewed as mission-critical across an organization – whether your focus is on IT application, digital experience, marketing or merchandising.
As we work with many of our customers on their digital transformation journey, we assist in the development of a well thought-out customer experience strategy and ensuring the means to successfully execute. Since many of these customers have .NET technology, we often recommend they take a look at Sitecore, a global leader in customer experience management software and Microsoft’s 2014 Alliance ISV Partner of the Year.
I work closely with Perficient’s Sitecore team and was excited to see that last week, Gartner named Sitecore a Leader in the Magic Quadrant for Web Content Management for the sixth consecutive year. The Web Content Management report evaluates 19 vendors on their Ability to Execute and Completeness of Vision. This year, Sitecore secured the highest position of all vendors for its Ability to Execute. In discussing Sitecore’s strengths, the report mentions:

The range of capabilities in version 8 of the newly positioned Sitecore Experience Platform is among the best in the market. Sitecore has incorporated into the product some highly valuable features, such as engagement analytics, a/b testing (or split testing) and data management platform capability.
Sitecore has increased its installed base in all regions that drive the WCM market. This means customers often select it for more leading-edge and market-defining solution contexts.

You can download the full report here.

]]>
https://blogs.perficient.com/2015/08/07/sitecore-once-again-a-leader-in-gartner-magic-quadrant-for-wcm/feed/ 0 257068
The Evolving Digital Landscape Recap: Adobe Symposium Minneapolis https://blogs.perficient.com/2015/05/20/the-evolving-digital-landscape-recap-adobe-symposium-minneapolis/ https://blogs.perficient.com/2015/05/20/the-evolving-digital-landscape-recap-adobe-symposium-minneapolis/#respond Wed, 20 May 2015 17:08:33 +0000 http://blogs.perficient.com/digexplatforms/?p=1950

Last week, Katie Laes from our sales and marketing team attended the Adobe Digital Symposium in Minneapolis, co-sponsored by Perficient & Adobe. Well over 100 marketing executives from Fortune 500 and mid-size companies gathered to learn, network, and gain expert insights into the world of digital marketing. The symposium featured three presentations by leaders in the digital marketing space- Adam Justis from Adobe, Mark Bonchek from thinkORBIT, and Ellen Anderson from Thomson Reuters. Katie shares a recap from the event that is a must-read for anyone focused on creating innovative strategies and gaining expert insights on digital marketing.
Katie’s insights: The Reinvention of Marketing: Creating Strategies & Gaining Insights
Katie LaesI was excited to attend the session focused on the “Reinvention of Marketing,” led by Adam Justis, Senior Manager of Product Marketing for Adobe Marketing Cloud. Adam kicked off the event touching on how technology is rapidly changing the marketing environment, reinforcing the importance of focusing on the consumer during brand reinvention. Adam challenged the audience to think less about their brand and more about the experience their brand provides for customers, stating, “Marketing is no longer about the 4 P’s (product, placement, pricing, and promotion), instead it’s about the experience and the experience doesn’t stop once you’ve finalized a campaign.” This idea reiterated that marketing is now making art and science blend to make your business work.  Adam said, “As marketers, marketing has changed more in the last two years than the past 50 years combined.” Adam concluded his introduction with a powerful statement that resonated with many, “As digital marketers, if we stop reinventing, we will soon become irrelevant to our consumers.”
Next up was the keynote, Mark Bonchek, Chief Catalyst at thinkORBIT, an advisory firm that helps clients design social business strategies that pull people into orbit around a brand with social gravity –allowing for companies and brands to stay competitive. Mark focused on how digital disruptors have fundamentally changed how people relate to each other and want to do business. Mark stated, “The old ways of engaging consumers aren’t working anymore, people now want a new kind of relationship with brands that enables them to be active participants and co-creators, instead of a passive audience.”
You’d think after an hour of thought provoking presentations the audience’s eyes would be glossed over, however, this was not the case when Ellen Anderson, Director of Communication Platforms, Thomson Reuters took the stage. Ms. Anderson instantly captured everyone’s attention with her “cheeky” presentation titled, “I’ve got 999 sites, can I really just have one?” Ellen shifted the topic of conversation from digital marketing trends to a first- person perspective on what it’s like to launch a digital transformation initiative at a major multinational mass media and information firm, consolidating 1,200+ sites into a cohesive single site experience. Ellen had the courage to stand in front of 100+ digital marketers  and shared the most vulnerable stages of site consolidation for Thomson Reuters taking us back four years guiding us through how she and her team:adobe symp2

  • Identified the need to consolidate sites
  • Built the business case
  • Implemented the Adobe Experience Manager (AEM) solution

Ellen shared the nitty-gritty details of an enormous project, ultimately stating, “The AEM solution served as the backbone to managing our enterprise content with sophistication, focus of proofing, and ease of authoring.” Perficient helped them successfully implement several long term solutions with an end result of “300% increase in lead generation on a monthly basis at TR.com.”
The Digital Symposium concluded with the speakers joining a panel discussion.  Perficient’s, Director of Digital Marketing, Ross Monaghan joined the group to provide insights on strategy, user experience & design, SEO/ SEM, conversion rate optimization, and analytics. His 9+ years of hands-on experience provided a tactical and strategic perspective to the panel. Questions from the audience ranged from, “How do I gain C-Suite Support?” to “How does data fit into the digital marketing eco-system?” and a hot topic- “Will marketing ever truly be a 1:1 experience between the brand and consumer?”
Watch for commentary and answers to these questions and more in the coming weeks on this blog.

]]>
https://blogs.perficient.com/2015/05/20/the-evolving-digital-landscape-recap-adobe-symposium-minneapolis/feed/ 0 256996
Accurate Websites Are Critical – In Any Language https://blogs.perficient.com/2015/05/08/accurate-websites-are-critical-in-any-language/ https://blogs.perficient.com/2015/05/08/accurate-websites-are-critical-in-any-language/#respond Fri, 08 May 2015 13:30:26 +0000 https://blogs.perficient.com/lifesciences/?p=1941
multilingual-websites-sitecore-liferay

 
A recent article that I read alluded to the fact that regulatory bodies are struggling to keep their websites updated, which could lead to misinformation or a lack of information for consumers and companies interested in a country’s regulations and policies. The story specifically pointed to the English and Korean versions of South Korea’s Ministry of Food and Drug Safety’s (MFDS) website. While the website in Korean was up-to-date, the English version was not nearly as well maintained. 
A few visits to other regulatory agency websites in other countries led me to find that most countries, especially less wealthy ones, offer information only in their official languages. Some wealthier nations, like South Korea, did provide their website in multiple languages; typically those that are more frequently spoken among their constituents. For example, the Food and Drug Administration (FDA) offers their website in English and Spanish. Health Canada offers theirs in English and French, and Israel’s Ministry of Health offers theirs in Hebrew, Russian, Arabic, French, and Spanish. Less wealthy countries, like Columbia, offer information in a single language, like Spanish.
Maintaining a website can be a big undertaking, let alone multiple versions in different languages. However, if you’re a government agency or a life sciences company looking to operate in a global environment, and you decide to take the leap and operate a multilingual website, it’s critical to make sure it’s maintained with accurate information – otherwise, it becomes a disservice. Bad information is often worse than no information.
From a technology standpoint, there are plenty of solutions (e.g., Sitecore, Liferay, Adobe Experience Manager, etc.) available to help create and manage large, multilingual websites. There are also a handful of APIs, like Google’s Translate API, that you can plug into your website, largely eliminating the need to maintain multiple versions (although, Google’s API isn’t always accurate).
To learn more about streamlining the digital experience for your customers, drop us a line.

]]>
https://blogs.perficient.com/2015/05/08/accurate-websites-are-critical-in-any-language/feed/ 0 256993