Showing posts with label Integration. Show all posts
Showing posts with label Integration. Show all posts

Saturday, 29 February 2020

Groovy Script Console integration in AEM


Groovy was developed by Jochen Theodorou, Guillaume Laforge, Cedric Champeau, and Paul King. Its typing discipline is strong, static and dynamic. It was licensed under the Apache 2.0 license. It first appeared in the year 2003. Its file extension is .groovy and was designed by James Strachan.

What is Groovy Script:

Apache Groovy is an Object-oriented programming language used for Java platform. It can be used as a scripting language for the Java platform.

Groovy vs Java

Groovy vs Java
DefinitionIt is compiled to JVM bytecode and is compatible with Java Platform.It is developed on JDK and is run on JVM.
UsageIt is used when as both programming language and scripting language.It is used as programming and object-oriented language.
IntegrationIt can be integrated along with any web applications and scripting applications.It can also be integrated with any object-oriented application as it is compatible with any JVM based applications.
PlatformIt supports any operating systems or platformsIt supports cross-platform operating systems
SyntaxThe syntax is very similar to Java syntax.It has a strong disciple in its syntax.
CommunityIt has been submitted to JCP for specification request.It has a larger community called Java Community process JCP being maintained by a large group of highly qualified technical experts across the industry.
LicenseIt was licensed under Apache license 2.0It was licensed under GNU General Public License.
ImportsAll the packages will be imported by default.It has to be mentioned clearly to import any package into the java class file.
DocumentationIt provides single page documentation.It has documentation in the form specification given by JCP.


  1. Download the Groovy Console package. Check the version compatible with your AEM instance. For AEM 6.5 I am using 14.0.0 version.
  2. Install the downloaded package using the CRX package manager.
  3. To verify the installation, open http://localhost:4502/apps/groovyconsole.html in browser to view the groovy console.
Note: From 13.0.0 release, paths were changed from /etc/ to /apps/ to access Groovy Console

GUI Console:

Sunday, 14 July 2019

Publish AEM Content to Salesforce Communities using CMS Connect

Salesforce has come up with a feature to connect the third-party Content management systems with Salesforce communities. You can connect CMS components, HTML, JSON, CSS, and JavaScript to customize your community and keep its branding consistent with your website. CMS connect feature renders content dynamically from CMS systems.

CMS Connect supports content from different CMS systems like AEM, Sitecore, Drupal, SDL, WordPress and Other.

Let's see how to pull content from AEM to Salesforce community.

Wednesday, 30 August 2017

Integrate AEM with React JS library


React is a Javascript library developed solely for the purpose of UI designing. It was developed in Facebook to facilitate the implementation of reusable, interactive and stateful UI components. Facebook use this library in production. 
It carefully notes down the differences in in-memory cache and use these differences to update the DOM in browser, which is what gives him the boost. This is the Virtual DOM feature.

Saturday, 19 August 2017

Install NodeJs

What is NodeJS

  • Node.js is an open source server framework
  • Node.js is free
  • Node.js runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.)
  • Node.js uses JavaScript on the server

Click here to check Why Node.js

What is npm?

npm makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you're sharing.
Click here to learn more on npm.

Install npm

Click here to download and install the npm on your machine.

Test if nodeJs is installed correctly, run below command.
npm -v
npm --version
npm version

Start npm run start, if you get below error 
npm ERR! path C:\Users\Kishore\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\Kishore\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Kishore\AppData\Roaming\npm-cache\_logs\2017-08-19T14_53_13_265Z-debug.log

You can avoid above error by following below

  • running the npm command from bin folder
  • set environment variables (~\bin)

Saturday, 22 April 2017

Integrate AEM with Docusign - Part 1

Integrate AEM with Docusign to get Docusign account information

What is Docusign?

DocuSign® is The Global Standard for Digital Transaction Management. Accessible anytime, anywhere on any device, global enterprises, business departments, individual professionals, and consumers in all industries solve their paper problems by replacing manual, paper-based methods with DocuSign. The result is accelerated transactions that increase speed to results, reduce costs, improve visibility and control, and delight customers. DocuSign helps you keep business digital with the easiest, fastest, most secure way to send, sign, manage and store documents in the cloud.

Why Docusign?

Friday, 24 March 2017

Integrate Adobe AEM with Salesforce

Integrate Adobe AEM with Salesforce

Adobe AEM provide its extendable capabilities to integrate  with other products. Below demonstration describe how to connect Adobe AEM with Salesforce which is the market’s leading cloud based CRM System. AEM provide OOTB components for the integration purpose. It helps the organization to target the customers through web channels as per their status in CRM.

Steps to Connect to Salesforce:
AEM uses OAuth mechanism to connect to Salesforce. So , first we need to create an connected app inside salesforce to get customer secret and access token.

Go to Click on Setup on the top right corner. Search for Apps and create a custom app. Fill in required details as shown in below images. Callback Url here accept only https urls, so our AEM must be SSL configured. Check here how to configure SSL in AEM. Callback url is the url of cloud service that we will create in AEM.

Create new custom app

Friday, 10 March 2017

AEM and Akamai Integration


Akamai is a CDN (Content Delivery Network) that has servers all over the world, delivering the content of a website and caching that part of the content that doesn’t need to be constantly updated.
Beyond AEM, as CDN, among Akamai’s pros we can find some remarkable points:
  • Faster delivering content:  Is not the same that an user access to the website servers than could access to Akamai. In Akamai the content is available in closer servers and cached.
  • Better balancing of the content: apply an Internet-centric approach to global load balancing and real-time fail-over. Designed to ensure high availability and responsiveness to user requests.
  • Safety: put another wall between the user and your website.
  • Improve user experience: Due to previous points the user has a better experience when requests content.

Saturday, 4 March 2017

Display dynamic popup using GTM

There are different ways to display a dynamic modal popup, one of the best way is displaying the modal popup using google tag manager, as there will not be any code required. All changes to be done in GTM console. 

Dynamic modal using GTM
Dynamic modal using GTM

Friday, 17 February 2017

AEM DTM Integration

The purpose of this blog is to go over AEM DTM Integration process step by step, using the recommended configuration options. There is documentation available for integration by Adobe here. Although, for someone who is integrating AEM DTM for the first time or with limited knowledge of one or the other, it is quite overwhelming to be exposed to the technicalities of all the available options at once. This post will also elaborate and expand on embedding DTM code on various experiences built within a single AEM instance. I hope this blog helps in simplifying the process for you.
Assuming you have an author instance of AEM running, there are the three majors steps you need to perform to add the DTM code on your site via the cloud-hosted services integration:
  1. Create web property in DTM
  2. Configure AEM DTM Integration
  3. Embed DTM code in a specific AEM site

Saturday, 31 December 2016

Installing Hybris 6

Hybris Installation
Follow below instruction to insall Hybris environment.
  1. Download JDk 8 from here
  • Accept licence terms and conitions.
  • Download as per your windows bit (32 or 64)
  • Once downloaded, install jdk by double clicking it. Follow the default instructions by clicking next.
  • Once installed, you should can verify installation in command prompt.
  • setant
  • Download the Hybris  from here.

Sunday, 20 November 2016

Implement Translator connector in AEM

The purpose of a Translation Connector in any Content Management System (CMS) is to automate content transmission between CMS and Translation Service Providers making it quicker and cost-effective. Such integration is required when there is a need to maintain multiple languages in CMS. Similarly, for projects in Adobe Experience Manager (AEM) that involves website localization and multilingual SEO management, translation connectors implementation becomes a mandate.
Translation Connectors are simply used to provide an interface between AEM and Translation Management System (TMS), where TMS is nothing but programs which support complex translation tasks.

Using Dynamic Tag Manager in AEM

You can integrate Adobe Experience Manager (AEM) with Adobe Marketing Cloud Activation Core Services (formerly named Dynamic Tag Management). Activation is an Adobe Marketing Cloud Core Service that allows a digital marketer to manage Adobe and third-party tags used for tracking or other analytics purposes. It is done through client-side scripting that injects tag related code throughout the pages of the site. 
You define rules in the Activation web client, as shown in this illustration. 

Thursday, 27 October 2016

Translating Content for Multilingual Sites

Automate the translation of page content, assets, and user-generated content to create and maintain multilingual websites. To automate translation workflows, you integrate translation service providers with AEM and create projects for translating content into multiple languages. AEM supports human and machine translation workflows.

AEM and Hybris Integration

Developing with Hybris

The eCommerce framework can be used with any eCommerce solution. Certain specifics and examples dealt with here will refer to the hybris solution.

The integration framework includes an integration layer with an API. This allows you to:
  • plug in an eCommerce system and pull product data into AEM
  • build AEM components for commerce capabilities independent of the specific eCommerce engine

AEM & eCommerce Integration

One of the core elements of any eCommerce implementation is the management of product data. When integrating with AEM you have the choice of either importing the product data into the JCR or having it exist solely in the eCommerce system. There are pros and cons to both approaches. Importing the data into AEM allows you to make use of the AEM Commerce components, use the AEM Commerce API, and do some fun things like product page generation, and data-driven tag creation. Having the product data in the JCR also allows AEM to access the information without having to make a call to the commerce platform every time. The con of having this data in AEM is that it may present challenges in keeping the data in sync. While things like product name, description, and image may not change often some more dynamic properties such as stock level, pricing, and active status may demand a more real time approach. This challenge can possibly be offset through the use of incremental imports and node listeners but ultimately the decision will come down to your specific implementation and the needed frequency for updates.
I have encountered two ways to import product data into the JCR. The first method of importing products is accomplished by uploading good ol’ fashioned CSV files with your product data in AEM Tools at http://localhost:4502/miscadmin. Navigate to /etc/commerce/products, click “New File..”, then browse and select the CSV.

Thursday, 29 September 2016

Integrate Google reCAPTCHA with AEM

You can use Google reCAPTCHA to your AEM site to protect your website from automated script attacks while letting real users pass through with ease. The reCAPTCHA library is a free service that protects your website from spam and abuse. By using reCAPTCHA, you can improve the security of your AEM site. For more information, see reCAPTCHA.
The following illustration shows reCAPTHCA included within an AEM site. 
An AEM web page using recaptcha

Saturday, 24 September 2016

Integrating SOLR with Adobe Experience Manager

You can integrate SOLR with Adobe Experience Manager to improve searching. Solr is the popular, blazing-fast, open source enterprise search platform built on Apache Lucene. Solr is highly reliable, scalable and fault tolerant, providing distributed indexing, replication and load-balanced querying, automated fail-over and recovery, centralized configuration and more. Solr powers the search and navigation features of many of the world's largest internet sites. For more information, see
The following illustration shows the SOLR client.

The SOLR web client

Tuesday, 30 August 2016

Integrate AEM with Adobe Search and Promote

Search and promote(S&P) offers the following features:

  • Search features like auto-complete and "Did you mean?" help the users to get relevant search results.
  • Real-time metrics, merchandising rules, and customer intent.
  • Refinements based on facets and filtering options.
  • Built-in linguistics help in spell-checking and searching for non-English languages.
  • Real-time analytics allow search results to be dynamically ranked according to business objectives.
  • Easily scalable and reliable because S&P is provided as SaaS using cloud infrastructure.
  • Incremental indexing helps in ensuring that visitors are always shown with the up-to-date search results.

Friday, 20 November 2015

Integrate AEM with YouTube

You can use youtube API to add video in your webpages. Below is the sample code snippet for embedding youtube videos into your webpages.

Note:  In order to make sure your javascript works, add "enablejsapi=1" parameter to the src atttribute. Please check below HTML code.


<h1>In page youtube video player API</h1>
<h2><span id="YTvideoLoadTime"></span> </h2>

<h3>Check console logs for player events</h3>
<iframe id='player' width="560" height="315" 
src="" frameborder="5" allowfullscreen></iframe>


var player;
var timerStart, timetaken;

jQuery(document).ready(function ($) {

function getArtistId() {
    return 'axCKOu3YjmM';

function loadPlayer() {
   console.log("Youtube IFRAME api");
    timerStart =;
    if (typeof (YT) == 'undefined' || typeof (YT.Player) == 'undefined') {
        var tag = document.createElement('script');        
        tag.src = "";
        var firstScriptTag = document.getElementsByTagName('script')[0];
        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

        window.onYouTubePlayerAPIReady = function () {
           // console.log("YT undefined calling onYouTubePlayer ");

    } else {
       // console.log("calling onYouTubePlayer ");


function onYouTubePlayer() {
    player = new YT.Player('player', {
        // height: '490',
        //width: '880',
       // videoId: getArtistId(),
       // playlist: 'PLkBe8kbE_7-xmNihqYr19TlYGH7jUhQkY',
        playerVars: {
            controls: 1,
            showinfo: 0,
            rel: 0,
            showsearch: 0,
            iv_load_policy: 3
        events: {
            'onStateChange': onPlayerStateChange,
                'onError': catchError,
                'onReady': onPlayerReady

var done = false;

function onPlayerStateChange(event) {
    console.log("onPlayerStateChange: " +;
    if ( == YT.PlayerState.PLAYING ) {
        done = true;
    } else if ( == YT.PlayerState.ENDED) {
    else if ( == YT.PlayerState.PAUSED) {

function onPlayerReady(event) {
    timetaken = - timerStart;
    $('#YTvideoLoadTime').html("Youtube Video player has loaded in : " + timetaken / 1000 + " seconds");


function catchError(event) {
    if ( == 100) console.log("ERROR");

function stopVideo() {

Monday, 16 November 2015

Connect to External Data Source (Teradata / MySQL / Oracle) in CQ / AEM

1) My SQL

Step 1: Create OSGI version of mysql Jar file

  • Click next and then select add external. Select jar file you downloaded above and select next
  •  Give Project Name -> Select Location -> Make sure that Analyze Library Content is checked -> In Target Platform select an OSGI framework -> from drop down select standard -> Check unzip jar file and update reference -> click finish