Skip to content

Multi-Tenant UX Redesign — Non-Technical User Research

Project: Forma3D.Connect
Version: 1.0
Date: February 24, 2026
Status: Research


Executive Summary

As Forma3D.Connect moves toward multi-tenancy, the UI must serve non-technical small business owners — not just developer-operators. The current screens expose raw technical details (UUIDs, webhook URLs, build numbers, event payloads) that are meaningful to engineers but confusing or intimidating to merchants running a 3D print shop.

This document audits every screen, identifies "programmer-facing" patterns, and proposes a redesign direction inspired by Shopify Polaris, modern SaaS dashboard best practices, and the principle that dashboards should be decision interfaces, not reporting surfaces.

Core Design Principles (from research)

Principle Source Application
Progressive disclosure Shopify Polaris Show simple first, reveal complexity on demand
Plain language Polaris — 7th-grade reading level Replace jargon with terms merchants use
5-second rule SaaS UX best practices Key insight visible within 5 seconds
Role-based views Multi-tenant SaaS patterns Admin sees system details; tenant sees their business
Decision-first Groto SaaS UX research Start with "what should I do?" not raw data

Table of Contents

  1. Screen-by-Screen Audit
  2. Terminology Mapping
  3. Proposed Mockups
  4. Role-Based View Strategy
  5. Navigation Redesign
  6. Implementation Priority
  7. References

1. Screen-by-Screen Audit

1.1 Dashboard

Current state:

Current Dashboard

Element Problem Severity
System Health card Shows "Database: Connected", "Uptime: 7h 19m", "Gateway: 20260224090225" — meaningless to merchants High
"Gateway" build number Raw build timestamp, no user value High
"Active Print Jobs" stat Links to ?hasActivePrintJobs=true — exposes query param logic Low
Welcome card "Shopify Integration / SimplyPrint Sync / Real-time Tracking" are feature badges, not user benefits Medium
Chart titles "Orders by Status", "Print Jobs by Status" — functional but cold Low

What's good:

  • Stat cards with deltas ("+1 from yesterday") — great for decision-making
  • Donut charts with center totals
  • Recent orders list with status badges

1.2 Orders List

Current state:

Current Orders List

Element Problem Severity
UUID shown under order number ada7c123..., 3de5b04... — no user value High
ALL-CAPS statuses PROCESSING, COMPLETED, CANCELLED — reads like error codes Medium
"Items" column Shows 1 item(s) — the (s) is programmer pluralization Low
Progress bar Good concept but no label explaining what it tracks Medium
No visual priority Failed orders look the same as completed ones at a glance High

What's good:

  • Search bar
  • Status filter dropdown
  • Pagination

1.3 Order Detail

Current state:

Current Order Detail

Element Problem Severity
"SP: 19e5b6e3-80ca-44e1-b6e9-35465fed84ef" Raw SimplyPrint job UUID in the Print Jobs section Critical
"SKU: NOSKU-15545035882688" Auto-generated SKU is ugly and meaningless Medium
"SpeedBoatRace_Bambu Pla Basic(A1)-white.gcode" Raw technical filename shown as print job title High
"Forma3D-R2D2" Printer identifier jargon Low
"Qty: 1 — PENDING" Status as raw text, no visual indicator Medium
"Download Label" / "Regenerate" Good actions, but "Regenerate" is unclear — regenerate what? Medium

What's good:

  • Card-based layout with clear sections
  • Customer info prominently displayed
  • Tracking link is clickable
  • "View Activity Logs" link for cross-referencing

1.4 Product Mappings — List

Current state:

Current Product Mappings List

Element Problem Severity
"TYPE" column showing "Parts" Unclear — what else could it be? Medium
SKU as monospace code GF-100x100-IP-NOMAG looks like a code snippet, not a product reference Low
Column "PARTS" "1 part(s)" — programmer pluralization again Low
"Product Mappings" title "Mapping" is integration jargon — merchants think "products" High

What's good:

  • Clean table layout
  • Edit/delete actions
  • Search functionality
  • "+ Add Mapping" CTA

1.5 Product Mappings — Edit Form

Current state:

Current Product Mapping Edit

Element Problem Severity
"SimplyPrint File ID" Raw UUID 7c529074b1b935186462307ef44bda3403837496a13cf... Critical
"Shopify Product ID" Exposes system identifier High
"Shopify Variant ID" Optional but still jargon High
"Parts to Print" heading Technical framing — merchants think "which files to print" Medium
"File Name" GF-100x100-IP-NOMAG_plate1.3mf — raw filename Low
"Quantity Per Product" Clear, but positioned oddly Low

What's good:

  • "Browse" button for file selection
  • Section-based card layout
  • "Select from Shopify" button

1.6 Activity Logs

Current state:

Current Activity Logs

Element Problem Severity
Entire page This is essentially a developer console — raw event streams Critical
Event types like simplyprint_state, enterprise_event Internal system names Critical
Raw timestamps ISO-format-like timestamps in columns High
Orange "API" badges "API" is a developer concept High
Payload preview in table Shows JSON-like content Critical
No human-readable descriptions No sentence like "Print job completed for Order #1031" Critical

What's good:

  • Filtering capabilities (type, date range, status)
  • Pagination
  • Timestamp ordering

1.7 Settings — Main

Current state:

Current Settings

Element Problem Severity
"Service Versions" table Build numbers 20260224190203, semantic versions, uptimes Critical
"API URL" https://staging-connect-api... — internal infrastructure Critical
Connection Status "WebSocket: Connected", "API Server: Connected", "Database: Connected" High
"Developer Tools" section Should be hidden for non-admin tenants Critical
"Audit Logs" link Different from Activity Logs — confusing Medium
"Frontend Version (server/client)" Build numbers visible High
"Environment: staging" Internal environment label High

What's good:

  • Theme toggle (Light/Dark/System)
  • Notification preferences
  • PWA install option
  • Session management

1.8 Settings — Integrations

Current state:

Current Integrations

Element Problem Severity
"Company ID: 48864" SimplyPrint internal ID — no user value High
"Webhook Active" / "No Secret" badges Webhook is a developer concept Critical
"Webhook secret verification is disabled" Security warning in developer jargon Critical
Raw Webhook URL https://staging-connect-api.forma3d.be/webhooks/sendcloud Critical
"Configure in Sendcloud dashboard" instruction Requires technical setup High

What's good:

  • Connected/Disconnected status
  • "Connect Shopify Store" flow with clear steps
  • Default shipping settings
  • Last verified date

2. Terminology Mapping

Replace programmer terms with merchant-friendly language:

Current (Technical) Proposed (Merchant) Context
Product Mapping Products / Product Setup Navigation, page titles
SKU Product Code Tables, forms
SimplyPrint File ID Print File Forms
Parts to Print Print Files Form sections
Quantity Per Product Copies per Order Forms
Activity Logs Activity / History Navigation
Webhook Automatic Updates Settings
API URL — (hide entirely) Settings
Gateway System Dashboard
Build Number — (hide for tenants) Settings
Company ID — (hide for tenants) Settings
Uptime — (replace with "Last checked: 2 min ago") Dashboard
Database: Connected — (roll into single "All Systems Normal") Dashboard
PROCESSING Processing Status badges
COMPLETED Completed Status badges
CANCELLED Cancelled Status badges
(s) pluralization Proper pluralization: "1 part" / "3 parts" Tables

3. Proposed Mockups

3.1 Dashboard — Merchant View

Replace System Health with a simple status indicator. Lead with actionable information.

Proposed mockup:

Mockup — Dashboard Merchant View

ASCII wireframe
┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│  Good morning, Jan                         ● All systems normal      │
│  Here's what's happening with your print farm today.                 │
│                                                                      │
├──────────┬──────────┬──────────┬──────────────────────────────────────┤
│          │          │          │                                      │
│ 🟡 0     │ 🔵 4     │ 🟢 4    │  ⚠ 3 Need Your Attention            │
│ Waiting  │ In       │ Printing │  2 failed prints, 1 delayed         │
│          │ Progress │ Now      │  → Review Issues                     │
│          │          │          │                                      │
├──────────┴──────────┴──────────┴──────────────────────────────────────┤
│                                                                      │
│  What's printing               │  Recent Orders                      │
│  ────────────────               │  ──────────────                     │
│                                │                                      │
│  ● Colored Benchy              │  #1032 · Jan Wielemans              │
│    Printer: Bambu A1           │  Colored Benchy (White)             │
│    ████████████░░░ 78%         │  ● Processing                       │
│    Est. 45 min remaining       │                                      │
│                                │  #1031 · Jan Wielemans              │
│  ● GridFlock Plate             │  Colored Benchy (White)             │
│    Printer: Bambu A1 #2        │  ✓ Completed · Shipped              │
│    Queued                      │                                      │
│                                │  #1030 · Jan Wielemans              │
│                                │  Benchy                              │
│                                │  ● Processing                       │
│                                │                                      │
├────────────────────────────────┴──────────────────────────────────────┤
│                                                                      │
│  This Week                     │  Order Trend — Last 30 Days         │
│  ──────────                    │  ─────────────────────────           │
│  Revenue: €22                  │                                      │
│  Orders: 5                     │  [sparkline chart]                   │
│  Shipped: 3                    │                                      │
│                                │                                      │
└────────────────────────────────┴──────────────────────────────────────┘

Key changes:

  • Personal greeting replaces cold "Dashboard" title
  • "All systems normal" replaces System Health card (single green dot instead of 4 technical metrics)
  • "Need Your Attention" card is action-oriented ("Review Issues" link) instead of passive stat
  • "What's printing" shows printer-friendly progress with time estimates
  • Revenue/orders summary replaces analytics jargon
  • No build numbers, no uptime, no gateway version

3.2 Orders List — Merchant View

Proposed mockup:

Mockup — Orders List Merchant View

ASCII wireframe
┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│  Orders                                    [All Statuses ▾]          │
│  Track and manage your customer orders                               │
│                                                                      │
│  🔍 Search by order number or customer...                            │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ⚠ 3 orders need attention — 2 failed prints, 1 missing mapping     │
│     → View issues                                                    │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ORDER        DATE             CUSTOMER         STATUS       PRINT   │
│  ─────        ────             ────────         ──────       ─────   │
│                                                                      │
│  #1032        Feb 23, 2026     Jan Wielemans    ● Processing ░░░░    │
│  1 item       9:06 AM                           ⚠ 1 issue           │
│                                                                      │
│  #1031        Feb 21, 2026     Jan Wielemans    ✓ Completed  ████   │
│  1 item       9:19 AM                           📦 Shipped           │
│                                                                      │
│  #1030        Feb 20, 2026     Jan Wielemans    ● Processing ██░░   │
│  2 items      3:42 PM                                                │
│                                                                      │
│  #1029        Feb 18, 2026     Jan Wielemans    ● Processing ░░░░   │
│  1 item       1:42 PM                                                │
│                                                                      │
│  #1027        Feb 18, 2026     Jan Wielemans    ✗ Failed     ░░░░   │
│  1 item       1:28 PM                           ⚠ 1 issue           │
│                                                                      │
│  #1026        Feb 18, 2026     Jan Wielemans    — Cancelled          │
│  2 items      8:52 AM                                                │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│  ‹ Previous    1   2    Next ›              Showing 1–25 of 29       │
└──────────────────────────────────────────────────────────────────────┘

Key changes:

  • No UUIDs visible anywhere
  • Statuses use sentence case with icon indicators (●, ✓, ✗, —)
  • Alert banner at the top surfaces issues proactively
  • "PRINT" column shows a simple progress bar
  • Shipping status shown inline ("📦 Shipped") instead of separate column
  • Issue badges ("⚠ 1 issue") replace technical error counts

3.3 Order Detail — Merchant View

Proposed mockup:

Mockup — Order Detail Merchant View

ASCII wireframe
┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│  ← Back to Orders                                                    │
│                                                                      │
│  Order #1031                             ✓ Completed                 │
│  Feb 21, 2026 at 9:19 AM                                            │
│                                                                      │
├─────────────────────────────────┬────────────────────────────────────┤
│                                 │                                    │
│  Customer                       │  What to Do                        │
│  ─────────                      │  ──────────                        │
│  Jan Wielemans                  │  ✓ All items printed               │
│  jan.wielemans@devgem.be        │  ✓ Shipping label created          │
│                                 │  ✓ Package shipped                 │
│  📦 Home Delivery               │                                    │
│  Floraliënlaan 519              │                                    │
│  Antwerpen, 2610                │  Total: €3.00                      │
│  Belgium                        │                                    │
│                                 │                                    │
├─────────────────────────────────┼────────────────────────────────────┤
│                                 │                                    │
│  Items Ordered                  │  Shipping                          │
│  ──────────────                 │  ────────                          │
│                                 │                                    │
│  🎨 Colored Benchy              │  Status: 📦 In Transit             │
│     White · Qty: 1              │  Carrier: Sendcloud                │
│                                 │  Method: Unstamped letter          │
│                                 │  Tracking: SCCWF3PD62WG →         │
│                                 │                                    │
│                                 │  ↓ Download Label                  │
│                                 │  ↻ Create New Label                │
│                                 │  ✕ Cancel Shipment                 │
│                                 │                                    │
├─────────────────────────────────┴────────────────────────────────────┤
│                                 │                                    │
│  Printing Progress              │                                    │
│  ─────────────────              │                                    │
│                                 │                                    │
│  ✓ Colored Benchy — White       │                                    │
│    Printer: Bambu A1            │                                    │
│    ✓ Completed                  │                                    │
│                                 │                                    │
│                                 │                                    │
│  ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─                                    │
│  View full activity log →       │                                    │
│                                 │                                    │
└─────────────────────────────────┴────────────────────────────────────┘

Key changes:

  • No UUIDs, no SP: 19e5b... identifiers anywhere
  • "Actions" replaced with "What to Do" — a checklist of the fulfillment flow
  • Print job shows product name + color instead of raw .gcode filename
  • Printer shown by friendly name only
  • "Regenerate" renamed to "Create New Label" (clear action)
  • Technical SKU hidden (available via expanding "Item details" if needed)

3.4 Products — List (renamed from "Product Mappings")

Proposed mockup:

Mockup — Products List Merchant View

ASCII wireframe
┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│  Products                                  [+ Add Product]           │
│  Your Shopify products and their print files                         │
│                                                                      │
│  🔍 Search products...                                               │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  PRODUCT         PRODUCT NAME              PRINT FILES   ACTIONS     │
│  CODE                                                                │
│  ───────         ────────────              ───────────   ───────     │
│                                                                      │
│  BENCHY          Benchy                    1 file        ✎  🗑       │
│                                                                      │
│  BENCHY-GREY     Colored Benchy            1 file        ✎  🗑       │
│                  Grey variant                                        │
│                                                                      │
│  BENCHY-WHITE    Colored Benchy            1 file        ✎  🗑       │
│                  White variant                                       │
│                                                                      │
│  GF-100x100-     GridFlock 100x100mm      1 file        ✎  🗑       │
│  IP-NOMAG        Auto-generated by                                   │
│                  GridFlock pipeline                                   │
│                                                                      │
│  PAPERCLIP       Paperclip                 1 file        ✎  🗑       │
│                  Less-than-a-minute                                   │
│                  test model                                           │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

Key changes:

  • Renamed from "Product Mappings" to "Products"
  • "SKU" → "Product Code"
  • "TYPE" column removed (no user value)
  • "PARTS" → "PRINT FILES" with "1 file" / "3 files" (proper pluralization)
  • Subtitle shows description/variant info
  • "Use existing" option removed from top-level (moved into add flow)

3.5 Products — Edit Form (renamed from "Edit Product Mapping")

Proposed mockup:

Mockup — Product Edit Merchant View

ASCII wireframe
┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│  ← Back to Products                                                  │
│                                                                      │
│  Edit Product                                                        │
│  Connect a Shopify product to its 3D print files                     │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  Product Details                                                     │
│  ───────────────                                                     │
│                                                                      │
│  Shopify Product          [Select from Shopify ▾]                    │
│  ┌────────────────────────────────────────────┐                      │
│  │ GridFlock 100x100mm (IP)                   │                      │
│  │ GF-100x100-IP-NOMAG                        │  ← auto-filled     │
│  └────────────────────────────────────────────┘                      │
│                                                                      │
│  Description (optional)                                              │
│  ┌────────────────────────────────────────────┐                      │
│  │ Auto-generated by GridFlock pipeline...    │                      │
│  └────────────────────────────────────────────┘                      │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  Print Files                                         [+ Add File]   │
│  Which 3D files should be printed for this product?                  │
│  ───────────────────────────────────────────────────                  │
│                                                                      │
│  ┌────────────────────────────────────────────────────────────┐      │
│  │                                                            │      │
│  │  📄 File 1                                          [🗑]   │      │
│  │                                                            │      │
│  │  Name:    Plate 1                                          │      │
│  │  File:    GF-100x100-IP-NOMAG_plate1.3mf                  │      │
│  │           [Browse Print Files...]                          │      │
│  │  Copies:  [1]                                              │      │
│  │                                                            │      │
│  └────────────────────────────────────────────────────────────┘      │
│                                                                      │
│                                        [Cancel]  [Save Product]      │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

Key changes:

  • Title: "Edit Product" instead of "Edit Product Mapping"
  • "Shopify Product" replaces separate "Shopify Product ID" and "Shopify Variant ID" fields — single dropdown selector
  • Raw SimplyPrint File ID replaced with a file browser — UUID hidden entirely
  • "Parts to Print" → "Print Files" with natural question "Which 3D files should be printed?"
  • "Quantity Per Product" → "Copies" (single word, obvious meaning)
  • "Update Mapping" → "Save Product"
  • SKU and Variant ID are auto-derived, not exposed as separate form fields

3.6 Activity — Merchant View (renamed from "Activity Logs")

The current screen is a raw developer event log. For tenants, replace with a human-readable timeline.

Proposed mockup:

Mockup — Activity Merchant View

ASCII wireframe
┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│  Activity                                          [Export CSV]      │
│  What's been happening in your account                               │
│                                                                      │
│  🔍 Search...               [All Types ▾]  [Last 7 Days ▾]          │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  Today                                                               │
│  ─────                                                               │
│                                                                      │
│  9:06 AM   📦 New order received                                     │
│            Order #1032 — Colored Benchy (White) — €3.00              │
│            Customer: Jan Wielemans                                    │
│                                                                      │
│  9:06 AM   🖨 Print job started                                      │
│            Colored Benchy sent to Bambu A1                            │
│            Order #1032                                               │
│                                                                      │
│  Yesterday                                                           │
│  ─────────                                                           │
│                                                                      │
│  2:15 PM   ✓ Print job completed                                     │
│            Colored Benchy finished on Bambu A1                        │
│            Order #1031                                               │
│                                                                      │
│  2:16 PM   📮 Shipping label created                                 │
│            Sendcloud — Unstamped letter                               │
│            Tracking: SCCWF3PD62WG                                    │
│            Order #1031                                               │
│                                                                      │
│  2:20 PM   🚚 Package shipped                                        │
│            In transit via Sendcloud                                   │
│            Order #1031                                               │
│                                                                      │
│  Feb 20                                                              │
│  ──────                                                              │
│                                                                      │
│  1:42 PM   ⚠ Print job failed                                        │
│            Benchy failed on Bambu A1 — filament runout               │
│            Order #1027                                               │
│            → Retry Print                                             │
│                                                                      │
│  1:28 PM   ✗ Order marked as failed                                  │
│            Could not complete printing for Order #1027               │
│            → View Order                                              │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│  ‹ Previous    1   2   3    Next ›                                   │
└──────────────────────────────────────────────────────────────────────┘

Key changes:

  • Completely replaces the raw event table with a human-readable timeline
  • Each event is a plain-English sentence with context
  • Grouped by day with relative labels ("Today", "Yesterday")
  • Icons replace colored "API" / "WARN" badges
  • Failed events include actionable links ("→ Retry Print")
  • No event types, no JSON payloads, no raw timestamps
  • Filters simplified to "All Types" (Orders / Printing / Shipping) and date range

3.7 Settings — Merchant View

Split settings into two views: Tenant Settings (what merchants see) and Admin Panel (what platform operators see, hidden from tenants).

Proposed mockup:

Mockup — Settings Merchant View

ASCII wireframe
┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│  Settings                                                            │
│  Manage your account and preferences                                 │
│                                                                      │
├──────────────────────────────────┬───────────────────────────────────┤
│                                  │                                   │
│  Appearance                      │  Account                          │
│  ──────────                      │  ───────                          │
│                                  │                                   │
│  Theme:  [☀ Light] [🌙 Dark]    │  Name: Jan Wielemans              │
│          [💻 System]             │  Email: jan@devgem.be             │
│                                  │  Role: Owner                      │
│                                  │                                   │
│                                  │  [Sign Out]                       │
│                                  │                                   │
├──────────────────────────────────┼───────────────────────────────────┤
│                                  │                                   │
│  Notifications                   │  Connected Services               │
│  ─────────────                   │  ──────────────────               │
│                                  │                                   │
│  Push Notifications  [On] [Off]  │  🛒 Shopify                       │
│                                  │     forma3d-dev.myshopify.com     │
│  □ Order updates                 │     ● Connected                   │
│  ☑ Print completions             │     [Manage →]                    │
│  ☑ Shipping updates              │                                   │
│  ☑ Issues & alerts               │  🖨 SimplyPrint                   │
│                                  │     ● Connected                   │
│                                  │     [Manage →]                    │
│                                  │                                   │
│                                  │  📦 Sendcloud                     │
│                                  │     ● Connected                   │
│                                  │     [Manage →]                    │
│                                  │                                   │
├──────────────────────────────────┼───────────────────────────────────┤
│                                  │                                   │
│  Install App                     │  Shipping Defaults                │
│  ───────────                     │  ─────────────────                │
│                                  │                                   │
│  📱 Install as app on your       │  Default Method:                  │
│     device for quick access      │  [Unstamped letter ▾]             │
│     [Install]                    │                                   │
│                                  │  Default Address:                 │
│                                  │  [DevGem — Floraliënlaan 519 ▾]  │
│                                  │                                   │
│                                  │  [Save Defaults]                  │
│                                  │                                   │
└──────────────────────────────────┴───────────────────────────────────┘

What's removed for tenants:

  • System Health / Connection Status (WebSocket, API, Database)
  • Service Versions table
  • API URL
  • Frontend/Gateway version numbers
  • Environment label
  • Developer Tools section
  • Audit Logs (admin-only)
  • Webhook URLs and secrets
  • Company IDs

3.8 Integrations — Merchant View (via "Manage →" from Settings)

Proposed mockup:

Mockup — Integration Merchant View

ASCII wireframe
┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│  ← Settings                                                          │
│                                                                      │
│  Shopify Connection                                                  │
│  Manage your Shopify store connection                                │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  🛒 forma3d-dev.myshopify.com                                        │
│     Connected since Feb 12, 2026           ● Active                  │
│                                                                      │
│     Orders are automatically imported from this store.               │
│     Products are synced for use in your product setup.               │
│                                                                      │
│     [Disconnect Store]                                               │
│                                                                      │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  Connect Another Store                                               │
│  ─────────────────────                                               │
│                                                                      │
│  1. Click "Connect Shopify Store" and enter your store domain        │
│  2. You'll be redirected to Shopify to authorize the connection      │
│  3. After authorization, orders will automatically sync              │
│                                                                      │
│  [🔗 Connect Shopify Store]                                          │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

Key changes:

  • Each integration gets its own page (accessed via "Manage →")
  • No webhook URLs, no Company IDs, no API URLs
  • Plain-English description of what the connection does
  • Simple connected/disconnected status
  • "How it works" instructions remain (already good)

4. Role-Based View Strategy

Multi-tenancy requires separating what different roles see:

┌──────────────────┬─────────────────────────┬──────────────────────────┐
│     Feature      │  Tenant (Merchant)      │  Platform Admin          │
├──────────────────┼─────────────────────────┼──────────────────────────┤
│ Dashboard        │ Business metrics only   │ + System Health full     │
│ Orders           │ Their orders only       │ All orders, all tenants  │
│ Products         │ Their products only     │ All mappings             │
│ Activity         │ Timeline view           │ + Raw event log toggle   │
│ Settings         │ Preferences only        │ + Developer Tools        │
│ Integrations     │ Connected/Disconnect    │ + Webhook config         │
│ Service Versions │ Hidden                  │ Full version table       │
│ API Docs         │ Hidden                  │ Swagger link             │
│ Audit Logs       │ Hidden                  │ Full audit trail         │
│ User Management  │ Hidden                  │ CRUD users               │
│ Navigation       │ 4 items                 │ 6+ items                 │
└──────────────────┴─────────────────────────┴──────────────────────────┘

Tenant navigation (4 items):

┌──────────────────┐
│  FORMA 3D        │
│                  │
│  🏠 Home         │
│  📦 Orders       │
│  🖨 Products     │
│  ⚙ Settings      │
│                  │
│                  │
│                  │
│                  │
│                  │
│  Jan W.          │
│  Owner           │
└──────────────────┘

Platform admin navigation (current + admin):

┌──────────────────┐
│  FORMA 3D        │
│                  │
│  🏠 Dashboard    │
│  📦 Orders       │
│  🖨 Products     │
│  📋 Activity     │
│  ⚙ Settings      │
│  ─────────────── │
│  🔧 Admin        │
│    → Users       │
│    → Audit Log   │
│    → Dev Tools   │
│                  │
│  Jan W.          │
│  Admin           │
└──────────────────┘

5. Navigation Redesign

Current → Proposed

Current Proposed (Tenant) Rationale
Dashboard Home Warmer, less technical
Orders Orders Already good
Product Mappings Products "Mapping" is integration jargon
Activity Logs Activity "Logs" implies raw text output
Settings Settings Already good

Additional simplifications:

  • Sidebar footer: Remove "Frontend Version 20260223205520" — no tenant value
  • "Connected" indicator: Keep but simplify to just a green dot (no label)
  • Header bar: Remove "Live" badge text, keep green dot only

6. Implementation Priority

Prioritized by impact on non-technical user perception:

Priority Change Effort Impact
P0 Hide UUIDs from all tenant-facing views Small Critical
P0 Rename "Product Mappings" → "Products" in nav + all pages Small High
P0 Hide System Health, Service Versions, API URL for tenant role Medium Critical
P0 Hide Developer Tools, Audit Logs for tenant role Small Critical
P1 Sentence-case all status badges (PROCESSING → Processing) Small Medium
P1 Hide webhook URLs and Company IDs for tenant role Small High
P1 Replace "Activity Logs" raw event table with timeline view Large Critical
P1 Rename "Activity Logs" → "Activity" in navigation Small Medium
P1 Replace .gcode filenames in Print Jobs with product names Medium High
P2 Personal greeting on dashboard ("Good morning, Jan") Small Medium
P2 Simplify Product edit form (hide raw IDs behind browse UX) Medium High
P2 Consolidate Settings page for tenant view Medium High
P2 Fix (s) pluralization across all views Small Low
P3 Separate navigation for tenant vs admin roles Medium High
P3 "What to Do" checklist on order detail Medium Medium
P3 Progress bar with time estimates on printing status Medium Medium

7. References

Research Sources

Assets

Current screenshotsassets/current-screens/:

File Screen
current-dashboard.png Dashboard
current-orders.png Orders list
current-order-detail.png Order detail
current-mappings-list.png Product Mappings list
current-mapping-edit.png Product Mapping edit form
current-activity-logs.png Activity Logs
current-settings.png Settings
current-integrations.png Settings > Integrations

Proposed mockupsassets/mockups/:

File Screen
mockup-dashboard-merchant.png Dashboard — Merchant view
mockup-orders-list-merchant.png Orders — Merchant view
mockup-order-detail-merchant.png Order Detail — Merchant view
mockup-products-list-merchant.png Products list — Merchant view
mockup-product-edit-merchant.png Product edit form — Merchant view
mockup-activity-merchant.png Activity timeline — Merchant view
mockup-settings-merchant.png Settings — Merchant view
mockup-integration-merchant.png Integration detail — Merchant view