A Developers Blog

This blog has moved to GitHub, and you should be redirected shortly...

Saturday, May 14, 2016

Querying The Engagement History API With Firefox RESTClient

The Engagement History API is an API that is available from LivePerson, and it allows for you to search, filter, and keep copies of chat transcripts and the related data, such as visitor information, agent information, and much more.

Before writing any code to start querying the API, it can be useful to use a tool that will allow for you to connect to the API in seconds.



This article discusses how you can use the RESTClient query to the Engagement History API. To read the article, click here: https://connect.liveperson.com/content/querying-engagement-history-api-firefox-restclient

I hope you enjoyed this post. If you have any questions or comments, please feel free to post them below.

Labels: , , ,

Friday, March 25, 2016

Troubleshooting APIs With A RESTClient

When it comes time to connect to APIs, I find that it is a lot easier to test them using a REST client before you start writing any code. Using a REST client allows for you to make sure that you are able to connect to it successfully, and it allows for you to try out different parameters of the API.

One of the best tools that I was introduced to is, the Firefox RESTClient Plugin. This plugin is very easy to use, and it allows for you to save your request for quick reference.



This article discusses how you can use the RESTClient connect to an API and it goes through the different settings. To read the article, click here: https://connect.liveperson.com/content/troubleshooting-apis

I hope you enjoyed this post. If you have any questions or comments, please feel free to post them below.

Labels: , , ,

Wednesday, February 10, 2016

LiveEngage - Engagement History API Program To Send Email

Today I wanted to share with you a program I made that will allow you to use the Engagement History API to send out emails for transcripts that have a particular keyword.

The program will use the API to pull all of your chat transcripts for the previous day that contain a certain keyword, and then it will send it to an email address that you specify. The program makes use of the SendGrid API in order to send the emails.

One example use case for this tool is if you wanted to get an email every time someone answered dissatisfied on your post chat survey, you could use that keyword and it will automatically pull those transcripts.

In order to use the program, you will need to have a SendGrid account with an API key enabled on it. SendGrid allows for you to send up to 12,000 emails for free a month, and if you need to send more they offer very cheap plans. You will also need to have the Engagement History API enabled on your LiveEngage account in order to use the program.

If you are interested in checking out the program or getting the source code, you can find it on GitHub here: https://github.com/scottwestover/LiveEngageExamples/tree/master/APIs/Java-EHAPIProgram

I hope you enjoyed this post. If you have any questions or comments, please feel free to post them below.

Labels: , , ,

Friday, November 13, 2015

LiveEngage - Chat Transcript XML Parsing Tool

Today I wanted to share with you a XML Chat Transcript Parsing tool that I created to parse the chat transcripts that you can export from LiveEngage.

Inside LiveEngage, there is no easy way to see/analyze the chat transcripts without going through them one at a time. One of the options that is available to you, is you are able to export the transcripts as a text file or as xml file.

With the tool, you are able to load in these transcripts, and it will parse the information into a data table, which then you can filter to find the information you are looking for. For example, if you only want to look at chats with low CSAT scores, or if you are looking for chats where an agent answered yes to an Agent Survey question, or even if you are looking for a particular visitor's chat, you can filter the table to only contain this information.

The tool allows you to print out individual chats, export the data to a csv file, or even copy the content of the table.


Besides allowing you to search the transcripts, the tool also offers some reporting that is currently not available in LiveEngage. Here is a list of some of the reports that are currently available:
  • Average Agent Response Time
  • Average Visitor Response Time
  • Average Agent Response Time Per Agent
  • CSAT Reporting 
  • CSAT Reporting By Agent
  • Revenue Reporting (Based On Agent Survey Question)
  • A Map Of Where Your Chats Are Coming From
  • Custom Reports (Choose the questions from your surveys you would like to report on)
If you are interested in checking out the tool, you can find a live version here: http://scottwestover.github.io/

If you are interested in getting a local copy, or forking a copy of the project, you can find the tool on GitHub here: https://github.com/scottwestover/LiveEngage-Chat-Transcript-Tool

I hope you enjoyed this post. If you have any questions or comments, please feel free to post them below.

Labels: , ,

Monday, June 29, 2015

Trello For Project Management

Recently at work, our team was trying to find the right tool to use in order to manage our projects. We wanted to make sure anyone on the team would be able to look at our notes and that they would be able to find what they need. This can be difficult when each person does things differently when it comes to how they take notes, where they stored files, etc. We went through a variety of different tools before we found one we liked.

The tool we ended up choosing was Trello. Trello is a free web based project management application that is simple to use. In order to use Trello, you create a board, which is a basically a list of lists. These lists are made up of cards, which are basically your tasks. The nice thing about each board is that anyone that is invited to the board can see all the tasks, so they can see the project status as a whole.


On each card, you can add comments, upload file attachments, add checklists, labels, and due dates. You can also add other team members to the card, and anytime someone adds or changes anything on the card, those people will be notified through email.

Even though Trello has been available for awhile now, this was the first time I heard of it. This tool was perfect for my team at work, and so far I have enjoyed using it, which is why I am sharing it with you here. If you are interested in learning more, you can visit the Trello website here: https://trello.com/home.

I hope you enjoyed this post. If you have any questions or comments, please feel free to post them below.

Labels: ,

Saturday, March 14, 2015

AEM Brackets Extension Tutorial

The purpose of this tutorial is to install the AEM Sightly Brackets Extension and see how easy it is to transfer content back and forth between Brackets and your local instance of AEM.

For this tutorial I was using: AEM 6.0, AEM Brackets Extension 0.0.12, and Brackets 1.1. You should be able to follow along with other versions of this software.

In order to follow along you will need the following:

  • The Brackets text editor. If you do not already have this installed, you can get a copy from here: http://brackets.io/. Just follow the download and install instructions from the website to get started.
  • You will need to download the following package from GitHub to install into your local instance of AEM: 3D-Model-Component-AEM. You are welcome to create your own package to follow along with the tutorial, but that will not be covered here.
If you have completed the following steps, we can get started.

1. The first thing you need to do is open up Brackets. Then you need to go to "File" and then choose "Extension Manager". Then in the search bar, type in "sightly". This should bring up the AEM Brackets Extension. 


2. Click on "Install", and restart your instance of Brackets when it prompts you.

3. You will need to unzip the "3D-Model-Component-AEM" file that you downloaded from GitHub. Once you do this, navigate to the "3dmodelcomponent-1.0" zipped folder, and unzip this file as well. You will want to keep the zipped version, and the unzip version for use in this tutorial.

4. In your instance of AEM, go to crxde lite, and go to the package manager. Once you are here, click on "upload package". Now browse to the location of the "3dmodelcomponent-1.0" zipped folder on your local file system. Then just click on "install" to install the package in your AEM instance.

5. Now switch back to Brackets, and click on the new "AEM" menu item at the top and choose "Project Settings". You will want to fill in the pop up window with the settings for your local instance of AEM. An example is posted below:


6. You will then need to open the "3dmodelcomponent-1.0" folder in Brackets. Go up to "File" and choose "Open Folder". Then browse your local file system for this folder, not the zipped folder. You should see a similar project structure like this:


7. Next, navigate to "3dmodel" folder, by going clicking on "jcr_root/apps/test/components/3dmodel". Once you are here, right click on the folder and click "New File". Type in the name "text.txt". Then just type in some text, such as "hello all".

8. Now just save the file. Now you should see the AEM Brackets Extension Icon flash blue to show it is syncing with your AEM instance, and then turn green to show that everything is synced up. 


9. To make sure that it worked, switch back to your local instance of AEM, and go to crxde lite. If you navigate to "apps/test/components/3dmodel" you should see the new "test.txt" file, and if you open up the file it should show your text. If you already had crxde lite open, you will need to refresh your folder structure, or the web page.

10. While in crxde lite, add some text to the "text.txt" file, such as "hello". Now, save the file and switch back to Brackets. 

11. Click on the "AEM" menu item, and choose "Import Content Package", in order to have it update your files. If you still have the "text.txt" file open, close it, and reopen it. You should see the new text in the file. 

Summary: This tutorial showed us how to install the AEM Brackets Extension into Brackets, set up the setting to connect to your instance of AEM, and how to sync content between AEM and Brackets.

I hope you enjoyed this tutorial. If you have any questions or comments, please feel free to post them below.

Labels: , , ,

Friday, March 13, 2015

AEM Sightly Brackets Extension

With the release of AEM 6, sightly has become the new go to language instead of using JSP. With the switch to this there has a been a new tool that was released, a sightly brackets extension. This extension offers some great features such as sightly syntax highlighting, code completion for sightly expressions, and bidirectional synchronization.

What does this all mean? Well, Brackets is an open source text editor that focuses on web design, and with sightly being a HTML5 template, it is a great tool to edit it with. Here is a link if you are interested: Brackets

The best feature of this extension is that you can package up your code, open it in Brackets and start editing it right away. Once you are done, you just click a button and your code is automatically uploaded to your AEM instance. It works the same way if you are editing that code in crxde lite, you just click a button and your code is updated in Brackets.

You can find more information here if you are interested in the extension: Sightly Brackets Extension

Labels: , ,

Thursday, March 12, 2015

Create A Swing Application To Post Files To AEM

While reading through some AEM forums, I came across this tutorial called "Creating Java Swing applications that posts files to AEM ClientLibs folder". 




Here is a link to the tutorial: Swing Tutorial

The tutorial walks you through creating an application that will upload a Text, CSS, or JavaScript file to a file path that you specify in the application.

Once you do this, then you need to create an OSGI bundle that contains a Swing Servlet. After this is done, you just upload the bundle to the Felix Console, start the bundle, and then you can run your application to start uploading files.

I thought this was great tool because it is a nice alternative to getting local files into AEM without having to use CRXDE.

Here are some tips if you run through the tutorial: 

The tutorial states that it was tested on 5.5 and 5.6. I ran through the tutorial using AEM 6.0, and it worked fine, so you are welcome to try it out with that version.

When you are creating the Swing application, it has you create some image icons, and reference images in a image folder. You can upload your own images to your project and update the file path to those images. The application will work fine without the images, but it adds a nice look to the application.

Also, during the creation of your Swing application, you can update the default path text to something more relevant to your application. Just change "path.setText("/apps/slingSevletApp/components/clientlibs");" to any path you would like.

Lastly, just make sure you export your Swing application as a runnable jar file so you can run it at any time without having to have Eclipse, or any other IDE open.

Labels: ,

Tuesday, March 10, 2015

AEM Dialog Conversion Tool

Adobe has recently released a new tool that can extend your existing components dialog that is defined for the classic view and update it to the new Touch UI dialog. The tool will use the original dialog that was built with ExtJS and create a duplicate dialog that is based on the Granite UI.

Even though your classic dialog will work on the Touch UI, it does not have the nice new design that fits in with the Touch UI and it really stands out. If you wanted a new dialog before, you would have to create a new dialog for your component. Now with this new tool, it can be done automatically for you, which will save you time as a developer and allow you to focus elsewhere.

The tool is not perfect and cannot always create a dialog for you. So, you need to verify that your new dialog works correctly and that it meets your needs. It is a great tool that will help you get started with your dialog creation, and will save you time in the long run.

For more information go to the following link: Dialog Conversion Tool

Labels: ,

AEM Developer Chrome Extension

Finding a new tool to help you as a developer is always exciting. One that I would like to share with you that recently became available is the AEM Developer Chrome Extension. This extension is a great tool that can save you a lot of time when working with AEM. The extension was created by Nate Yolles, and you can check it out here on GitHub: aem-developer-chrome

You can also find the extension on the Google Chrome store here: AEM Developer Chrome Extension

Now you may be wondering what the tool has to offer. Here are some of its features:

  • You can open the current page you are on in any of your defined environments with a click of one button.
  • You can impersonate any user without having to go to the User Admin page. When you impersonate a user using the extension, it will simply reload the current page as that user.
  • You can switch between classic view and the Touch UI with a click of a button. You can toggle the content finder off and on with a click of a button.
  • It allows you to clear cached clientlibs, compiled JSPs, and run the garbage collector without going to the Felix console.
  • You can go to crxde lite with a click of a button. If you have a page open and click the button, it will navigate to that page and that exact node in crxde lite.
As you can see, this extension is a powerful tool that can save you time as developer. If you are interested in adding another tool to your set, check out the above links.

Here is what the extension looks like:

Labels: , ,