Eddy Dev Handbook
Audits

Record Lists Audit

Audit of record list implementations and UX improvements

Record Lists Audit

Source: This page is based on docs/RECORD_LISTS_AUDIT.md

Last Updated: January 17, 2026
Status: Draft


Executive Summary

Eddy currently has 6 primary record list implementations, all using AG-Grid with similar styling and functionality. While these lists serve their basic purpose of displaying tabular data, they lack modern UX features like advanced filtering, alternative views, tagging, and visual differentiation.

Note: One list (pages/sessions/index.tsx) already has basic filtering UI (Active/Completed/All buttons), demonstrating user demand for this functionality. Our improvements should build on what works rather than replace it.


Current Implementations

1. Workflows List

Location: pages/workspaces/[groupId]/workflows/index.tsx

Purpose: Display all workflows in a workspace

Columns:

  • Name (clickable to workflow detail)
  • ID (truncated)
  • Author (clickable to user profile)
  • Pre-assigned roles (with avatars)
  • Created date
  • Last updated date

Features:

  • Row selection (checkboxes, but no bulk actions implemented)
  • Create new workflow button
  • Permission-based create button disable
  • Basic sorting

Missing:

  • Search/filter functionality
  • Tags (workflows could be tagged by department, complexity, status)
  • Status indicators (draft, published, archived)
  • Session count ("15 active sessions")
  • Recent activity indicator
  • Alternative views (card grid)

2. Sheets List

Location: pages/workspaces/[groupId]/sheets/index.tsx

Purpose: Display all sheets in a workspace

Columns:

  • Name (clickable to sheet detail)
  • Created at
  • Author (clickable to user profile)
  • Associated Workflows (tags showing linked workflows)

Features:

  • Row selection (checkboxes, but no bulk actions implemented)
  • Create new sheet modal
  • Associated workflow tags (clickable, with tooltips)
  • Has a search state variable but no UI implementation
  • quickFilterText prop passed to AG-Grid (not wired to UI)

Missing:

  • Search UI (the backend support exists!)
  • Filter by author, date range
  • Filter by associated workflow
  • Row count indicator
  • Tags for categorization (beyond workflow associations)
  • Record count in sheet
  • Last modified date

3. Sessions List

Location: pages/workspaces/[groupId]/sessions/index.tsx

Purpose: Display all workflow sessions in a workspace

Columns:

  • Name (clickable to session detail)
  • Initiator (clickable to user profile)
  • Assignees (avatar stack)
  • Started date
  • Progress (e.g., "5 stages completed")
  • Completed date

Features:

  • Row selection (checkboxes, but no bulk actions implemented)
  • Create new session button
  • Basic sorting

Missing:

  • Status filter (active/completed/overdue)
  • Search by name or initiator
  • Filter by workflow
  • Filter by assignee
  • Filter by date range
  • Tags (e.g., "urgent", "on-hold", "escalated")
  • Visual status indicators (color coding)
  • Overdue highlighting
  • Session duration display
  • Alternative views (kanban by status, timeline view)

4. Sessions Modal

Location: components/builder/modals/SessionsModal.tsx

Purpose: Display sessions for a specific workflow (modal context)

Context: Opened from workflow builder to view all sessions of that workflow

Columns:

  • Name (clickable to session)
  • Initiator (clickable to user profile)
  • Assignees (avatar stack)
  • Started date
  • Progress (stages completed)
  • Completed date

Features:

  • Summary stats at top (Active count, Completed count, Total count)
  • Lazy loading (only fetches when modal is open)
  • Full-screen modal

Missing:

  • All the same as Sessions List above
  • Could benefit from charts/visualizations given the summary stats
  • Export functionality
  • Date range selector

5. User Sessions List

Location: pages/sessions/index.tsx

Purpose: Display all sessions for the current user (across all workspaces)

Context: User-scoped view (not workspace-specific)

Columns:

  • Name (clickable to session detail)
  • ID (truncated)
  • Workflow name
  • Workspace name
  • Status (Active/Completed with badges)
  • Started date
  • Completed date

Features:

  • Status filter buttons (Active/Completed/All) - ✅ Already implemented!
  • Basic sorting
  • Status badges with color coding

Missing:

  • Search functionality
  • Filter by workspace
  • Filter by workflow
  • Date range selector
  • Overdue highlighting

6. Group Members List

Location: pages/workspaces/[groupId]/members/index.tsx

Purpose: Display all members of a workspace

Columns:

  • Name (with avatar)
  • Email
  • Role (Admin/Member/Guest)
  • Joined date
  • Last active

Features:

  • Invite new member button
  • Role badges
  • Basic sorting

Missing:

  • Search by name or email
  • Filter by role
  • Bulk actions (change role, remove members)
  • Activity indicators
  • Permission details

Common Patterns

What Works Well

  1. AG-Grid - Solid foundation with good performance
  2. Consistent styling - Similar look and feel across lists
  3. Avatar stacks - Good visual representation of users
  4. Clickable entities - Easy navigation to details
  5. Status badges - Clear visual indicators (where implemented)

What's Missing Across All Lists

  1. Search - No global search functionality
  2. Advanced filtering - Limited or no filter options
  3. Bulk actions - Row selection exists but no actions
  4. Alternative views - Only table view available
  5. Export - No data export functionality
  6. Saved views - Can't save filter/sort preferences
  7. Column customization - Can't show/hide columns

Proposed Improvements

Phase 1: Essential Features

Priority: High

  1. Global Search

    • Add search bar above each list
    • Search across all visible columns
    • Debounced input for performance
  2. Basic Filters

    • Status filters (where applicable)
    • Date range filters
    • Author/assignee filters
  3. Bulk Actions

    • Archive/delete selected items
    • Change status (where applicable)
    • Export selected items

Phase 2: Enhanced UX

Priority: Medium

  1. Alternative Views

    • Card grid view
    • Kanban view (for sessions)
    • Timeline view (for sessions)
  2. Tags & Labels

    • User-defined tags
    • Color coding
    • Tag filtering
  3. Saved Views

    • Save filter/sort preferences
    • Share views with team
    • Default views per user

Phase 3: Advanced Features

Priority: Low

  1. Column Customization

    • Show/hide columns
    • Reorder columns
    • Column width preferences
  2. Export Functionality

    • CSV export
    • PDF export
    • Filtered export
  3. Analytics & Insights

    • Summary statistics
    • Trend charts
    • Activity heatmaps

Implementation Recommendations

1. Create Shared Components

Build reusable components for common patterns:

<RecordListHeader />

  • Search bar
  • Filter dropdowns
  • View switcher
  • Bulk action buttons

<RecordListFilters />

  • Configurable filter options
  • Date range picker
  • Multi-select dropdowns

<RecordListBulkActions />

  • Action menu
  • Confirmation dialogs
  • Progress indicators

2. Standardize Data Fetching

Create consistent hooks for list data:

// ✅ GOOD: Consistent pattern
const {
  data,
  isLoading,
  filters,
  setFilters,
  search,
  setSearch,
  selectedRows,
  bulkAction
} = useRecordList({
  type: 'workflows',
  workspaceId
})

3. Progressive Enhancement

Start with existing lists that need it most:

  1. Sessions List - Already has filter buttons, build on that
  2. Workflows List - High traffic, needs search
  3. Sheets List - Backend support exists, just needs UI

On this page