1. Project Overview
We are developing a custom writeback extension for Qlik Sense SaaS to support a P&L simulation and forecasting application for a large FMCG project.
The objective is to build a cost-efficient alternative to commercial writeback extensions, combining:
• UX/UI similar to Pomerol (popup-based input on selected rows),
• Real-time HTTPS writeback similar to Vizlib,
• Backend-driven recalculation and disaggregation logic implemented in PHP + MySQL.
This is a production-grade analytical tool, not a demo or experimental project.
________________________________________
2. Core Concept (Very Important)
Users will input values at an aggregated level (e.g. customer, SKU group, period), but:
• The backend (PHP) will:
o Identify the most granular level using one or more SimKeys,
o Disaggregate and store values in the database at the lowest possible level,
o Recalculate all P&L metrics server-side.
Therefore, the extension must be able to:
• Capture current Qlik selections,
• Identify and include SimKey(s) in the payload,
• Send all required context to the backend.
________________________________________
3. Qlik Sense SaaS & Licensing Constraints
• Must work in Qlik Sense SaaS.
• Must work with Analyzer licenses (not only Professional).
• No use of unsupported APIs or on-prem-only features.
• No dependency on reload tasks as the main trigger for writeback.
________________________________________
4. User Interface & UX Requirements (Pomerol-style)
4.1 Table / Selection Behavior
• A table showing aggregated rows (dimensions such as Scenario, Customer, Product Group, Period, etc.).
• Users select one or multiple rows.
4.2 Popup-Based Editing (Mandatory)
• On action (e.g. Edit / Writeback button):
o A popup/modal opens (similar to Pomerol),
o Displays:
Selected rows (read-only context),
One or more editable input fields (numeric).
• Inputs are not edited inline in the table.
This popup-based approach is mandatory.
________________________________________
5. Real-Time Writeback (Critical Requirement)
When the user clicks Save / Writeback:
1. The extension must:
o Collect edited values,
o Collect relevant dimension values,
o Collect SimKey(s) derived from the current selection,
o Read required Qlik variables (see section 6).
2. Build a JSON payload (batch).
3. Send the payload via HTTPS POST to a custom backend endpoint:
/writeback.php
4. Handle backend response:
o Success
o Validation errors
o Backend errors
❌ No file-based writeback (CSV, QVX, XLSX)
❌ No Snowflake-managed backend
❌ No reload-trigger-only logic
________________________________________
6. Variables & Recalculation Control
Before or during the writeback action, the extension must also be able to:
• Set or update Qlik variables (e.g. recalculation flags, mode selectors),
• These variables will determine:
o How the backend recalculates metrics,
o Which logic path is applied (pricing, volume, promo, etc.).
The ability to:
• read Qlik variables
• set Qlik variables programmatically
is required.
________________________________________
7. Partial Reload / Data Refresh
After a successful writeback:
• A Partial Reload (or equivalent light refresh mechanism) must be triggered automatically.
• Full app reload should be avoided.
• The user should see recalculated results as close to real time as possible.
Exact implementation can be proposed by the developer, but:
• UX continuity is critical,
• Reload-based batch processing is not acceptable.
________________________________________
8. Payload Structure (Indicative)
Example payload (structure may evolve):
{
"context": {
"UserId": "xxxxxxx",
"SimKeys": ["SIM_001", "SIM_002"],
"Scenario": "Forecast",
"Mode": "PRICE_CHANGE"
},
"inputs": [
{
"Level": "Customer-SKUGroup-Week",
"InputType": "DISCOUNT",
"Value": 0.15
}
]
}
The backend will handle:
• Expansion to granular SimKeys,
• Storage,
• Recalculation.
________________________________________
9. Backend Context
• Backend is already implemented in PHP + MySQL.
• Responsibilities of backend:
o Validate payload,
o Identify granular SimKeys,
o Write data (UPSERT),
o Recalculate P&L metrics,
o Return structured JSON response.
The extension must not embed business logic.
________________________________________
10. What Is Explicitly Out of Scope
• Snowflake integration.
• File exports as a writeback mechanism.
• Full replication of Vizlib feature set.
• Complex Excel-like grid behavior (copy/paste can be proposed later).
• Heavy frontend business rules.
________________________________________
11. Deliverables
1. Custom Qlik Sense SaaS extension:
o Source code (JS / HTML / CSS).
2. Configurable endpoint URL.
3. Clear documentation:
o Payload structure,
o Variable handling,
o Deployment steps.
4. Working example in Qlik SaaS.
________________________________________
12. Freelancer Requirements
Please include in your proposal:
1. Examples of custom Qlik Sense extensions you have built.
2. Confirmation that you understand:
o Real-time HTTPS writeback,
o Popup-based UX,
o Backend-driven disaggregation.
3. Estimated time required to deliver:
o MVP version,
o Polished production-ready version.
4. Any technical assumptions or risks you identify.
________________________________________
13. Project Approach
We are explicitly looking for:
• A clear MVP-first approach,
• Followed by iterative improvement if required.
This project is intended to replace expensive commercial extensions, so clarity, robustness and cost-efficiency are key.
________________________________________
✔️ Summary Sentence (for freelancer filtering)
UX similar to Pomerol, writeback capabilities similar to Vizlib, backend logic in PHP/MySQL, real-time HTTPS POST, Analyzer license compatible.
Show More