icCube has been enhanced with a new set of responsive layouts.
It allows the user to create dashboards that need automatic adjustement for different screens.
Doc and live examples are available.
icCube has been enhanced with a new set of responsive layouts.
It allows the user to create dashboards that need automatic adjustement for different screens.
Doc and live examples are available.
A data visualization element (chart, table, map etc) can be just the visible tip of an iceberg. The data behind or the invisible complexity of the visual element itself can be highly sophisticated while appearing simple, straightforward and easily understandable.
If you were able to create a data visualization like that, great! It means you did an amazing simplification job, which is very difficult to do.
But let’s be honest, sometimes you just don’t have time to spend on something like that and want to pop up a meaningful data viz in a few seconds. If the chart’s configuration and the data is simple, then that’s fine to do it from scratch but what if you want something that requires more work under the hood?
A possible solution for this are gadgets. Let’s get into it.
Gadgets are a new icCube concept that has been live for a few months now. What are they? How to use them? Here’s a quick start guide!
Some vocabulary, first. Widgets are any element you can add to a dashboard, i.e. table, map, line chart, column chart, KPI box, text box, filter, etc. A widget is ‘empty’ by default, meaning you have to input data and configurations (color, labels, transformations, etc) for it to display a finished result.
Gadgets are widgets, more precisely, they are preconfigured widgets, i.e. they are ‘ready’ with data and configurations. You create them in a separate editor and use them infinitely in dashboards.
Below you see the user creating an empty widget (bar chart) and adding data (#Sales by year). Next, the user chooses a gadget from the list of saved gadgets. Notice that the gadget is ready with data and configurations, and can also be a combination of several widgets!
Instead of adding to your dashboard ’empty’ widgets where you need to configure its query, chart, box and other options each time, you can create and use gadgets that are ‘ready’ with data and configurations.
If you’re using a same chart across several dashboards, prefer gadgets from widgets, this allows to solve persistency, meaning if you change the gadget’s definition, then all dashboards where this gadget is being used will be automatically updated.
Gadgets can also be useful for exposing complex charts/data to non-technical users. They are a great starting point for users who are starting with icCube or do not want to dive into advanced widget configurations.
Gadgets exist provided that an advanced user has previously created them. With gadgets, you have a higher level of confidence on the data it’s displaying, as the person creating them is, usually, an advanced user that has a good understanding, not only of dashboard creation, but especially in the data model behind. Note that, as for other icCube configurations, access to creating gadgets can be granted or denied.
A few gadget use cases could be:
Check the step-by-step video guide on how to create gadgets:
icCube v8 brings in the ability to create pixel-perfect BOUM themes & widgets. What are these exactly?
Software and SaaS solutions looking to embed analytics want to make their dashboards perfectly match their solution’s UX & UI. In other words, the user should not see the difference between the solution’s interface and the analytics embedded in it.
icCube allows to build 100% customized components based on designers’ prototypes. For example, design is made by a design company on a platform such as Invision, and then the compnents (themes and widgets) can be implemented on icCube.
Find development examples of branded pixel-perfect themes and widgets on our GitHub page.
Build themes and widgets once, and reuse them. Why is this so practical?
You are most probably using a selected set of charts, maps and filters in your dashboards. Each time you build, say, a line chart, you always have to change the label settings, the legend settings, colors, fonts, etc.
The idea of BOUM is to have all the needed settings preconfigured so the user does not have to worry and lose time redoing that each time. Imagine you have 100 dashboards to build!
Plus, another advantage is that if you decide to change a given widget in the future, for example, because the corporate design has been updated, then you do not need to go over all the dashboards using it to make the actual change. Just change it in its definition and it will directly be apllied everywhere at runtime. Boum!
A theme is a preset package containing graphical appearance and functionality details used to customize the look of the dashboards. Theme entities can be color palette, fonts, size, default chart options, etc.
Widgets are visual components that display a piece of information. Typical widgets are charts, maps, tables, filters, gauges, text boxes, etc.
icCube v8 therefore is a dev-friendly version allowing for themes and widgets to be unique, matching your branding and designs, with long-term easy maintainability. White labeling made easy!
For more information check out the Dashboards Documentation.
STREETS is a leading Swiss SaaS Real Estate portfolio management platform, seamlessly embedding icCube dashboards with their unique pixel-perfect theme & widgets. The dashboards can be seen on their promotional video.
Even when embedding analytics into a solution, you would sometimes like to give the user high flexibility on the data navigation and exploration.
icCube has introduced new widgets and features that allow for improved user self-service capabilities:
The filter panel allows the user to add a list of filters based on rules, i.e. ‘contains’, ‘greater than’, ‘between’, ‘starts/ends with’, ‘is (not) empty’, etc.
Doc and live examples are available.
Use the MDX Query Builder as a widget to create your own queries for tables and pivot tables currently.
Doc and live examples are available.
Filter widgets can be used, not only for the common filtering purpose, but also to change a query’s axis on a chart. For example, a column chart where its horizontal axis is determined by the selection of the filter.
Doc on how to set this up and live examples are also available.
Drilldown is a data navigation mechanism that allows to drill into categorical data.
Natural (children) drilldown could for instance be a pivot table listing years, where you can expand the years to show months. This mechanism also works with other charts such as Bar or Column charts, i.e. bars or columns are replaced upon click by the children of the selection.
User select drilldown is more powerful than natural drilldown. The user can choose into which category they want to drill into. For example, click on a year and drill down into customer types, then click on a customer type and drill into continents.
Doc and live examples are available.
icCube has now been enhanced with a powerful new filter: the Filter Panel.
It allows the user to add a list of filters based on rules, i.e. ‘contains’, ‘greater than’, ‘between’, ‘starts/ends with’, ‘is (not) empty’, etc.
Doc and live examples are available.
Given the recent release of icCube’s v8 rc1, find here a summary of new concepts, functionalities and resources available with this version made for developers.
The new v8 allows for applying your branding in a more efficient way. You can now create your theme and custom widgets, package them as plugins and load them at runtime.
Customers can extend icCube dashboards with their own plugins. A plugin consists of custom themes, widgets, tidy table transformations, localizations, etc… Plugins are exposed to icCube as Webpack Modules that can be federated. Then, icCube can be configured to load them at runtime.
A preset package containing graphical appearance and functionality details used to customize the look of the dashboards. Theme entities include but not limited to are: color palette, typography font and size, default data formatter, default chart options, etc. It’s a Javascript module packaged as a plugin.
The collection of widgets used by the icCube. Those are all the widgets available when using the “New Widget” menu: out-of-the box widgets plus any custom widget, meaning that you can create your very own Widget library of unique and branded custom widgets.
The new v8 is a fully new Dashboard application and comes with the new components below.
The result of queries in the dashboards’ widgets are now in the format of tidy tables (well-known in the data science world). A tidy table is created from a dataset received from a data source (e.g., MDX, SQL, …), possibly transformed and then fed as input of a widget (i.e., chart, table, filter, etc) for its actual rendering. This format makes it easier to add transformations to the query result (see below.)
Similar to In-Memory data sources in the server, you can add a csv data in the report as a source (handy for demos, testing…).
Transformations allow for manipulating the content of a tidy table before it is fed as input of a widget. Typical examples of transformations are: add/rename a column, add aggregations on rows/columns, percentage of total, colors, regression line, etc.
You can now use measures from different cubes in a same query.
The text editors (used for tooltips, text boxes, etc) is now using markdown language which is a simple syntax language and can also contain HTML. The values, formattings, and basic calculations to display are also easily accessible with completion. This text is writen in the markdown language ( https://www.markdownguide.org/ )
You are now able to export a file that contains all terms defined in a dashboard (titles, texts, etc) for easy translation. No longer need to add codes, all text entries marked as ‘translatable’ might be automatically translated if needed.
Documentation for charts, filters, maps, transformations and other Dashboard functionalities, as well as API documentation that includes how to develop new themes, widgets (charts, maps, etc…), data transformations, etc, and embedding icCube Dashboards into a Web application.
See working examples of charts, filters and data navigation. Click on the Edit Dashboard button on the top left menu to see how each widget was created.
Both public documentation and public source code are available in the GitHub repositories. Each repository contains a README.md file explaining how to get started with the project.
Ad Hoc Reporting is a form of report creation which allows non-technical users to create and modify reports on the fly without training. Ad hoc reporting generally boils down to three steps. First, a technical user sets up databases and data sets in a way which makes sense to a user. This can mean creating a “semantic” data layer which may have additional organization, naming conventions, drill downs, drill ups, drill across, or things like formulas or counts which add additional context to the data to make it easier for a non-technical end user to understand. Second, security and permissions are set up so that the non-technical end user only has access to the data they’re supposed to see. In an embedded use case, this often means matching your existing permission sets to the analytics engine. And finally, end users are able to create and edit reports on the fly through an easy-to-use dashboard creator.
Software/SaaS companies have long recognized that analytics is a top 3 requirement in their business applications. If they haven’t already implemented some form of Ad Hoc Reporting, Software/SaaS company customers will certainly start asking for things like “self-service reporting”, “web authoring”, “dashboard customization” or “Ad Hoc Reporting”.
Customers want the freedom to create their own analytic content and Software/SaaS companies are happy to free themselves from the effort of servicing Ad Hoc Reporting requests so that they can focus on higher value, differentiated software development tasks instead.
Usually there’s a journey that a Software/SaaS company goes through as they seek to balance ease of use, flexibility and maintainability with Ad Hoc Reporting.
At this point a development team will often turn to “buy-v-build” alternatives. The first obvious port-of-call will be the many excellent BI tools available in the marketplace. These tools are ideally suited in providing an ad hoc analytics user experience, particularly if the user is an analyst, especially a data analyst or data scientist.
There are two challenges however:
Sure you can think of this as a cost-plus exercise and simply pass the cost on to the customer, but then the customer starts asking for interfaces for every single BI tool they have and furthermore the Software/SaaS has just lost one of its key differentiators by passing a large part of the responsibility for analytics over to the customer.
Ad hoc reporting gives users the ability to rapidly generate reports that meet their individual needs faster than ever. Instead of submitting a ticket, waiting for a report to be created, submitting any additional changes, waiting again for a final report, users can now dynamically create and modify reports on demand and at their own pace.
The ability to create any type of report or visualize data in any way they chose creates lots of room for innovation and creativity. Analyzing data from different perspectives and through different visualizations ultimately means increased flexibility and speed for analytic insight. This has become the norm and expected. Users feel the data that’s produced through the application is inherently part of the offering they’re paying for and they expect to be able to manipulate it as they choose to maximize the benefit of their investment.
Other core user benefits of Ad Hoc Reporting are the ability to share insights between users, and to reuse components and reports. Many ad hoc reporting systems allow users to share reports they’ve created with other users with appropriate permissions, meaning insights proliferate across a user base quicker than through traditional means. The reusability of components and reports also means that individual users can save a copy of a report and edit it to meet their own individual needs meaning quicker time to insight and more flexibility.
With icCube’s ad hoc reporting and dashboarding functionality, you can empower your users through your host application to do this and more. With fine-grained security and white-labeling capabilities you can create a fully embedded experience that looks and feels like your own application.
Monetizing self-service analytics features depends on software user persona profiles.The competitive landscape, and the value driven from insight driven through self-service analytics. Three main ways Ad Hoc Reporting and self-service analytics are monetized are:
Increasing revenue comes in two distinct ways: Product Differentiation and Product Portfolio Expansion. In competitive software markets, ad hoc functionality can make your product stand out, not only does it empower end users, but it is by definition visually rich meaning it can often be an easy-to-demo product feature. What does all that mean? By embedding self-service analytics you can help your salesfolks close more business, more quickly, and for higher average deal sizes.
The first way software vendors generate incremental revenue is by using self-service as an additional premium add-on for new and existing clients. There is a user perception that self-service is seen as a premium offering that allows it in many circumstances to be used as a product portfolio extension rather than as an included add-on. This user perception gives many software vendors the opportunity to upcharge both new and existing clients. This can also align to, or create different user tiers that are given different capabilities at different per user charges. This capability is already built into icCube, where software vendors can choose who gets to use what depending on their credentials. Developers get access to everything unless otherwise determined. Consultants at customer-facing end of software or SaaS companies, who understand the end-customers business and how to leverage the product to output high value custom analytic content for customers may get access to almost everything as well. End-Customer Power Users may be given rights to configure custom analytic content for people at the end customers. And end-users who are primarily consumers of analytic content may be given the ability to just view content interact and navigate that content and perhaps customize using drop-down/multi-select filters, sort, group, select columns etc. or they may be given the capability to edit/create/or add to certain types of reports depending on their technical acumen and business need.
The second way in which software vendors monetize ad hoc reporting and self-service analytics is by reducing future competitive risk and ongoing maintenance costs. Competitive markets frequently push innovation and no one wants to be left behind. If your customers don’t see ad hoc reporting as a premium offering and you’re starting to see competitors take strives towards an ad hoc future, then working with an embedded analytics provider to get your users ad hoc reporting functionality now is a great way to mitigate future competitive risks you may encounter. It can give your users new functionalities, while giving your development teams enhanced focus by reducing the maintenance hours it takes to maintain a legacy reporting system. In the long term helping to make analytics reliable, sustainable, and more cost effective.
The final way software vendors monetize ad hoc reporting and self-service analytics is by improving customer satisfaction and experience creating more meaningful, lasting relationships. If your users are already asking about additional analytics capabilities now’s the time to act. Don’t wait for “lack of reporting” to be the death knell answer on your churn surveys.
The native, underlying data structure of most applications isn’t very user friendly, from non-descript field names to formulas that may require complex queries that can put a strain on your databases if not stored in-memory. Because of this, setting up a semantic metadata layer for end users is the first, and most important step in evolving your analytics to be more self-service, best of all, it’s normally a one-time job. icCube allows developers to easily create a metadata layer that can be formatted to fit user needs, from date format changes to simple field name clean up. It also gives developers the ability to define drill-down relationships, organize fields, build additional formulas, and more:
The next step is to start defining security and permissions based on your host application’s existing permissioning system. icCube allows you to customize authentication and authorization through a variety of methods like Single Sign-On to ensure the security of your application.
icCube’s embedded self-service analytics capabilities allow users to interact with reports in a variety of ways to extend the usability of reports and to provide users with deeper insights. Some of the ways users can interact with reports through icCube include:
The age old question that every product team has asked their development teams at one time or another if there’s ever been an interest expressed by clients for self-service. The reality comes down to many factors, including what your data structure currently looks like, how modern or legacy is your code base, what vendor are you working with, etc.
At icCube we pride ourselves on providing the best experience possible to potential clients. We help developers build a proof of concept in as little as 30 days. A realistic timeline for most development teams using non-dedicated teams is anywhere from 90-120 days from initial contact to implementation, but many do it in less time than that.
Analytics, done well, is a never ending story. It offers Software & SaaS companies opportunities to broaden the user base as well as engage in more strategic, high value conversations. There’s always an opportunity to ask the customer where new value can be derived from analytics and open up the possibility for further product differentiation by embedding that new value in the product.
No Software nor SaaS Company is going to buy embeddable ad hoc reporting capabilities “off-the-shelf” without testing/evaluation.
So what should that process look like? Should it have some structure? Should it have a timeline? Are there key stakeholders and resources that need to be made aware of the process and/or whose availability needs to be secured?
If you haven’t already started thinking about the stakeholders in embedded ad hoc reporting – now’s the time!
One of the primary differences between a BI tool and an embeddable analytics platform is that a BI tool starts with the premise that the user is a data analyst or data scientist and the product can be used by those people“out-of-the-box”.
With an embeddable analytics platform the premise is that every user of the Software or SaaS application is a potential analytics user without even thinking about it. Furthermore the premise is that the Software/SaaS company will use the platform to create a customized user experience that conforms and is consistent with the existing user experience.
So when it comes to budgeting, it’s important to think primarily about the development process, which members of the team from development and/or consulting will be the go-to people for ad hoc reporting initially as well as on an ongoing basis.
When it comes to licensing, it makes sense to start thinking about the “dimensions of value” that define the licensing for the existing application. Traditionally, the number of users or perhaps customers has been the primary dimension, however most Software & SaaS companies have already questioned whether it makes sense to define value based on the number of customers/users.
For example could the value be measured in terms of Shipping Vessels for Shipping Management software, Rented Rooms for Hotel Management software, MegWatts for Power Generation Monitoring software and many, many other examples.
A key conversation with the Ad Hoc Reporting vendor, then, is having a conversation for understanding the core value of analytics and attributing not only a price-point but also a licensing methodology that makes sense to both parties.
icCube enables your development team to embed advanced ad hoc reporting and dashboarding capabilities into your host applications, empowering your users to create, modify, and save, fully interactive custom reports with no technical expertise and little to no training. Dashboards can be built just as quickly as reports by dragging and dropping data components in icCube’s embeddable web interface.
icCube gives your users access to a wide variety of charts and widgets to analyze data quickly and easily including:
During one of my icCube demo meetings last year, one of the attendants asked if it is possible to migrate from Microsoft Analysis Services to icCube and what could be potential challenges. Well, what do you answer to such a question? … Honestly?
Having quite a bit of in-depth knowledge of both icCube and Analysis Services, I knew it could be done, but I never did it before myself. So, last Autumn, having a couple of days available for research I started the mini-project of migrating the Microsoft’s flag-ship demo model “AdventureWorks” to icCube.
So, can it be done? Can you migrate an Analysis Services model to icCube?
Yes, definitely. It was surprisingly simple. And as a bonus you will get all the additional benefits provided by the icCube platform too. With the most important benefit (for me and my clients):
Below a summary comparison points to note on the migration. If you want to learn more about the migration process itself, you can read my other blog post on this topic here.
There were no challenges for doing the migration, it’s just different ways of doing things. The following table gives a summary:
Table 1. AdventureWorks in Analysis Services vs icCube
Analysis Services | icCube | ||
set-up the data source | to SQL Server database | to SQL Server database | same |
tables & views | tables with SQL expressions | use of views | similar |
dimensions | allows NULL values | does not allow NULL values, assign default value | similar |
snowflake | multi-level on a view | similar | |
discretization bucket count | indexing by range | matter of taste | |
dimension usage | referenced | regular with view | similar |
measures | – | – | same |
calculated measures | scoped functions | using MDX++ functions | similar |
other calculations | 3 minor changes in MDX | same |
As you can derive from this table, you can conclude that there were no real issues in the migration. But, be your own judge. You can check out the result for yourself in icCube, using the migrated “AdventureWorks” model.
This is what you need to experience “AdventureWorks” in icCube:
And while you are at it, please do not forget to evaluate the dashboard editor. The “AdventureWorks” model provides a wealth of information to display in icCube’s interactive reports.
Here’s already a sample image of one, just to give you a taste of it.
Cheers,
ArthurArthur van den Berg, www.inside-vision.com
It’s a kind of magic … to transform loads of data into insight giving dashboard products that show your audience what step to take next, based on your data.
I work closely together with icCube being a Dutch reseller. I love their product that allows me and my clients to launch meaningful dashboard products and to embed analytical insights into their software.
Arthur van den Berg from Inside Vision, icCube’s exclusive reseller for the Netherlands, is having lots of success with his quick icCube tips on Linkedin!
We therefore definitely wanted to share with you his playlist that is being implemented regularly.
Questions on some of those functionalities? Feel free to contact us!
As of today, the available tips are:
Embedded Analytics truly means allowing for a seamless integration of icCube into other softwares or webpages, not only from a technical point of view, but also from a design point of view.
The possibility of adding your own HTML, CSS and JS codes allows the report builder to design dashboards that precisely fit with your very own corporate branding and expectations.
This article explains step-by-step how to create the following customized HTML widget based on an HTML-based report (download available on page bottom).
Custom widgets can in fact be saved as templates and reused for future reports in icCube. Let’s get started!
This first step seems trivial, but you don’t want to underestimate it. Make a prototype of the data you would like to show on your new widget.
For this example, we are using the default Sales schema available when you download icCube. As the image shown above, we would like to:
Use a styling tool such as CodePen, to build your very own widget’s design. This step is usually done by a designer to ensure a professional and brand-consistent look to your widget and report.
Find our code example here.
Once you’re happy with your widget’s look, you can implement it into icCube.
Go to icCube’s Reporting Editor, start a new report and create a new widget template:
Insert your HTML code on the “HTML data received” field:
Your widget will depend on certain properties, which are values coming from your cube. In our case, as previously mentioned on Step 0 and again shown below, the properties are: the measure “Amount” for the Silver, Gold and Platinum products, as well as the total of these 3.
Write the following JS code to create these 4 properties and add it to the “After Render” field of your Widget Template:
function(context, node, props, onRenderedCallback) {
$(node).find("span[idccube='amount']").html(''+props.amount());
$(node).find("span[idccube='silver']").html(''+props.silver());
$(node).find("span[idccube='gold']").html(''+props.gold());
$(node).find("span[idccube='platinum']").html(''+props.platinum());
}
This code simply binds variables placeholders from your HTML template.
For instance, whenever you insert the following HTML code in your HTML template:
<span idccube='amount'></span>
it will be replaced by the icCube-defined property ‘amount’, provided that you also insert the following JavaScript statement:
$(node).find("span[idccube='amount']").html(''+props.amount());
‘amount’ is simply the property ‘Value Reference’ field content.
Under the configuration wheel of the Properties, attribute the titles that will be displayed on your widget to each of the properties. For instance, we want to call the total sum “Total Support Amount”. As mentioned above, the “Value Reference (in Properties)” should correspond to the one defined on your JS code.
Now that we have created the properties, we need to have the data definition that will “populate” your widget.
We want to show sales for selected members (a subset) of the Products’ dimension, i.e. only Silver, Gold and Platinum products, as well as their total.
Please note that the widget has a limitation, each data retrieved should be defined as a measure, so you can’t simply have the single measure Amount on your query, you need to create an Amount measure for each of those specific products, including the (sub)total.
Therefore, create a new Amount measure per product, e.g. the “Silver Amount” measure is the tuple:
([Measures].[Amount],[Product].[Product].[Article].[Silver]), FORMAT_STRING="#'###"
Going back to the widget design, select the according measure to its respective property thanks to the drop down menu. As shown below, Under the “Silver” property, the value displayed is “Silver Amount” that was just created on the previous step.
Note that you have a Save button on the widget allowing you to reuse this Widget Template for future reports.
Your very own, newest widget template is now done!
Widget Templates, as all other available widgets in icCube, can respond to actions. Let’s add a map widget that includes an event by Country updating your Widget Template accordingly.
To do so, create a new Geo Chart, add Amount on Measures and the dimension [Customers].[Geography].[Country] on rows, and create an event on row click as shown below.
Simply add this event as a filter on your Widget Template’s data definition, as well as on the header of your widget (see HTML code).
Now, once you click on a country, your new Widget Template will respond and update according to your country selection.
Find the report file with this full example here.
Make sure to check this other article on how to create a different HTML box (containing an icon/image), this widget example is available live here.