Personal Workspace
This document outlines a Beta feature currently in progress. Until the Beta label is removed from both this notice and the feature in the Holistics' platform, it should not be regarded as part of our official documentation. Please note that this feature is subject to rapid, iterative changes, and the most current version may vary from what is described here. Contact [email protected] to try it out!
Summary
Transform data exploration from "one-time exploration" to "saved personal dashboards" - users can save their exploration results, build custom dashboards, and create their own analytical workspace within your embedded portal.
Before vs. After
Before (data exploration) | After (personal workspace) |
---|---|
❌ Can't customize analytics to personal needs | ✅ Create personalized dashboards |
❌ Great exploration results get lost when session ends | ✅ Save exploration results as personal dashboards |
❌ Repeat same exploration work daily | ✅ Build once, use forever |
❌ "I found something great yesterday but can't recreate it" | ✅ "Here's my custom dashboard for this analysis" |
Problem & Solution
Problem
You've enabled data exploration and users love it. Success breeds valuable exploration results - users are finding insights through interactive exploration. Soon you're managing:
- Lost exploration syndrome - users create valuable exploration results but lose them when the session ends
- Repeated exploration work - users recreate the same exploration daily because they can't save it
- Personalization requests - users want dashboards tailored to their own needs
The Breaking Point: You realize users create valuable work that just disappears, wasting results that could become useful personal dashboards.
Solution: Personal Analytics
Personal Workspace lets users save their exploration results as personal dashboards they can access anytime.
What Personal Workspace Enables:
Save Exploration Results:
- Convert any data exploration into a saved dashboard
- Save "work-in-progress" data exploration for later refinement
Create Personal Dashboards:
- Build new dashboards from scratch in the personal workspace
- Clone prebuilt dashboards and customize them for personal needs
- Combine different exploration results into custom dashboards
Manage Personal Content:
- View all personal dashboards in a simple list
- Edit and update personal dashboards over time
- Delete dashboards that are no longer needed
How-to/Technical Setup
Enable personal workspace by adding user identification to your embed payload. See Getting Started for portal creation and integration details.
const embed_payload = {
object_name: 'analytics_hub',
object_type: 'EmbedPortal',
embed_user_id: current_user.id, // Required for personal workspace
permissions: {
enable_personal_workspace: true, // Enable personal space
},
user_attributes: {
company_id: user.company_id,
}
};
What this enables:
- Users can save exploration results as personal dashboards
- Users can create new dashboards from scratch in their personal space
- Personal content is completely isolated per user
User Isolation: Each user must have a unique embed_user_id
(like email, user ID, or username). Personal content is completely isolated - users can only access their own dashboards. Same user ID across sessions = same personal workspace.
🔒 Personal Workspace Security & Best Practices
Security Model: Personal workspaces are isolated by embed_user_id
+ embed_org_id
combination. This prevents data breaches and ensures users cannot share personal content across organizations.
For detailed security architecture explanation, see Getting Started - Workspace Security Isolation.
Personal Workspace Implementation Best Practices
✅ Recommended Patterns for Personal Workspaces
// DO: Stable organization boundaries for personal content
function enablePersonalWorkspace(userId, companyId) {
return {
embed_user_id: userId,
embed_org_id: companyId, // ✅ Reflects actual organizational boundary
permissions: {
enable_personal_workspace: true
}
}
}
// DO: Use attributes for personal workspace features
function personalWorkspaceWithAccess(userId, companyId, datasource, region) {
return {
embed_user_id: userId,
embed_org_id: companyId, // ✅ Maintains secure organizational boundary
user_attributes: {
datasource: datasource, // ✅ Controls data access for personal dashboards
user_region: region // ✅ Controls regional data access
},
permissions: {
enable_personal_workspace: true
}
}
}
❌ Anti-Patterns for Personal Workspaces
// DON'T: Region-based personal workspaces
function personalWorkspaceByRegion(userId, region) {
return {
embed_user_id: userId,
embed_org_id: region + '_' + userId, // ❌ Personal content fragmented across regions
permissions: {
enable_personal_workspace: true
}
}
}
Feature Ecosystem Position
This Feature Enables:
- Shared Workspace: Users promote personal insights to team collaboration
- Data Monetization: Personal workspace becomes a premium feature tier
- Admin Management: Governance over user-generated personal content