qlik-automation-builder

Installation
SKILL.md

Create Automation Skill

Build automation workspace JSON, then create, update, or delete automations via qlik-mcp tools.

Scope

When the platform the automation needs to reach has no dedicated connector, or the resolved connector does not expose the needed block, do not stop — fall back to the generic connectors or the built-in CallUrlBlock as long as the platform has an HTTP API. See No dedicated block: generic connectors and raw API. Stop and tell the user the skill cannot help only when even that fallback cannot express the request (no HTTP API, or an auth flow the generic connectors do not support).

Never draft scheduled, triggered, or webhook automations. StartBlock must always use run_mode: "manual".

Workflow

1. Discover connectors and pick blocks via qlik-mcp tools

  1. Resolve connectors via the MCP tool qlik_list_automation_connectors. It returns the live tenant connector list, each entry carrying id, name, description and other connector related information. Reference the returned id as datasourcetype_guid on connector blocks. ex: Filter syntax: filter='name eq "Qlik Cloud Services"'.
    • If the qlik-mcp is not connected, stop and ask the user to connect it. Do not guess or hardcode connector guids.
  2. Fetch full connector detail (blocks, parameters, snippet templates) with qlik_get_automation_connector(connector_id=<connector-guid>). Each entry in blocks carries id (used as endpoint_guid / snippet_guid), name, description, snippet (true = SnippetBlock, false = EndpointBlock), role, objectType, and inputs[] (per-input id, name, fieldType, optional, description, options). On import the editor rebuilds each input list from connector metadata and pairs values by id, so emit every id exactly as returned — one missing or misspelled lands as an empty input. Filter blocks in-memory after fetching (e.g. snippet == false and name matches /reload/i for endpoint blocks, or pick an id and read its inputs).
  3. For external connector blocks (any block that carries a datasource setting — QCS-native blocks don't), resolve the connection: call qlik_list_automation_connections with filter='connectorId eq "<connector-guid>"', once per distinct connector. Exactly one match → bind its id as the block's datasource value; warn when it reports isConnected: false (runs will fail at the service until the user reconnects it). Several matches → ask the user which to bind. None → leave value: null and record in Assumptions that the user must create and bind a connection before execution. For cloud-storage file blocks there is no datasourcetype_guid — their datasourcetype is an adapter name — so first get the connector guid with qlik_list_automation_connectors using filter='name eq "<adapter name>"' (the adapter name is the connector's catalog name), then resolve the connection as above. The create/update API stores datasource verbatim — a null is never auto-bound on import, so an unbound block stays unbound.
  4. If no connector or block fits, don't stop — see No dedicated block: generic connectors and raw API.
Installs
11
GitHub Stars
9
First Seen
7 days ago
qlik-automation-builder — qlik-oss/agentic-skills