Qlik Sense APIs, Mash-Ups and Lego

At the beginning of last year I blogged on the differences between QlikView and Qlik Sense, using Lego as a metaphor. Returning to that theme I am looking at how things are progressing as Qlik Sense is maturing as a product, and more APIs are being exposed.

Looking Back

qlikmindstorms
In my previous post (QlikView, Qlik Sense and Lego) I looked at how QlikView provides a developer with the unlimited possibilities of a bucket of standard Lego bricks, whilst Qlik Sense was more like a kit that forces you to stay within the lines of the instructions to build a highly polished end result.

Back in the early days of Sense (a product which has evolved and improved at an incredible rate) there were very rigidly defined ways in which you could work. A fixed grid for placing your objects and many of the things we knew and loved as QlikView developers (variables, KPIs, pivots) were mysteriously missing from the initial releases.

Whilst these features have now appeared, along with many others, the base product is still restrictive in how things are laid out. This is great for certain circumstances, where end users want to be able to create without having to worry about the finer details of design.

But, the tools to create hugely customised interfaces (as you could in QlikView) are there – if you have the requisite skills to harness them.

Beyond the Product – Meet the Platform

The messaging around Qlik Sense and how it was going to disrupt the market (as QlikView had before) was all around how the product could be extended and embedded. This functionality was evident right from day one, but as Sense grows up the ability to interact with Sense via APIs is becoming front and centre to the offering.

To keep with the Lego analogy, once you start programming Sense via the APIs it is more like building with Lego’s Mindstorm products than just standard bricks. With Mindstorms fantastic programmable machines can be built which will make your mind boggle. Have a look at this for example:

The only limit is the imagination, and the coding skills of the developer. The same is true of the Qlik Platform.

Software developers can build anything they want, harnessing the power of Qlik’s associative engine (QIX) and using it in ways that Qlik themselves may not have even thought of. Here I look at the ways this can be done.

Extend Sense with Extensions

These are the way that most people are introduced to the Qlik Sense API, even if they are not aware of it. Using an extension is as simple as going to the Qlik Branch site, finding something you like, downloading it and installing it to Qlik Sense. A new object is then available on your left hand menu to use within Sense, with not one line of code being written.

If you take the time to look into the extension folder that you copied or imported (in Desktop or Server respectively) you will find a number of JavaScript files. These plain text files contain the code that tells the extension how to behave. You can modify the code of an extension yourself and see the changes in Sense (certain changes will require you to delete and recreate all objects based on that extension). If you happen to be a web developer who is skilled in HTML, CSS and JavaScript then you will be able to highly customise these extensions.

Building extensions from scratch is not all that difficult either. There are certain conventions that must be followed (such as getting the Type and Name defined in the .qext JSON file) but beyond that it is pure JavaScript. Furthermore, if you download some of the Branch examples you will see that some of these do not contain massive amounts of code.

Most extensions, in fact any that do anything useful, will be interacting with the Sense API, whether that is talking to a HyperCube, interacting with variables or performing some other task.

Embed Sense with Mashups and the Single Configurator

qlikdevhub

Both of these functions can be found under the Dev Hub. This can be reached either by using the ellipsis button in the Sense Hub, or going to http://[server name]/dev-hub/ . Through the wizards here you can generate code to embed objects from Qlik Sense into other web pages (Single Configurator) or build a whole web page which pulls elements from Qlik Sense (Mashup Editor). Both of these wizards create objects that interact with the API, and they both allow you to make changes to the code (via HTML, CSS, JavaScript or URL parameters).

In both of these cases the wizards expose a small part of what is possible with the API. Just like script generation wizards in QlikView, the wizard you use has no bearing on how things work – it’s the resultant script that counts. Whilst the wizards can provide an excellent starter for ten when building these things the real power comes from going beyond these and creating your own code.

Whilst some of the functions you may want to use you need to dig around for (this is where the Engine API Explorer, also in the Dev Hub, can be a great help) there is some excellent documentation on the APIs in the Qlik help pages. Hopefully this documentation will continue to expand in both scope and depth.

Unleash Sense with The Qlik Analytics Platform (QAP)

With the techniques discussed above you can interact directly with the APIs, and pull things into your own web applications. This does not however mean you can offer functionality to users without licences. Any user that interacts with a chart that is delivered using these methods will need to be authenticated and have a token to cover that interaction. This is because they are still using Sense.

To move away from this the QAP can be used. The Qlik Analytics Platform is a term that can cause some confusion, as it gets used to refer both to Qlik’s whole stack of tools (QIX, Sense, NPrinting) but also a single offering. Here I am talking about the QAP product.

A QAP licence gives you access to all of the power of Qlik’s associative engine via the APIs, it does not however give you the ability to use any of the Sense User interface. In fact, the Sense UI is an example of something that has been built on the Qlik Platform, using the APIs, and is available to licence. A software developer could, in theory, create Sense using the platform – but there would be little point in doing this as it has already been done.

mindstorm-armWhat can be created though is (just like the Mindstorms models I mentioned above) just about anything that can be imagined within the skills of the web developer building them. Rich interactive web applications with data visualisation at the heart of them, and all the power of the associative engine.

If you want an example of an application built this way, just look at Qlik Branch. This site is driven entirely from a data model loaded into the engine and accessed via the APIs. For evidence of this just look at the powerful search tool that is part of the site.

Applications written on top of the QAP do not require end users to have a Sense licence, as Sense is not something that is being used here. This opens up a world of possibilities to organisations that want to let consumers interact with their data, perhaps as a marketing tool or to give consumers feedback on their usage of a product or service.

There is however a downside, and that is that the cost of a QAP licence puts it beyond the budget of many of these sort of solutions. The very fact that the QAP exists though shows where Qlik’s head is at with regards to driving adoption of this kind of solution.

Enter The Playground

As the same APIs are exposed by Sense Desktop, Sense Enterprise and QAP you can build applications and libraries that can be ported between the platform’s. The way apps are hosted changes, but the API code itself does not.

If your interest in the APIs is purely as a web developer that wants to create something innovative then Qlik have catered for you also. Qlik Playground is a hosted instance of the QAP that links to a number of other APIs to pull data into the engine. Developers can sign up for a free account and create web applications against those APIs which can be hosted online and interacted with by anyone. Presently there are a limited number of data sources (Twitter, GitHub and Untappd) but hopefully more will be added to soon.

There are already some example apps showing what can be done using this platform (such as these beer consumption and AirBnB examples) and developers are encouraged to submit their own so more should be available soon.

A Quantum Leap For Developers

The development skills required to create these kind of apps and extensions are quite different to the ones required to build excellent QlikView and Sense apps. This was a conscious decision by Qlik to open their previously closed world to the huge number of JavaScript developers out there. Within their own development teams things were constrained, but now with open source development (driven by Branch) the universe is expanding and maturing at a rapid speed.

This is something that can seem incredibly daunting to companies that have been delivering pure QlikView solutions. The learning curve is definitely steep, and new skills will almost certainly need to be bought in to be able to deliver solutions.

websyWe have opted to work with Websy.io, a company formed by two ex Qlik employees who are intimately aware of how to get the most out of the Qlik APIs having been involved in creating them. If you are finding the new world of web development a bit daunting I can highly recommend these guys to help you get your capabilities up to speed quickly.

I strongly believe that the companies that are going to be blazing trails with Qlik technology are going to be those that can harness the APIs. The challenge will be not to get left behind.

Final Thoughts

This doesn’t mean that there is not still a place for Qlik Sense for those that want a Lego kit with easy to follow instructions to build something that looks great and obeys the rules. Or QlikView, for those that want a bucket of random tried and tested bricks from which great things can be constructed with some skill and imagination. These applications will be around for a long time to come and will serve the needs of most users.

It’s good to know, however, that the Lego Mindstorms set of the Qlik API is available for people to build something truly amazing.

I’m very keen to hear what other peoples thoughts are on this, and also see what others have created using the APIs. Please feel free to share thoughts and links in the comments below.

By |2016-12-13T23:19:52+00:00December 13th, 2016|Qlik Sense|11 Comments

About the Author:

Steve is owner and principal consultant at Quick Intelligence. He is a Qlik Luminary, Qlik Community MVP and Technical Editor of a number of QlikView Books.

11 Comments

  1. Ingo Hardieck December 14, 2016 at 9:59 am - Reply

    Steve, thank you for the great article. The Mindstorms example is very inspiring, for those of us that are still too comfortable in the QlikView world and not convinced yet that it is time to fully open our minds for Qlik Sense’ potential. Related to the topic of your blog post, I very much like the presentation from Martin Mahler at the London Qlik Dev Group event: http://tinyurl.com/MMQDG2016

    Ingo.

    • Steve Dark December 15, 2016 at 12:50 am - Reply

      Hi Ingo – thanks for your comments and for sharing the link to Martin’s presentation. I saw him present it at the London Dev Group and it was both informative and entertaining. I think there is definitely a case for moving out of the QlikView comfort zone – but fully appreciate why people find it hard to let go of a very good thing.

  2. Cotiso Hanganu December 14, 2016 at 1:29 pm - Reply

    Cool post, as allways, Steve !

    One issue that still stands out for me, while continuing the Lego Mindstorm analogy:
    you cannot rely 100% on some free extensions available nowadays in Branch (even though some are great ideas and some are pretty decent developments), while Qlik doesn’t create yet a true marketplace, where you could have some reliability and consistency expectation.

    Other ideas:
    PRO: beware: you cold do more with Mindstorm, if loosing the Lego Interface and using other development tools. Same on Sense (as Steve also underlined…)
    AGAINST: Mindstorm is not the coolest, strongest, easiest or best robotics kit for learning and DYI projects. But has the chance to have Lego behind.
    If Simplicity is at the core of Qlik values, I would like to quote Constantin Brancusi, a famous Romanian sculptor: “Simplicty is a solved complexity”. Starting from here,… it would have been better that Qlik Sense had already, out of the box, most Qlikview options, plus the expandability.
    There are so many small things that still frustrates me in Sense, in terms of missing shortcuts, interface consistency, options and functionalities that requires workarounds, extra work, etc

    But it’s true that I am, every day, convincing me to like more and more Sense. ;-)

    • Steve Dark December 15, 2016 at 1:01 am - Reply

      Hi Cotsio,

      I’m glad it is not only me who finds Sense intensely frustrating some days, it is tough to tell a client that something is not feasible when I know that it would take moments to do what they are asking in QlikView. There are many things it can do quicker and better than Sense though – the functionality around the Master Items makes this so.

      The point around not being able to rely on other people’s extensions is something that I know is very much on Qlik’s mind at the moment. They are committed to promoting open source and collaborative development (this GitHub account that sprung up today further proves this), and know the issues that this presents enterprises. I think some kind of solution around this will appear at some point in the not too distant future. For now you just need to test the extensions you use, and ideally get under the bonnet of them and try and understand what is going on – in case something needs tweaking down the line.

      The point about other robotics/coding kits is a very valid one, and I think it is key that we remember that the USP with the Qlik APIs is the fact it sits on top of the QIX engine and has the full associative data model behind it. This is not something you get using the JavaScript frameworks and libraries without hooking into the Qlik APIs.

  3. Vadim Tsushko December 15, 2016 at 7:41 am - Reply

    Great post, Steve.

    So what is your preferred Sense environment now? Is it mashup solutions or standard Sense augmented with custom made or open source extensions? Do you have some presentations or video? It is really interesting what kind of solutions people do in Sense now.

    We ourself went fully into mashup/Sense API based development. At a moment we are pretty satisfied with that approach. We have successfully ported some of our Qlik View (guided analytics) solutions to that environment, and customer’s feedback is pretty good. First video presentation based on that platform is available here: https://youtu.be/JRnvYz2rF_c (it’s in Russian but have English subtitles). We plan to make English version of videos (localization infrastructure is already in place) but we are not there yet.

    • Steve Dark December 15, 2016 at 8:48 am - Reply

      Hi Vadim, to be honest we tend to just roll out vanilla Sense to our clients, as this gives the quickest time to value and the most resilient base to work from. Our clients are typically providing data to internal users, so it is far more important that the correct number is arrived at, rather than how it is displayed / navigated to. We created some very rich interfaces in QlikView, as it was simple to do out of the box. Where I think that the API bits will come into their own is when the delivery of the data is the product for a company, and how it is presented will make or break a sale.

      We are keeping a very close eye on the APIs, and skilling up accordingly, but we are always about delivering exceptional value and believe that keeping things simple is the best way of achieving this at this time. We have JavaScript developers on speed-dial though…

      • Vadim Tsushko December 15, 2016 at 12:32 pm - Reply

        Thank you for answer.

  4. Adam Cooke December 20, 2016 at 2:27 pm - Reply

    Hey! Great post. I have been working with the Qlik Sense APIs for over nearly two years now in more advanced scenarios. I have to admit it is a steep learning curve to get that skill set to really leap ahead with Qlik Sense, one that is not going to be possible for most Qlikview developers. However, if you have always been abit web tech minded and you already have the skillset – then the reality now is the Qlik APIs give access to the engine as a tool that can beat a pure Qlikview dashboard + add functionality that does not exist in Qlikview or any product. This means I can use Qlik to deliver the best possible experience for users who are looking for the most modern guided analytics experience possible, not the best guided analytics experience using one tool. If you are looking for the best result for a customer, these days it will include a combination of open source and proprietary tech including Qlik. Qlikview, with all its wizardry and tricks is no longer at the front of the pack for that, it is end of life now. Qlik Sense out of the box as just one way to use Qlik, like the standard instructions you get with lego. It’s not the only way/ best way to use it.

  5. Garrett Tedeman April 27, 2017 at 4:35 pm - Reply

    Great article & some very useful insights into how Qlik is approaching the development of Sense to use with mash-ups and extensions. Some good stuff to think about.

    • Steve Dark April 27, 2017 at 6:40 pm - Reply

      Thanks Garrett!

  6. Cheenu Janakiram December 3, 2017 at 1:24 pm - Reply

    Hi Steve,

    Cheerio for this clear an concise article. Superb.

    C ;o)

Leave A Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.