The Qlik Sense connector is part of the Enterprise Edition.
How it works
- Apps are enumerated over REST (
/api/v1/items?resourceType=app), following pagination and filtered by space when you configure one. - For each app, the model is read from
/api/v1/apps/{appId}/data/metadata. If that returns nothing, Bag of words falls back to opening the app over a WebSocket and calling QIXGetTablesAndKeys. - Queries run as QIX hypercubes over a WebSocket to
wss://<tenant>/app/<appId>.
Space/App/Table (or App/Table when the app is not in a space). Fields tagged $key by Qlik become primary keys, and the tables that share a key are linked as relationships, so the agent understands how an app’s tables associate.
Qlik is queried with hypercubes, not SQL. The agent sends a list of dimension field names plus measures written as Qlik expressions (
Sum([Net Sales]), Count(distinct [OrderID])), and filters are applied as Qlik selections — they narrow the associative state and propagate across every related table, which is not how a SQL WHERE behaves.Before you start
- Your Qlik Cloud tenant base URL, for example
https://acme.us.qlikcloud.com. - Permission on the tenant to generate an API key, or to create an OAuth client in the Management Console.
- The credential needs the
apps.readscope and access to the spaces holding the apps you want to expose. A credential with no app visibility connects successfully but discovers nothing. - Outbound network access from Bag of words to the tenant over HTTPS and WebSocket (
wss://). Queries fail if only plain HTTPS is allowed through.
Step 1 — Create a credential
- API key
- OAuth 2.0 (client credentials)
On the tenant, go to Settings → API keys and generate a key. Copy the value immediately — it is shown once. This is the fastest path: a single rotatable secret.
Connect in Bag of words
Go to Settings → Data Sources → Add data source → Qlik Sense. See Connecting a data source for the general flow.
Test Connection validates the credential against
/api/v1/users/me and then asks for a single app to confirm the key can list content. It reports the identity it connected as, and tells you when the tenant has no apps visible to that credential.
Authentication modes
Both modes are available at thesystem scope (one shared credential for the workspace) and the user scope (each person supplies their own, so Qlik applies that person’s own space and app access). Per-user credentials on a connector like this require Enterprise — see Authentication.
API Key
OAuth 2.0 (Client Credentials)
Troubleshooting
Connected, but no apps were found
Connected, but no apps were found
The credential is valid but sees nothing. Grant it the
apps.read scope and add it to the spaces that hold your apps. If space_filter is set, check that the IDs or names in it match real spaces — anything else is filtered out silently.Authentication fails
Authentication fails
For an API key, confirm it has not been revoked and that
base_url is the tenant URL, including the region segment. For OAuth, confirm the client ID and secret pair is still active in the Management Console; the token exchange happens against <base_url>/oauth/token.Discovery works but queries fail
Discovery works but queries fail
Discovery can succeed over plain REST while queries need the WebSocket endpoint. Check that a proxy or firewall between Bag of words and the tenant allows
wss:// connections.An app appears in the catalog marked inactive with an error
An app appears in the catalog marked inactive with an error
That app failed to crawl over both REST metadata and QIX. The reason is in the entry’s description — usually a permission gap on that specific app, or an app whose model could not be opened.
A measure returns nothing
A measure returns nothing
Measures are Qlik expressions, and field names are case-sensitive and must match the schema exactly. Names with spaces need square brackets, as in
Sum([Net Sales]).