Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
This article provides a step-by-step guide on building a write back solution with only native Qlik components and automations.
Content:
Disclaimer for reporting use cases: this solution could produce inconsistent results in reports produced with automations; when using the button to pass through selections, the intended report composition and associated data reduction for the report may not be achieved. This is due to the fact that the session state of Qlik Application Automation cannot be transferred to the report composition definition that is passed to the Qlik Reporting Service.
When analyzing results in a Qlik Sense app, it could happen you spot a mistake in your data or something that seems odd. To address this, you may want someone from your team to investigate this or you may want to update data in your source systems directly without leaving Qlik. Or maybe your data is just fine but you want to add a new record from within Qlik without having to open your business application. These scenarios fit in the following use cases:
This is the least intrusive form of writing back that delegates the change to someone in your data team. The idea is that you create a ticket in a task management system like Jira or ServiceNow. Someone from your team will then pick up the ticket, investigate your comment, and review the data. The difference with sending an alert or email is that the ticketing system guarantees that the request is tracked.
Another option to communicate changes is to write a comment or a tag for one or more records directly to the source system. This could be a comment on a deal record in your CRM or it could be stored in a separate database table if you're loading data from a database.
The final use case allows for updating records directly from within the sheet. Make sure you know who has access to the button before setting this up since this will allow users to change records directly.
All the above use cases can be realized in the same way: by configuring a native Qlik Sense button in your sheet to run an automation. Before you start this tutorial, make sure you already have an app and a new, empty automation. The tutorial has 2 parts:
To configure the app, we'll use the following native Qlik Sense components:
Steps:
Enable the "Show notifications" toggle, this will send a toast notification back to the user in the sheet after the automation completes. Feel free to increase the duration.
Tip: using a Container component will allow your variable inputs & button to scale better for smaller screens.
Upon automation run, this will resolve to the first text value selected for the field hs_object_id (which corresponds to the deal ID from HubSpot). To update this to a comma-separated list of IDs, the mapping must first be changed to output a list of all values for hs_object_id. To do this, toggle the formula parsing:
Bonus: add a link to the toast notification
Instead of showing a plain message in the toast notification, it's also possible to include a link to point the user to a certain resource. This can be done by configuring the Update Run Title block with the following snippet:
{"message":"Ticket created", "url": "https://<link to jira ticket>"}
Depending on the button's configuration and the automation run mode, use either the Update Run Title block or the Output block to show the toast notification.
See the below table for each option:
Run mode configuration in the automation | Run mode in the button | Block for toast notification | Who can see the notification |
Triggered async | Triggered | Update Run Title | Automation owner only |
Triggered sync | Triggered | Output | Everyone |
Triggered sync | Not triggered | Update Run Title | Automation owner only |
The run mode in the button can be configured by toggling the 'Run mode: triggered' option in the button's settings:
The run mode in the automation can be configured here in the Start block:
After writing back to your source systems, you'll want to do a reload to see your changes reflected in the app. Be mindful of the impact of doing these reloads. If multiple people are using this button at the same time, you don't want to do a reload for each update.
Problems:
Improvements:
The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.
Hi! Thanks for sharing, great article!
These are great aditions to Qlik integration and functionalities.
I tried following the basic example from Michael Tarallo in the video below, which is based on this article. However, I'm having a problem when replicating the current state of variables to the Automation.(https://www.youtube.com/watch?v=hYER2nGKctM&ab_channel=Qlik)
I tried replicating exatcly the same steps:
1. Setting the layout, creating the variables, update and reload buttons:
(layout - as you can see, the standard values for the variables are '-', since I'm using the fields as definition)
(Update button settings - Include Selections checked!)
2. Creating the automation using the 'Copy Input Block' blocks and adding the three Get Expression Value blocks. To check whether it is getting the current variable value from the temporary bookmark, I also added an Output block:
(note that the app and bookmark IDs are the same from the used input block)
However, I'm not getting the expected result:
After setting different values to the variables with the Input visuals and clicking the Update button in the Analysis App, the output always gives me the default value of my variable.
(note that in the app front-end, the variables are updated)
It's as if my variables were not being updated (or bookmarked) to the current values when sent to the automation. In this specific example, it's not generating any output, since my variables by definition are the fields, which gives me '-' as an output, as per my first step.
I also did another test, setting the definition of the variables as fixed strings. In this case, I always get the same strings as output.
Would you know if there's any step I'm missing? Or if there is any kind of limitation to a specific type of environnment?
Hello @marcusva
Please place your query and what you are attempting to achieve in our Qlik Automation forum to get assistance from not only our active userbase, but our support agents monitoring the forums.
All the best,
Sonja
Thanks @Emile_Koslowski - great article and beautiffuly documnted.
We've taken this one step further and are using Pomerol's free writeback extension for Qlik SaaS (https://pomerolpartners.com/qlik-sense-writeback-extension/) for the data capture part - one benifit being the ability to update multiple records at once - and a nice UI for editing multiple fields. The workflow for Salesforce is covered in a quick video here: https://www.youtube.com/watch?v=dwMCwd6oMEM
Hi,
Anything that needs to be setup on the automation for it to show up in the "Automation" drop down when configuring the button?
Currently I only see a subset of the automations my user owns, but not all. Same user owns the automation and the app, as I'm setting up the button with. I've tried setting the Automation to triggered and disabling / enabling it, but it still does not show in the dropdown.
Any clue as to why?
All the best
Hi,
We are using an extension developed by Qloud Cover. It is build natively to create Writeback tables in Qlik sheets where you can interactively writeback from existing data in Qlik. One of the benefits of the product is you can choose between a SaaS product or self-hosted. You can configure where to store the data and they support datastores like Snowflake, Redshift BigQuery and AWS Redshift. You can read more about the product at the Qloud Cover website:
https://qloudcover.com/qloud-cover-writeback/
Or you can create a free trail on the product website https://writeback.qloudcover.com/ and get easily started.