5. Project & Event Listing
Pixally CRMProject & Event Listing
Project & Event Listing
Functional Requirement Document
BA & Ideation: Deval Chauhan
Reviewed By: Keval Gajjar
Updated Date:25 December 2025
Status:
Version: 1.0
Project & Event Listing Module - FRD Summary
Module: Project & Event Listing | FRDs: 5 | Test Cases: 100 | Date: December 25, 2024
FRD #1: Projects Listing
- Hierarchical Display: Master projects → Events → Services structure with collapsible rows
- Columns: Project Name, Event Dates, Client, Brand, Service Areas, Contractor Status Icons, Actions
- Contractor Icons: 4 status indicators (Contract Signed, Invoice Uploaded, Footage Uploaded, Payment Complete)
- Default Sort: Nearest upcoming event date (chronological)
- Search: Real-time filtering by project name, client name, event details
- Filters: Event types, dates, brands, tags, contractors, team members, clients, lead sources, service areas, venues, packages, service types
- Pagination: 10/25/50/100 rows per page (default: 10)
- Bulk Selection: Maximum 50 projects for mass operations
- Auto-refresh: Every 60 seconds for real-time updates
- Lead vs Booked: Auto-conversion on first payment receipt
- Service Areas: Primary shown, additional as "+X more" indicator
- Empty State: Call-to-action button when no projects exist
- Overdue Highlighting: Red text/background for past-due events
FRD #2: Events Listing
- Flattened View: All events across projects without hierarchy
- Event Naming: [Project Name] - [Event Type] auto-generated
- Default Sort: Chronological by event date
- Service Display: Each service on separate line with independent contractor management
- Color Coding: Green (fully assigned), Yellow (partial), Red (unassigned)
- Today's Events: Special highlighting and top positioning
- Multi-day Events: Shows both start and end dates
- Primary Event Badge: Indicates designated primary event
- Check Availability: Direct integration without page navigation
- Duplicate Booking Warning: Icon with conflict details for double-booked contractors
- Package Display: Shows package name and included vs add-on services
- Auto-generated Indicator: Special badge for lead form created events
- Keyboard Navigation: Arrow keys for navigation, spacebar to expand/collapse
- Real-time Sync: Changes reflect immediately in Projects Listing
- Pagination: 20/50/100 rows per page (default: 20)
FRD #3: Create a New Project
- Prerequisites: At least one brand must be configured
- Mandatory Fields: Project Name, Brand, Event Type(s), Event Date(s), Service(s), Client
- Brand Lock: Cannot change brand after project creation
- Event Requirements: Minimum 1 event per project, maximum 10 events
- Service Requirements: Minimum 1 service per event
- Primary Event: Required designation when multiple events selected
- Date Validation: No past dates allowed (Phase 1)
- Multi-day Events: Checkbox enables end date field; non-consecutive dates require separate events
- Service Areas: Multiple geographic locations allowed per event
- Client Management: Link existing or create new; duplicate detection by name/contact
- Duplicate Booking: Warning displayed but creation allowed
- Lead Form Auto-creation: Populates all fields from form submission
- Auto-save: Every 2 seconds to browser storage
- Character Limits: Project name max 100 chars (no < > & " ')
- Event Colors: Uniform across brands via agency settings
- Post-Creation: Redirects to Project Detail page; triggers automation if enabled
FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings
- 3 Locked Stages: New Lead → Booked → Post-Event (cannot delete/reorder)
- Stage Customization: Can rename stages but not delete; add custom statuses within stages
- Visual Design: Blue stages with purple action buttons
- Drag & Drop: Kanban-style status updates with optimistic UI
- Status Deletion Rules: Cannot delete if assigned to events or used in automation
- Status Renaming: Updates all historical and future references globally
- Automation Default: Enabled for new projects
- Automation Triggers: Proposal sent, Contract signed, Payment received, Email sent
- Automation Precedence: Rules override manual changes unless disabled
- Manual Override: Can disable automation globally, per project, or per rule
- Time-based Rules: Status changes X days after trigger event
- Post-Production Logic: Event completes only when all deliverables marked delivered
- No Deliverables: Requires manual completion marking
- Conflict Resolution: Rule priority (1-100) determines execution order
- Bulk Updates: Support for multiple event status changes
- Audit Trail: All changes logged with user and timestamp
FRD #5: Archived Listing
- Archive Scope: Project + all associated events/services archived as unit
- Data Preservation: All data maintained (client info, contractors, payments, activity logs)
- Visual Indicator: Muted colors or "Archived" badge
- Default View: Last 90 days of archived projects
- Search/Filter: Independent from active projects; searches only archived pool
- Restoration Process: Returns to last known status (not initial)
- Restoration Validation: Checks for conflicts, past dates, deleted configurations
- Bulk Restore: Maximum 10 projects simultaneously
- Permanent Delete: Two-step confirmation; appropriate permissions required
- Read-only Access: No modifications to archived data
- Export Formats: CSV, PDF, Excel with all project details
- Activity Log: Complete history including archival action preserved
- Automation Suspension: All rules/triggers disabled on archive
- Archive from Any Status: No restrictions on project state
- Data Retention: Indefinite unless manually deleted
Business Rules & Validations
- Project Hierarchy: Master Project (client folder) → Sub-projects/Events (service dates)
- No Empty Projects: Every project must have ≥1 event, every event must have ≥1 service
- Brand Immutability: Brand cannot change after project creation
- Contractor Tracking: 4 icons per contractor (contract, invoice, footage, payment)
- Pipeline Sync: Project status changes cascade to all events
- Automation Wins: Automation rules always override manual changes when enabled
- Past Date Restriction: Cannot create/restore events with past dates (Phase 1)
- Archive Impact: Archived projects excluded from all active counts/widgets
- Lead Conversion: Automatic on first payment receipt
- Event Limits: Maximum 10 events per project
Integration Points
- Brand Management (required for project creation)
- Client Management (links/creates client records)
- Contractor Management (availability and assignment)
- Payment Tracking (contractor payments per service)
- Pipeline Automation (status triggers and rules)
- Post-Production Board (deliverable completion)
- Dashboard Widgets (real-time count updates)
- Activity Log (complete audit trail)
- Contract Management (signing status)
- Email System (automation triggers)
TBD Items (Requiring PM Confirmation)
- Additional user roles for Phase 2
- Deletion of projects with active automations
- Manual pipeline stage skipping rules
- Automation conflict resolution details
- Check Availability module full integration
- Save & Resume functionality
- Template creation for frequently used configurations
- Notification settings for overdue events
- Reporting module integration specifics
Total: 5 FRDs | 12 Sections Each | 100 Test Cases | 61 Acceptance Criteria
1. Projects Listing
FRD #1: Projects Listing
1. Module Overview
Module Name: Projects Listing
Purpose: The Projects Listing module serves as the primary interface for viewing and managing all client projects within the CRM system, displaying a hierarchical structure where master projects contain multiple events and services.
Business Goals: Enable efficient project management by providing a centralized view of all projects with their associated events, contractor assignments, payment statuses, and operational readiness indicators, facilitating quick identification of projects requiring attention and streamlining workflow management across multiple client engagements.
2. User Roles & Permissions
Role
View Projects
Create Projects
Edit Projects
Delete Projects
Archive Projects
Manage Settings
Owner
Yes
Yes
Yes
Yes
Yes
Yes
Admin
Yes
Yes
Yes
Yes
Yes
Yes
Project Manager
Yes
Yes
Yes
No
Yes
No
Other Roles (TBD for Phase 2)
TBD
TBD
TBD
TBD
TBD
TBD
3. User Flow
Initial Access and Navigation
3.1 The user navigates to the Projects module by clicking on "Projects" in the left sidebar navigation menu.
3.2 The system loads the Projects Listing page with the default "events" tab selected and displays all active events sorted by the nearest upcoming event date. The user navigates to the project to check the project listing.
Viewing and Expanding Project Information
3.3 The user views the project list which shows project names with collapsible rows containing nested events and services information.
3.4 The user clicks on the expand arrow icon next to a project name to view the associated events and services within that project.
3.5 The system expands the project row and displays all events with their dates, assigned contractors, service areas, brands, and status information.
3.6 The user reviews the contractor assignment icons which indicate contract signing status, invoice upload status, raw footage upload status, and payment status for each contractor.
Navigation to Detailed Views
3.7 The user clicks on the "View Details" link for a specific project to navigate to the detailed project view.
3.8 The system redirects the user to the Project Detail page showing comprehensive information about the selected project.
Filtering and Search Operations
3.9 The user applies filters using the filter dropdown to narrow down the project list based on event types, dates, brands, tags, contractors, team members, clients, lead sources, service areas, venues, packages, or service types.
3.10 The system updates the project listing display to show only the projects matching the selected filter criteria.
3.11 The user uses the search bar at the top of the page to search for specific projects by name or client information.
3.12 The system displays search results in real-time as the user types, filtering the project list to match the search query.
Project Creation
3.13 The user clicks on the "New Project" button to initiate the creation of a new project.
3.14 The system opens the Create New Project modal for the user to input project details.
Pagination and Bulk Operations
3.15 The user navigates through pagination controls at the bottom of the list when viewing large numbers of projects.
3.16 The system loads the next or previous page of projects maintaining the current filter and sort settings.
3.17 The user selects multiple projects using checkboxes for bulk actions such as archiving or status updates.
3.18 The system enables bulk action buttons and allows the user to perform the selected action on all checked projects.
4. Functional Logic
Display and Structure
- The Projects Listing module displays all projects in a hierarchical structure where each master project serves as a container for multiple events, and each event contains one or more services.
- When the module initially loads, the system fetches all active projects from the database and sorts them chronologically based on the nearest upcoming event date, ensuring projects with imminent events appear at the top of the list.
- Each project row in the listing displays the project name as the primary identifier, with a collapsible indicator arrow that allows users to expand and view nested events and services.
- Upon expanding a project row, the system reveals all associated events with their scheduled dates, service types, assigned contractors, and operational status indicators.
- For projects with multiple service areas per event, the system displays the primary service area in the collapsed view and indicates additional areas with a "+X more" indicator.
Data Validation and Business Rules
- The system enforces that every project must contain at least one event and every event must have at least one service, preventing the creation of empty projects or events.
- The brand associated with each project remains fixed throughout the project lifecycle and cannot be changed once the project is created, ensuring consistency in brand management.
- When a project contains multiple events scheduled for the same date and time, the system displays all events without conflict warnings, allowing for concurrent event management.
Contractor and Payment Management
- The contractor assignment section within each expanded event displays four critical status icons that track contract signing status, invoice upload status, raw footage upload status, and payment completion status.
- When multiple contractors are assigned to a single event and service combination, the system creates dynamic line items for each contractor, displaying their individual compliance and payment status.
- When displaying contractor payment information, the system calculates and shows the total contractor costs per event rather than client revenue, focusing on operational expenses.
Visual Indicators and Status Management
- The system implements color-coded visual indicators where green checkmarks indicate completed items, yellow indicates pending status, and red indicates overdue or missing items.
- Projects that have been marked as leads display a "Lead" badge, while confirmed bookings show a "Booked" status, with the conversion happening automatically upon first payment receipt.
- For projects with overdue events or missing critical information, the system applies visual highlighting such as red text or background shading to draw attention.
Search and Filter Functionality
- The filter functionality operates with multiple selection capability, allowing users to combine various filter criteria such as event type with date range and contractor availability.
- The search functionality performs real-time string matching against project names, client names, and event descriptions, updating results dynamically as the user types.
- The system maintains filter and sort preferences during the user session, preserving selected criteria when navigating between pages or returning from detail views.
Performance and Data Loading
- The listing automatically refreshes every 60 seconds to capture any updates made by other users, ensuring data currency without requiring manual page refresh.
- The pagination system loads 10 projects per page by default, with options to adjust to 25, 50, or 100 projects per page based on user preference.
- The system implements lazy loading for expanded project details, fetching event and service information only when a user expands a specific project row.
User Interactions and Navigation
- The View Details action for each project opens in the same window by default, with an option to right-click and open in a new tab for multi-project comparison.
- Bulk selection functionality allows users to select up to 50 projects at once for mass operations, with a warning message appearing when attempting to exceed this limit.
- When no projects exist in the system, the module displays an empty state message with a call-to-action button to create the first project.
System Integration and Tracking
- The module integrates with the dashboard widgets to update counts for new events, unassigned contractors, and date-pending events in real-time.
- The system tracks and displays the last modified timestamp for each project, allowing users to identify recently updated projects.
- The system maintains audit logging for all actions performed in the Projects Listing, tracking user actions, timestamps, and changes made for compliance purposes.
5. Field Details & Validations
Field Name
Field Type
Validation Rules
Project Name
Text
Required, Max 100 characters, Alphanumeric and special characters allowed except < > & " '
Event Date
DateTime
Required, Cannot be in the past for Phase 1, Format: MM/DD/YYYY HH:MM AM/PM
Event Type
Dropdown
Required, Dynamically fetched from brand settings, At least one must be selected
Service Type
Multi-select
Required, At least one service per event, Fetched from brand configuration
Brand
Dropdown
Required, Cannot be changed after project creation, Fetched from agency settings
Client Name
Text
Required, Max 100 characters, Linked to client record
Lead Source
Dropdown
Optional, Fetched from agency settings
Service Area
Text/Dropdown
Optional, Multiple areas allowed per event
Venue
Text
Optional, Max 200 characters
Package
Dropdown
Optional, Fetched from package settings
Tags
Multi-select
Optional, Custom tags allowed, Max 10 tags per project
Search Query
Text
No character limit, Real-time search with 300ms debounce
Rows Per Page
Dropdown
Options: 10, 25, 50, 100, Default: 10
6. Success Message Handling
Operation
Success Message
Trigger Condition
Post-Success Action
Project Expanded
No message displayed
User clicks expand arrow
Display nested events and services
Filter Applied
"Showing X projects matching your criteria"
User applies one or more filters
Update listing display
Search Completed
"Found X projects matching '[search term]'"
User performs search
Display filtered results
Bulk Selection
"X projects selected"
User selects multiple projects
Enable bulk action buttons
Page Navigation
No message displayed
User changes page
Load requested page data
Sort Applied
"Projects sorted by [criteria]"
User changes sort order
Reorder project listing
7. Error Message Handling
Error Scenario
Error Message
Trigger Condition
Required Action
No Projects Found
"No projects found. Create your first project to get started."
No projects exist in system
Display create project button
Search No Results
"No projects match your search. Try different keywords."
Search returns empty results
Clear search or modify query
Filter No Results
"No projects match the selected filters. Try adjusting your criteria."
Filters return no projects
Modify or clear filters
Loading Failed
"Unable to load projects. Please refresh the page."
Database connection error
Retry loading or contact support
Pagination Error
"Unable to load page. Please try again."
Page navigation fails
Return to previous page
Expansion Failed
"Unable to load project details. Please try again."
Event details fetch fails
Retry expansion
Session Timeout
"Your session has expired. Please log in again."
User session expires
Redirect to login page
Permission Denied
"You don't have permission to view these projects."
Insufficient user permissions
Contact administrator
8. Edge Cases
Edge Case
System Behavior
Fallback Action
User Notification
1000+ projects in list
Enable server-side pagination with virtual scrolling
Load first 100 projects only
"Showing first 100 projects. Use filters to narrow results."
Concurrent user updates
Implement optimistic locking with version control
Show conflict resolution dialog
"This project was updated by another user. Refresh to see changes."
Multiple same-time events
Display all events without warnings
Show events in chronological then alphabetical order
No notification needed
Network connectivity loss
Cache last loaded state in browser storage
Display cached data with indicator
"Working offline. Some features may be limited."
Deleted contractor in list
Show contractor name with "(Deleted)" suffix
Maintain historical data integrity
No notification needed
Invalid filter combination
Prevent selection of conflicting filters
Disable incompatible options
"This filter combination is not valid."
Slow loading (>3 seconds)
Show skeleton loading placeholders
Display progress indicator
"Loading projects..."
Browser back button usage
Maintain filter and pagination state
Restore previous view state
No notification needed
9. Acceptance Criteria
- The Projects Listing page must load within 2 seconds for up to 100 projects with standard network conditions.
- All projects must be displayed in chronological order based on the nearest upcoming event date by default.
- Users must be able to expand and collapse project rows to view nested events and services without page refresh.
- The four contractor status icons must accurately reflect real-time status for contract, invoice, footage, and payment.
- Filter functionality must support multiple simultaneous filters with AND logic applied between different filter types.
- Search functionality must return results within 500ms of the user stopping typing with accurate string matching.
- Pagination controls must correctly navigate between pages while maintaining applied filters and sort order.
- The system must prevent creation of projects without at least one event and one service per event.
- Bulk selection must support up to 50 projects with appropriate warning messages for exceeding limits.
- The module must automatically refresh the listing every 60 seconds without disrupting user interactions.
- Empty state messaging must be displayed when no projects exist with clear call-to-action for project creation.
- All user actions must be logged in the audit trail with timestamp and user identification.
10. Manual Test Cases
Test cases have been created in a separate Excel file: Projects_Listing_Complete_Test_Cases.xlsx
11. Dependencies
Dependency Type
Component/Module
Description
Fallback Behavior
Internal Module
Brand Management
Fetches available brands for project assignment
Display error if brands not configured
Internal Module
Client Management
Links projects to client records
Cannot create project without client
Internal Module
Event Types Configuration
Retrieves configured event types per brand
Show error if no event types defined
Internal Module
Service Configuration
Fetches available services per brand
Cannot create event without services
Internal Module
Contractor Management
Displays contractor assignment and status
Show "Unassigned" if no contractors
Internal Module
Dashboard Widgets
Updates widget counts for events and contractors
Widgets show stale data if sync fails
Internal Module
Pipeline Automation
Triggers status updates based on project actions
Manual status management required
Internal Module
Payment Tracking
Displays contractor payment status
Payment status shows as unknown
Internal Module
Activity Log
Records and displays project activity
Activity tracking disabled
External Service
File Storage API
Stores uploaded invoices and footage
Upload functionality disabled
System Component
Database
Persistent storage for all project data
Complete module failure
System Component
Caching Layer
Improves performance for frequently accessed data
Slower page load times
12. References
- Figma: Figma
2. Events Listing
FRD #2: Events Listing
1. Module Overview
Module Name: Events Listing
Purpose: The Events Listing module provides a dedicated view for managing individual events across all projects, enabling users to focus on event-level details, services, and contractor assignments without the hierarchical project structure.
Business Goals: Facilitate efficient event management by providing a streamlined view of all events with their associated services, contractor details, and operational status, enabling quick identification of events requiring immediate attention and supporting day-to-day operational workflows.
2. User Roles & Permissions
Role
View Events
Create Events
Edit Events
Delete Events
Assign Contractors
Manage Services
Owner
Yes
Yes
Yes
Yes
Yes
Yes
Admin
Yes
Yes
Yes
Yes
Yes
Yes
Project Manager
Yes
Yes
Yes
No
Yes
Yes
Other Roles (TBD for Phase 2)
TBD
TBD
TBD
TBD
TBD
TBD
3. User Flow
Initial Access and Display
3.1 The user navigates to the Events Listing by clicking on the "Events" tab within the Project Management module.
3.2 The system loads the Events Listing view displaying all events across all projects sorted by event date in chronological order.
Event Information Review
3.3 The user views the event list showing event names, dates, associated services, assigned contractors, and current status for each event.
3.4 The user identifies events requiring attention through visual indicators such as missing contractor assignments or pending tasks.
3.5 The user clicks on a specific event row to view expanded details including all services and contractor assignments.
3.6 The system expands the selected event row revealing service-level information with contractor names, payment status, and compliance indicators.
Filtering and Search Operations
3.7 The user applies filters from the filter panel to narrow the event list based on date ranges, event types, service types, or contractor availability.
3.8 The system updates the event listing to display only events matching the selected filter criteria while maintaining the sort order.
3.9 The user searches for specific events using the search bar by entering event names, client names, or service types.
3.10 The system displays filtered results in real-time as the user types in the search field.
Event Management Actions
3.11 The user clicks on the "View Details" button for an event to navigate to the detailed event management page.
3.12 The system redirects the user to the Event Detail page showing comprehensive information about the selected event.
3.13 The user selects multiple events using checkboxes to perform bulk operations such as status updates or contractor assignments.
3.14 The system enables bulk action buttons allowing the user to apply changes to all selected events simultaneously.
Contractor Assignment and Navigation
3.15 The user clicks on the "Check Availability" button for events with unassigned contractors to find available team members.
3.16 The system opens the Contractor Availability module displaying available contractors for the selected event date and service type.
3.17 The user navigates through pagination controls when viewing large numbers of events across multiple pages.
3.18 The system loads the requested page of events while preserving the current filter and sort settings.
4. Functional Logic
Event Display and Structure
- The Events Listing module operates as a flattened view of all events across all projects, removing the hierarchical project structure to focus on individual event management.
- Upon loading the Events tab, the system retrieves all events from active projects and displays them in a single list sorted by event date with the nearest upcoming events appearing first.
- Each event row in the listing displays the event name derived from the parent project name with the event type appended, creating unique identifiers for each event.
- The system displays the event date and time prominently for each event, with special formatting for multi-day events showing both start and end dates.
Service and Contractor Management
- For each event, the module shows all associated services as sub-items within the event row, with each service displaying its own set of contractor assignments and status indicators.
- The contractor assignment section for each service shows assigned contractor names with visual indicators for their current status including contract signed, invoice uploaded, footage uploaded, and payment completed.
- When an event has multiple services, the system displays each service on a separate line within the expanded event view, allowing independent contractor management per service.
- When displaying contractor costs, the module shows individual contractor payments per service rather than aggregated project totals, supporting granular financial tracking.
Visual Indicators and Status Tracking
- The module implements color-coded status indicators where events with all contractors assigned and confirmed appear in green, partially assigned events in yellow, and unassigned events in red.
- Events that are past their scheduled date but incomplete display with a special "overdue" indicator to highlight items requiring immediate attention.
- Events that have been marked as completed in the pipeline display with a checkmark icon and are visually distinguished from active events.
- The system tracks and displays the primary event designation for projects with multiple events, showing a "Primary" badge next to the designated primary event.
Filtering and Search Capabilities
- The filter functionality in the Events Listing operates independently from the Projects Listing filters, maintaining separate filter states between the two views.
- When filtering by date range, the system includes all events that fall within the specified range, including multi-day events that partially overlap with the selected dates.
- The search functionality searches across event names, parent project names, client names, service types, and contractor names to provide comprehensive search results.
- Events from archived projects are excluded from the main Events Listing but can be viewed by applying the "Include Archived" filter option.
Special Event Handling
- For events with multiple service areas, the system displays all service areas in the listing with the ability to view and manage contractors for each area independently.
- The module automatically highlights events scheduled for the current day with a special indicator and sorts them to the top of the list when using default sorting.
- When an event has no assigned contractors for any service, the system displays a prominent "Unassigned" badge and includes these events in the unassigned contractors dashboard widget count.
- Events with duplicate bookings where the same contractor is assigned to multiple events at the same time display a warning icon with conflict details.
System Integration and Performance
- The module integrates with the pipeline automation system to display current pipeline status for each event, with status badges showing the current stage.
- The Check Availability feature integration allows users to quickly find available contractors for unassigned services directly from the event listing without navigation.
- The system maintains real-time synchronization with the Projects Listing, ensuring any changes made in either view are immediately reflected in both.
- The pagination system in Events Listing loads 20 events per page by default, with options to adjust to 50 or 100 events per page based on user preference.
Advanced Features
- For events that are part of a package deal, the module displays the package name and indicates which services are included in the package versus add-on services.
- The listing refreshes automatically every 60 seconds to capture updates from other users, with a manual refresh button available for immediate updates.
- Events created through automated lead forms display with a special indicator showing they were auto-generated rather than manually created.
- The module supports keyboard navigation allowing users to move through the event list using arrow keys and expand/collapse events using the spacebar.
5. Field Details & Validations
Field Name
Field Type
Validation Rules
Event Name
Text (Auto-generated)
Format: [Project Name] - [Event Type], Max 150 characters
Event Date
DateTime
Required, Cannot be in the past for Phase 1, Format: MM/DD/YYYY HH:MM AM/PM
End Date
DateTime
Required for multi-day events, Must be after start date
Event Type
Text (Display)
Inherited from project configuration, Read-only in listing
Service Type
Multi-select
At least one required per event, Cannot be empty
Contractor Name
Dropdown
Optional, Fetched from contractor database
Service Area
Text
Optional, Multiple allowed per event, Max 100 characters per area
Status
Dropdown
Auto-managed by pipeline, Manual override available
Payment Status
Icon Display
Read-only, Updated from payment module
Contract Status
Icon Display
Read-only, Updated from contract module
Search Query
Text
No character limit, Searches across multiple fields
Date Range Filter
Date Range
Start date must be before end date
Rows Per Page
Dropdown
Options: 20, 50, 100, Default: 20
6. Success Message Handling
Operation
Success Message
Trigger Condition
Post-Success Action
Event Expanded
No message displayed
User clicks expand arrow
Display service details
Filter Applied
"Showing X events matching your criteria"
User applies filters
Update event listing
Search Completed
"Found X events matching '[search term]'"
User performs search
Display filtered results
Bulk Selection
"X events selected for bulk action"
User selects multiple events
Enable bulk actions
Contractor Assigned
"Contractor successfully assigned to event"
Contractor assignment completed
Update event display
Status Updated
"Event status updated to [status]"
Manual status change
Refresh event status badge
7. Error Message Handling
Error Scenario
Error Message
Trigger Condition
Required Action
No Events Found
"No events found. Events will appear here once projects are created."
No events exist
Navigate to create project
Search No Results
"No events match your search criteria."
Search returns empty
Modify search terms
Filter No Results
"No events match the selected filters."
Filters return nothing
Adjust filter criteria
Loading Failed
"Unable to load events. Please refresh the page."
Database error
Retry or contact support
Contractor Conflict
"This contractor is already booked for this time."
Double booking detected
Choose different contractor
Date Range Invalid
"End date must be after start date."
Invalid date range
Correct date selection
Assignment Failed
"Unable to assign contractor. Please try again."
Assignment error
Retry assignment
Status Update Failed
"Unable to update event status."
Pipeline update fails
Check pipeline settings
8. Edge Cases
Edge Case
System Behavior
Fallback Action
User Notification
500+ events in single day
Group events by hour with expandable sections
Implement time-based grouping
"Events grouped by time for easier viewing"
All contractors unavailable
Highlight event in red with warning icon
Show "No contractors available"
"No contractors available for this date"
Multi-day event spanning months
Display on all affected dates with continuation indicator
Show full date range in tooltip
Display date range in event details
Simultaneous status updates
Last update wins with audit trail
Log all attempts
"Event was updated by another user"
Service removed from brand
Display with "Discontinued" label
Maintain historical data
"This service is no longer available"
Past event modification
Allow view but restrict edit for Phase 1
Display in read-only mode
"Past events cannot be modified"
Network interruption
Cache current view in browser
Display cached data
"Working offline - changes will sync when connected"
Duplicate event names
Append unique identifier
Add (#2, #3) to duplicates
Display full unique name
9. Acceptance Criteria
- The Events Listing must load within 2 seconds for up to 200 events under standard network conditions.
- Events must be displayed in chronological order by default with clear date and time information.
- Each event must show all associated services with their respective contractor assignments and status indicators.
- The four contractor status icons must accurately reflect current status for each service-contractor combination.
- Filters must work independently from Projects Listing filters with separate state management.
- Search functionality must return relevant results within 500ms across all searchable fields.
- Events requiring attention such as unassigned contractors must be visually distinguished from completed events.
- Multi-day events must display correctly with both start and end dates visible in the listing.
- The Check Availability integration must open without page navigation and return results quickly.
- Duplicate booking warnings must appear immediately when conflicts are detected.
- Pagination must maintain filter and sort settings when navigating between pages.
- The listing must auto-refresh every 60 seconds without disrupting user interactions.
10. Manual Test Cases
Test cases have been created in a separate Excel file: Events_Listing_Complete_Test_Cases.xlsx
11. Dependencies
Dependency Type
Component/Module
Description
Fallback Behavior
Internal Module
Projects Management
Parent module for all events
Cannot function without projects
Internal Module
Contractor Management
Provides contractor data and availability
Show unassigned status
Internal Module
Pipeline Automation
Manages event status transitions
Manual status management
Internal Module
Payment Tracking
Tracks contractor payments per service
Payment status unknown
Internal Module
Contract Management
Manages contractor agreements
Contract status unavailable
Internal Module
Check Availability Module
Finds available contractors
Feature disabled
Internal Module
Service Configuration
Defines available services per brand
Cannot add services
Internal Module
Dashboard Widgets
Updates event-related widget counts
Stale widget data
External Service
Calendar Integration
Syncs with external calendars
No calendar sync
System Component
Database
Stores all event data
Complete failure
System Component
Real-time Sync
Keeps data synchronized across views
Manual refresh required
12. References
- Figma: Figma
3. Create a New Project
FRD: Create a New Project
1. Module Overview
Module Name: Create a New Project
Purpose: The Create a New Project module enables users to manually create new projects with associated events and services through a guided 3-step modal wizard, or automatically generate projects through lead form submissions, establishing the foundational structure for client engagements.
Business Goals: Streamline project creation by providing an intuitive step-by-step interface for setting up new client projects with proper event and service configuration, ensuring data integrity from project inception while supporting both manual and automated creation workflows.
2. User Roles & Permissions
Role
Create Projects
Auto-Generate Projects
Set Primary Events
Configure Services
Assign Team
Owner
Yes
Yes
Yes
Yes
Yes
Admin
Yes
Yes
Yes
Yes
Yes
Project Manager
Yes
Yes
Yes
Yes
Yes
Other Roles (TBD for Phase 2)
TBD
TBD
TBD
TBD
TBD
3. User Flow
Modal Initialization and Brand Validation
3.1 The user clicks the "New Project" button from either the Projects Listing page or the dashboard to initiate project creation.
3.2 The system opens the Create New Project modal dialog as a 3-step wizard, displaying "1/3" as the step indicator at the top.
3.3 The system performs an initial check for brand availability; if no brands are configured, the system displays a blocking error message and prevents project creation.
3.4 If brands exist, the system populates the Brand dropdown with all configured brands and the Lead Source dropdown with active lead sources pulled from agency settings.
Step 1: Basic Project Information
3.5 The user enters the project name in the Name field, which serves as the master project identifier.
3.6 The user selects a brand from the Brand dropdown; this selection is permanent and cannot be changed after project creation.
3.7 The system loads brand-specific configurations including available event types and services based on the selected brand.
3.8 The user optionally selects a lead source from the Lead Source dropdown.
3.9 If the user selects "Other" as the lead source, the system reveals a "Specify Lead Source" text field below the Lead Source dropdown, requiring the user to enter a custom source description.
3.10 The user clicks "Next" to proceed to Step 2; the system validates that all required fields (Name and Brand) are filled before allowing progression.
Step 2: Event Type Selection
3.11 The system displays the step indicator as "2/3" and shows the question "What event types are included in this project?" with all available event types for the selected brand displayed as selectable chip/tag buttons.
3.12 The user selects one or more event types by clicking the corresponding chips; selected chips are visually highlighted (e.g., golden/amber outline).
3.13 Once the user selects event types, the system displays a "Primary Event" dropdown below the event chips, pre-populated with the selected event types.
3.14 If only one event type is selected, the system automatically designates it as the primary event in the dropdown.
3.15 If multiple event types are selected, the user must designate one as the primary event from the Primary Event dropdown.
3.16 The user clicks "Next" to proceed to Step 3; the system validates that at least one event type is selected and a primary event is designated. The user can also click "Back" to return to Step 1.
Step 3: Event Details Configuration
3.17 The system displays the step indicator as "3/3" and lists each selected event type as a collapsible section, with the primary event displayed first and visually distinguished with a colored left border and "(PRIMARY)" label.
3.18 For each event, the system displays the following fields: Service Area, Start Date, Start Time, End Date, End Time, Multi-day event checkbox, Time Zone, and Services.
3.19 The user types in the Service Area field; the system displays a filtered list of matching service areas from the brand settings. The user selects from the suggestions.
3.20 The user enters the Start Date and Start Time for each event using the respective date and time picker controls.
3.21 By default, only the Start Date and Start Time fields are visible. The End Date and End Time fields are hidden. The user can check the "This is multi-day event" checkbox to reveal the End Date and End Time fields.
3.22 When the multi-day checkbox is checked, the End Date and End Time fields appear. The system validates that the End Date/Time occurs after the Start Date/Time.
3.23 The Time Zone field is a project-level setting that applies to all events within the project. It is displayed within each event section but shares the same value across all events.
3.24 The Time Zone field is disabled by default until a time value (Start Time) is entered in any event. Once a time is entered, the Time Zone field becomes enabled across all event sections.
3.25 Upon enabling, the Time Zone field is pre-populated with the timezone the user has configured in their account/agency settings. By default, this is EDT/EST if the user has not set a custom timezone in settings.
3.26 The user can override the pre-populated timezone by selecting a different value from the Time Zone dropdown. Changing the timezone in any event section updates it for all events in the project.
3.27 The user selects one or more services for each event from the services displayed as chip/tag buttons, populated based on the brand configuration.
3.28 The user clicks "Finish" to submit the project creation request. The user can also click "Back" to return to Step 2.
3.29 The system validates all required fields and business rules across all three steps before processing the creation request.
3.30 Upon successful creation, the system creates the project with all associated events and services, displays a success message, and redirects the user to the newly created project detail page.
4. Functional Logic
4.1 Step 1 — Basic Project Information
Prerequisites and Initial Validation
4.1.1 The Create a New Project module enforces prerequisite validation by checking that at least one brand exists in the system before allowing project creation, as projects must be associated with a brand from inception.
4.1.2 When the modal opens, the system performs an initial check for brand availability and displays a blocking error message with instructions to configure brands if none exist, preventing the user from proceeding.
Project Name
4.1.3 The project name field accepts alphanumeric characters and standard punctuation but restricts special characters (< > & " ') that could cause display or database issues, with a maximum length of 100 characters.
4.1.4 The system validates the project name in real-time, showing inline error messages for invalid input or exceeding the character limit.
Brand Selection
4.1.5 Brand selection triggers a cascade of dynamic updates throughout the subsequent steps, loading brand-specific event types, services, packages, and configuration settings that determine available options in Steps 2 and 3.
4.1.6 Once a brand is selected for a project, the system locks this association permanently, preventing brand changes after creation to maintain data integrity and reporting consistency.
4.1.7 The brand dropdown displays all brands configured in the agency settings. If only one brand exists, it may be auto-selected.
Lead Source Selection
4.1.8 Lead source selection is optional; if the user skips it, the system displays a hyphen (--) as the default value in the project details.
4.1.9 The lead source dropdown list is dynamically pulled from the agency-level Lead Source settings, displaying all active lead sources configured by the agency.
4.1.10 Any lead sources added or removed in agency settings are immediately reflected in the project creation dropdown.
4.1.11 When "Other" is selected as the lead source, the system dynamically reveals an additional text field labelled "Specify Lead Source" directly below the Lead Source dropdown.
4.1.12 The "Specify Lead Source" field is required when "Other" is selected; the system prevents the user from proceeding to Step 2 until this field is filled. The field accepts free text with a maximum length of 100 characters.
4.1.13 If the user changes the lead source selection from "Other" to a different option, the "Specify Lead Source" field is hidden and its value is cleared.
4.1.14 The custom lead source text entered in the "Specify Lead Source" field is saved with the project record for marketing analytics and ROI tracking. It is stored as a custom entry and does not get added to the agency's master lead source list.
4.1.15 Unlike brand selection, the lead source can be updated after project creation from the project details.
Step Navigation
4.1.16 The "Next" button validates that all required fields (Name and Brand) are filled before allowing progression to Step 2. If "Other" is selected as lead source, the "Specify Lead Source" field is also validated.
4.1.17 The "Cancel" button closes the modal without saving any data. A confirmation prompt may be displayed if the user has entered data.
4.2 Step 2 — Event Type Selection
Event Type Display and Selection
4.2.1 The event type chips are dynamically populated based on the brand selected in Step 1, displaying only event types that have been enabled for that specific brand in agency settings.
4.2.2 Colors for event types are uniformly set across all brands through agency settings, ensuring consistent visual identification regardless of brand selection.
4.2.3 The user can select multiple event types by clicking individual chips. Selected chips are visually distinguished with a highlighted border or background color (golden/amber).
4.2.4 Clicking a selected chip deselects it, removing it from the selection. If the deselected event was the primary event, the primary event dropdown resets and the user must select a new primary event.
Primary Event Designation
4.2.5 The Primary Event dropdown appears once at least one event type is selected. It is populated only with the currently selected event types.
4.2.6 When only one event type is selected, the system automatically sets it as the primary event in the dropdown. The user can still see the dropdown but cannot change the selection to empty.
4.2.7 When multiple event types are selected, the user must manually select one as the primary event. The "Next" button remains disabled until a primary event is designated.
4.2.8 The primary event designation affects automation triggers, payment schedules, and default workflows, with the system using the primary event's date as the reference point for time-based automations.
4.2.9 If the user adds or removes event types after designating a primary event, and the primary event type is removed, the system clears the primary event selection and requires the user to re-designate.
Step Navigation
4.2.10 The "Next" button validates that at least one event type is selected and a primary event is designated before allowing progression to Step 3.
4.2.11 The "Back" button navigates the user to Step 1 with all previously entered data preserved.
4.3 Step 3 — Event Details Configuration
Event Section Layout
4.3.1 Each selected event type is displayed as a separate collapsible section in Step 3. The primary event is always displayed first at the top, visually distinguished with a colored left border (matching the event type color) and a "(PRIMARY)" label next to the event type name.
4.3.2 Non-primary events are displayed below the primary event, each with their respective colored left border but without the "(PRIMARY)" label.
4.3.3 Each event section contains the following fields in order: Service Area, Start Date, Start Time, End Date, End Time, Multi-day event checkbox, Time Zone, and Services.
Service Area
4.3.4 The Service Area field is an optional type-ahead/autocomplete input. The user can manually type in the field, and the system displays a filtered list of matching service areas from the brand settings.
4.3.5 The autocomplete suggestions are populated from the service areas configured under the selected brand in agency settings. As the user types, the list filters to show only relevant matches.
4.3.6 The user selects a service area from the filtered list. If no matching service areas are found, no suggestions are displayed.
4.3.7 Any service areas added or removed in brand settings are reflected in the autocomplete list the next time the modal is opened.
Date and Time Configuration
4.3.8 The Start Date field uses a date picker control and is required. The date format follows DD/MM/YYYY.
4.3.9 The Start Time field uses a time picker control with 12-hour format (hh:mm AM/PM) and is optional.
4.3.10 The date picker disables all past dates, preventing the user from selecting them. Only the current date and future dates are available for selection during Phase 1.
4.3.11 By default, only the Start Date and Start Time fields are visible. The End Date and End Time fields are hidden and only appear when the user checks the "This is multi-day event" checkbox.
Multi-Day Event Logic
4.3.12 The "This is multi-day event" checkbox, when checked, reveals the End Date and End Time fields below the Start Date and Start Time fields.
4.3.13 When multi-day is enabled, the user can independently set the End Date and End Time using their respective pickers.
4.3.14 For multi-day events, the system validates that the End Date is on or after the Start Date. If the End Date is the same as the Start Date, the End Time must be after the Start Time.
4.3.15 Only date fields (Start Date, End Date) are required when multi-day is enabled. Time fields remain optional.
4.3.16 When the multi-day checkbox is unchecked, the End Date and End Time fields are hidden and their values are cleared.
Time Zone Logic
4.3.17 The Time Zone is a project-level setting that applies uniformly to all events within the project. Although the field is displayed within each event section for visibility, changing it in any section updates the value across all events.
4.3.18 The Time Zone field is disabled by default when the modal loads or when no time has been entered for any event in the project.
4.3.19 Once the user enters a Start Time value in any event section, the Time Zone field becomes enabled across all event sections simultaneously.
4.3.20 Upon enabling, the Time Zone field is pre-populated with the timezone configured in the user's account/agency settings. By default, if the user has not configured a custom timezone, the system uses EDT/EST.
4.3.21 The user can override the pre-populated timezone by selecting a different value from the Time Zone dropdown, which lists all standard IANA timezones. Changing the timezone in one event section updates it across all event sections.
4.3.22 The selected timezone is stored at the project level and is used for all time-based displays, notifications, and automation triggers related to the project's events.
4.3.23 The system stores all event times in UTC internally and converts to the project's designated timezone for display purposes.
Service Configuration
4.3.25 Services are displayed as selectable chip/tag buttons below each event section, populated based on the brand's service configuration.
4.3.26 The user must select at least one service per event. The system prevents the user from finishing project creation if any event lacks at least one service selection.
4.3.27 When only one service exists for a brand, the system automatically selects it as the default for all events, reducing manual selection requirements.
4.3.28 Selected service chips are visually highlighted to indicate selection.
Step Navigation and Submission
4.3.29 The "Finish" button validates all required fields across all event sections before processing the creation request. If any event section has missing required fields, the system highlights the respective section and displays inline errors.
4.3.30 The "Back" button navigates the user to Step 2 with all previously entered data preserved, including the event detail configurations in Step 3.
Project Creation Process
4.3.31 Upon successful validation and submission, the system generates a unique project ID, creates all associated event records with their services and configurations, stores the project-level timezone, and initializes the project in the pipeline's default status (e.g., "Inquiry").
4.3.32 The creation process triggers initial automation rules if automation is enabled, setting up workflow sequences, payment schedules, and notification triggers based on project configuration.
4.3.33 Error handling during creation implements transaction rollback, ensuring that if any part of the creation process fails, no partial data is saved to maintain database consistency.
4.3.34 After project creation, the system updates all relevant dashboard widgets and counts, including new events widget, unassigned contractors count, and project totals.
4.3.35 The system logs all project creation activities in the audit trail, capturing the creating user, timestamp, and all initial project configuration for compliance tracking.
5. Field Details & Validations
Step 1 Fields
Field Name
Field Type
Required
Validation Rules
Project Name
Text Input
Yes
Max 100 characters. No < > & " ' characters. Cannot be empty.
Brand
Dropdown
Yes
Must have at least one brand configured. Cannot be changed after creation. Populated from agency settings.
Lead Source
Dropdown
No
Populated from agency-level Lead Source settings. If skipped, displays "--" in project details.
Specify Lead Source
Text Input
Yes (only when Lead Source = "Other")
Max 100 characters. Visible only when "Other" is selected. Cannot be empty when visible. Hidden and cleared when Lead Source changes from "Other".
Step 2 Fields
Field Name
Field Type
Required
Validation Rules
Event Types
Multi-select Chips
Yes
At least one event type must be selected. Max 10 event types per project. Populated dynamically based on selected brand.
Primary Event
Dropdown
Yes
Populated with currently selected event types only. Auto-selected when only one event type is chosen. Must be designated before proceeding.
Step 3 Fields (Per Event)
Field Name
Field Type
Required
Validation Rules
Service Area
Type-ahead / Autocomplete
No
Options fetched from service areas configured under the selected brand in agency settings. Filters as user types.
Start Date
Date Picker
Yes
DD/MM/YYYY format. Past dates are disabled in the picker (not selectable).
Start Time
Time Picker
No
12-hour format (hh:mm AM/PM).
End Date
Date Picker
Yes (when multi-day enabled)
DD/MM/YYYY format. Must be on or after Start Date. Only visible when "This is multi-day event" checkbox is checked.
End Time
Time Picker
No
12-hour format (hh:mm AM/PM). Must be after Start Time when End Date equals Start Date. Disabled until Start Time is selected. Only visible when "This is multi-day event" checkbox is checked.
Time Zone
Dropdown
No
Project-level setting (applies to all events). Disabled until Start Time is entered in any event. Pre-populated from user's account/agency settings (default: EDT/EST). Lists all standard IANA timezones. Changing in one event section updates all. Cleared if all Start Times are removed.
This is multi-day event
Checkbox
No
Default: unchecked. When checked, enables independent End Date and End Time editing.
Services
Multi-select Chips
Yes
At least one service per event. Populated from brand service configuration.
6. Error Message Handling
Error Scenario
Error Message
Trigger Condition
Required Action
No Brands Configured
"No brands found. Please configure at least one brand before creating projects."
Brand check fails on modal open
Navigate to brand setup
Missing Project Name
"Project name is required."
User clicks "Next" with empty Name field
Enter project name
Invalid Characters in Name
"Project name contains invalid characters. Please remove < > & " ' characters."
User enters restricted special characters
Remove invalid characters
Character Limit Exceeded
"Maximum 100 characters allowed."
Text exceeds 100 characters in Name or Specify Lead Source field
Reduce text length
Missing Brand Selection
"Please select a brand."
User clicks "Next" without selecting a brand
Select a brand
Missing Specify Lead Source
"Please specify the lead source."
User clicks "Next" with "Other" selected but Specify Lead Source field empty
Enter custom lead source
No Event Type Selected
"Please select at least one event type."
User clicks "Next" on Step 2 without selecting any event type
Select at least one event type
No Primary Event Designated
"Please designate a primary event."
User clicks "Next" on Step 2 with multiple events but no primary event selected
Select a primary event
Maximum Events Reached
"Maximum 10 events per project."
User attempts to select more than 10 event types
Deselect an event type before adding a new one
Invalid Date Range
"End date must be on or after start date."
End Date is before Start Date for a multi-day event
Correct the date range
Invalid Time Range
"End time must be after start time when dates are the same."
End Time is equal to or before Start Time when End Date equals Start Date
Select an end time after start time
No Services Selected
"Each event must have at least one service."
User clicks "Finish" with an event that has no services selected
Select at least one service for each event
Save Failed
"Unable to create project. Please try again."
Database or network error during project creation
Retry creation
Session Expired
"Your session has expired. Please log in again."
Session timeout detected during creation
Re-authenticate
7. Edge Cases
Edge Case
System Behavior
Fallback Action
User Notification
Brand deleted during creation
System validates brand exists at final submission
Block creation
"Selected brand no longer exists. Please select a different brand."
Service removed during creation
System validates services at submission
Remove invalid services from selection
"Some services are no longer available. Please review your selections."
Event type disabled during creation
System validates event types at submission
Remove disabled event types
"Some event types are no longer available. Please review your selections."
Duplicate project name
System allows duplicate names with a warning
Append identifier if needed
"A project with this name already exists. You may continue or rename."
Maximum events reached (10)
Disable additional chip selection
Prevent additional selection
"Maximum 10 events per project."
Network loss during save
Retry with exponential backoff
Save form data to browser local storage
"Connection lost. Retrying..."
Concurrent project creation by multiple users
Allow both with different project IDs
Process sequentially
No notification needed
Invalid special characters in Project Name
Strip or encode characters
Sanitize input
"Invalid characters removed."
Timezone changes during active creation
Preserve the timezone selected at the time of saving
Use last selected timezone
No notification needed
Leap year date handling
Validate February 29 correctly
Standard date validation
Standard date errors if invalid
Lead Source "Other" with only whitespace
Trim and validate for empty string
Prevent progression
"Please specify the lead source."
All event types deselected after primary event was set
Clear primary event designation
Require re-selection
Primary Event dropdown resets
User refreshes browser mid-creation
Form data is lost (unless auto-save is implemented)
User restarts the process
No notification; modal closes on refresh
Only one brand exists in the system
Auto-select the single available brand
No dropdown interaction needed
Brand field is pre-filled
Lead Source list updated by another admin during creation
New list reflected on next modal open; current session uses loaded list
Use the list loaded at modal open
No notification during current session
User navigates back from Step 3 and changes brand
System must reload event types for new brand in Step 2 and clear Step 3 configurations
Clear all Step 2 and Step 3 data
"Changing brand will reset event and service selections."
Timezone field enabled then Start Time cleared
If Start Time is cleared from all events, timezone field reverts to disabled and value is cleared. If at least one event still has a time, timezone stays enabled.
Reset timezone state only when no events have a time
No explicit notification; field visually disables
No service areas configured for brand
Service Area type-ahead field shows no suggestions when user types
User skips service area selection (field is optional)
No matching results displayed
Timezone updated in one event section
System syncs the new timezone to all event sections in the project
All events reflect the updated timezone
No explicit notification; all sections update simultaneously
8. Acceptance Criteria
- The create project modal must load within 1 second with all dynamic fields populated from configuration.
- The 3-step wizard must correctly display step indicators (1/3, 2/3, 3/3) and support forward and backward navigation without data loss.
- Brand selection must be mandatory and must trigger immediate loading of brand-specific options in subsequent steps.
- When "Other" is selected as Lead Source, the "Specify Lead Source" field must appear dynamically and be required before proceeding.
- The system must enforce at least one event type and one service per event before allowing project creation.
- Primary event designation must be required when multiple events are selected and auto-selected when only one is chosen.
- The date picker must disable all past dates, preventing selection.
- Multi-day event fields must appear conditionally only when the multi-day checkbox is selected, and be hidden and cleared when unchecked.
- The Time Zone field must remain disabled until a Start Time is entered in any event, and pre-populate with the user's configured timezone from account/agency settings (default: EDT/EST) once enabled.
- Timezone must be a project-level setting; changing it in one event section must update all event sections.
- All required field validations must occur in real-time with inline error messages.
- Successful project creation must redirect to the project detail page within 2 seconds.
- The audit trail must capture all project creation details including user and timestamp.
9. Dependencies
Dependency Type
Component/Module
Description
Fallback Behavior
Internal Module
Brand Management
Provides brands for selection in Step 1
Cannot create project without brands
Internal Module
Event Type Configuration
Supplies available event types for Step 2
No event types available for selection
Internal Module
Service Configuration
Provides services per brand for Step 3
Cannot assign services to events
Internal Module
Lead Source Settings
Provides lead source options for Step 1 dropdown
Lead source not tracked
Internal Module
Pipeline Automation
Initializes workflow triggers post-creation
Manual pipeline management required
Internal Module
Brand Service Area Settings
Provides service area dropdown options per brand for Step 3
Service area dropdown empty
System Component
Database
Stores project, event, and service data
Complete failure; creation blocked
System Component
User/Agency Settings (Timezone)
Provides default timezone for project-level timezone pre-population
Falls back to EDT/EST
Configuration
Agency Settings
Provides agency-level configs (brands, lead sources, event types, services)
Defaults used where available
10. References
- Figma: Figma Design
4. Events Pipeline Management
FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings
1. Module Overview
Module Name: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings
Purpose: This module provides comprehensive pipeline management capabilities for tracking event progression through predefined stages, configuring pipeline stages and statuses, and automating status transitions based on business rules and triggers.
Business Goals: Streamline event workflow management by providing visual pipeline tracking, customizable status configurations, and intelligent automation rules that reduce manual status updates while ensuring consistent progression of events from lead to completion.
2. User Roles & Permissions
Role
View Pipeline
Move Events
Configure Stages
Edit Statuses
Manage Automation
Override Automation
Owner
Yes
Yes
Yes
Yes
Yes
Yes
Admin
Yes
Yes
Yes
Yes
Yes
Yes
Project Manager
Yes
Yes
No
No
No
Yes
Other Roles (TBD for Phase 2)
TBD
TBD
TBD
TBD
TBD
TBD
3. User Flow
Pipeline View and Navigation
3.1 The user navigates to the Pipeline Settings from the main settings menu or accesses the pipeline view from the Events module.
3.2 The system loads the pipeline interface displaying the three main pipeline stages (Lead Stage, Booked Stage, Post-Event Stage).
3.3 The user views events organized in columns representing the pipeline stages and their statuses.
3.4 The system displays events as cards within each stage column showing event details and current status.
Event Status Management via Dropdown
3.5 The user opens a project or event and accesses the Project Management widget.
3.6 The system displays the Project Management widget with action buttons (Create Event, Add Service, Create File, etc.) and the Event Stage dropdown.
3.7 The user clicks on the Event Stage dropdown to change the event status.
3.8 The system displays all available pipeline statuses (from Lead, Booked, and Post-Event stages) plus "Archived" as options in the dropdown.
3.9 The user selects a new status from the dropdown.
3.10 The system updates the event status immediately and displays a success toast notification.
Archiving an Event via Dropdown
3.11 The user clicks on the Event Stage dropdown and selects "Archived" option.
3.12 The system displays an archive confirmation dialog with title "Archive event".
3.13 For events with future dates (Pre-Event), the system displays the confirmation message explaining all impacts including payment cancellations, contractor removal, and link deactivation.
3.14 For events with past dates (Post-Event), the system displays the confirmation message explaining impacts including remaining payment cancellations and file expiry.
3.15 The user clicks the "Archive" button to confirm or "Cancel" to abort.
3.16 If confirmed, the system archives the event, applies all listed changes, and displays: "Event moved to archived successfully"
3.17 The archived event is removed from the active pipeline view and appears in the separate Archived page.
Archiving a Project via Widget Button
3.18 The user opens a project and accesses the Project Management widget.
3.19 The system displays the ARCHIVE button in the Project Management widget.
3.20 The user clicks the ARCHIVE button.
3.21 The system displays an archive confirmation dialog with title "Archive project".
3.22 For projects with future event dates (Pre-Event), the system displays the confirmation message explaining all impacts.
3.23 For projects with past event dates (Post-Event), the system displays the confirmation message explaining impacts.
3.24 The user clicks the "Archive" button to confirm or "Cancel" to abort.
3.25 If confirmed, the system archives the project and all its associated events automatically.
3.26 The system displays: "Project archived successfully"
3.27 The archived project and all its events are removed from the active pipeline view and appear in the separate Archived page.
Unarchiving an Event
3.28 The user navigates to the Archived page and opens an archived event.
3.29 The system displays the Project Management widget with the Event Stage dropdown.
3.30 The user clicks on the Event Stage dropdown and selects an active status (e.g., "New Lead", "Booked", etc.).
3.31 The system restores the event to the selected status and displays: "Event restored to [status] successfully"
3.32 The event is removed from the Archived page and appears in the active pipeline view.
Unarchiving a Project
3.33 The user navigates to the Archived page and opens an archived project.
3.34 The system displays the Project Management widget with the UNARCHIVE button (replacing the ARCHIVE button).
3.35 The user clicks the UNARCHIVE button.
3.36 The system restores the project and displays: "Project restored successfully"
3.37 The project is removed from the Archived page and appears in the active project listing.
3.38 All previously archived events under the project are also restored to their last active status.
Pipeline Configuration Settings (Batch Save)
3.39 The user clicks on the Pipeline Settings button to access the configuration interface for customizing statuses.
3.40 The system opens the Pipeline Settings page showing all configurable statuses within each stage, including default locked statuses and custom statuses.
3.41 The user can perform multiple configuration changes (rename statuses, add new statuses, delete statuses, reorder statuses) before saving.
3.42 All changes are staged locally and not applied until the user clicks the Save button.
Editing Default Locked Statuses
3.43 The user hovers over a default locked status (e.g., New Lead, Post-Production, Completed).
3.44 The system displays a pencil icon for editing the status name (trash icon is not shown for default locked statuses).
3.45 The user clicks the pencil icon to edit the default status name.
3.46 The system opens an inline edit field with the current status name.
3.47 The user enters a new name (maximum 50 characters).
3.48 If the user enters more than 50 characters, the system displays an inline error beneath the field.
3.49 The change is staged locally and will be applied when the user clicks Save.
Editing and Deleting Custom Statuses
3.50 The user hovers over a custom status within any of the three main stages.
3.51 The system displays both a pencil icon and a trash icon for the custom status.
3.52 The user clicks the pencil icon to edit the custom status name.
3.53 The system opens an inline edit field allowing the user to rename the status (maximum 50 characters).
3.54 The change is staged locally and will be applied when the user clicks Save.
3.55 The user clicks the trash icon to delete the custom status.
3.56 The system immediately performs a dependency check to identify any projects, events, or automation rules referencing the status.
3.57 If the status has zero dependencies, the system displays a confirmation dialog with title "Delete Status" and message "Are you sure you want to delete this status?"
3.58 The user clicks "Delete" to confirm or "Cancel" to abort.
3.59 If the user confirms, the system stages the deletion locally (to be applied when user clicks Save).
3.60 If the user cancels, the dialog closes and no changes are made.
3.61 If the status has one or more dependencies, the system immediately displays a blocked deletion dialog listing the affected items.
3.62 The system prevents the deletion from being staged until the user reassigns all affected projects/events and updates automation rules.
Adding New Custom Statuses
3.63 The user clicks the add button to create a new custom status within one of the three main pipeline stages (Lead, Booked, Post-Event).
3.64 The system opens an input field for the new status name.
3.65 The user enters the status name (maximum 50 characters).
3.66 The new status is staged locally and will be created when the user clicks Save.
Saving Pipeline Configuration Changes
3.67 After performing one or more changes (rename, add, delete, reorder), the user clicks the Save button.
3.68 The system validates all staged changes and applies them to the database.
3.69 The system displays a single toast notification: "Pipeline settings saved successfully"
3.70 The system updates all historical and future events affected by the changes.
3.71 If any validation fails during save, the system displays an error toast and does not apply any changes.
Automation Configuration
3.72 The user navigates to the Pipeline Automation Settings to configure automatic status transitions.
3.73 The system displays the automation rules interface with options to enable or disable automation globally or per rule.
3.74 The user creates a new automation rule by selecting a trigger event and corresponding status change.
3.75 The user clicks Save to apply automation changes.
3.76 The system saves the automation rule, applies it to all future qualifying events, and displays: "Pipeline settings saved successfully"
3.77 The user cannot configure automation rules that target the Archived status as automation is not supported for Archived.
Automation Management
3.78 The user toggles the automation on/off switch for a specific project to enable or disable automated transitions.
3.79 The system updates the project's automation settings and respects the manual override preference going forward.
3.80 The user manually changes an event status that has active automation rules.
3.81 The system allows the manual change but may revert it if automation conditions are met again unless automation is disabled.
Monitoring and Completion Settings
3.82 The user reviews the automation log to see all automated status changes that have occurred.
3.83 The system displays a chronological log of all automation triggers and resulting status updates.
3.84 The user clicks on the Post-Production completion settings to configure deliverable-based completion rules.
3.85 The system shows options for linking event completion to post-production deliverable status.
3.86 The user saves all pipeline configuration changes and returns to the main pipeline view.
3.87 The system applies all configuration changes immediately to the active pipeline display.
4. Functional Logic
Pipeline Structure and Stages
-
The Events Pipeline Management module enforces a three-stage structure consisting of Lead Stage, Booked Stage, and Post-Event Stage that cannot be deleted or reordered, providing consistent workflow foundation across all projects.
-
In addition to the three main stages, Archived exists as a special status option in the Event Stage dropdown for storing completed or inactive events and projects.
-
These three main pipeline stages are locked at the system level, meaning users cannot remove them or create new top-level stages, though they can rename the stages if needed for business terminology alignment.
-
Within each of the three main stages, users can create custom statuses to reflect their specific workflow needs, with these custom statuses inheriting the stage-level restrictions and behaviors.
-
Archived items are stored in a separate Archived page, not displayed in the active pipeline view.
Event Stage Dropdown Behavior
-
The Event Stage dropdown in the Project Management widget displays all available pipeline statuses from Lead, Booked, and Post-Event stages, plus "Archived" as an option.
-
When user selects a status from the dropdown, the event status is updated immediately without requiring a separate Save action.
-
Selecting "Archived" from the dropdown triggers a confirmation dialog before archiving the event.
-
The dropdown is available for both active events and archived events (for unarchiving purposes).
Archive Entry Points
-
Users can archive events via two methods: (1) selecting "Archived" from the Event Stage dropdown, or (2) clicking the ARCHIVE button in the Project Management widget for projects.
-
Drag-and-drop is NOT supported for archiving - users cannot drag events or projects to an Archived column.
-
The ARCHIVE button is always visible in the Project Management widget for active projects.
Archive Confirmation Dialog
-
When user initiates an archive action, the system displays a confirmation dialog with context-specific messaging.
-
For Event archiving, the dialog title is "Archive event"; for Project archiving, the title is "Archive project".
-
The confirmation dialog has two buttons: "Archive" (to confirm) and "Cancel" (to abort).
Pre-Event Archive Confirmation (Future Date)
- For events/projects with future dates, the confirmation message includes:
- All upcoming payments (client & contractor) will be canceled
- Contractors will be removed, notified of the cancellation, and marked available for new bookings on this date
- Client portal access will be deactivated
- All live links (proposals, invoices, contracts) will be disabled
- All future invoices will be marked as Canceled
- Automations, emails, and payment reminders will stop
- User will still receive notifications for new messages from clients
- Confirmation line: "Are you sure you want to proceed?"
Post-Event Archive Confirmation (Past Date)
- For events/projects with past dates (after completion), the confirmation message includes:
- Any remaining payments will be canceled
- Files will expire, but remain accessible to you and the client
- Automations and payment reminders will stop
- The project will be removed from the active pipeline
- Contractors will remain assigned and will not be notified
- User will still receive notifications for new messages from clients
- Confirmation line: "Are you sure you want to proceed?"
Project Archive Cascading
-
When a project is archived, all events associated with that project are automatically archived as well.
-
Each event inherits the archive status from its parent project.
-
The system applies the appropriate archive impacts based on each event's date (pre-event or post-event).
Unarchive Behavior
-
For Events: User selects an active status from the Event Stage dropdown while viewing an archived event.
-
For Projects: User clicks the UNARCHIVE button in the Project Management widget (button changes from ARCHIVE to UNARCHIVE for archived projects).
-
When a project is unarchived, all its previously archived events are also restored to their last active status.
Archived Page
-
All archived projects and events appear in a separate Archived page, not in the active pipeline view.
-
Users can access the Project Management widget for archived items to unarchive them.
-
The Archived page allows users to view, search, and manage archived items.
Default Locked Status Behavior
-
Default locked statuses (such as New Lead, Post-Production, Completed) can be renamed but cannot be deleted, ensuring core pipeline functionality is preserved.
-
When a user hovers over a default locked status, only the pencil icon for editing appears; the trash icon is not displayed for these system-required statuses.
-
Renaming a default locked status updates all historical and future references to that status globally across the system when the user clicks Save.
-
Default locked statuses maintain their position and core functionality regardless of name changes, ensuring automation rules and integrations continue to work correctly.
Custom Status Behavior
-
Custom statuses can be created within any of the three main pipeline stages (Lead, Booked, Post-Event).
-
When a user hovers over a custom status, both the pencil icon (edit) and trash icon (delete) are displayed.
-
Custom statuses can be renamed and deleted, subject to dependency checks for active projects, events, and automation rules.
Batch Save Logic for Pipeline Settings
-
All changes made in Pipeline Settings (rename, add, delete, reorder statuses) are staged locally and not applied until the user clicks the Save button.
-
The system allows users to perform multiple changes in a single session before saving, improving workflow efficiency.
-
When the user clicks Save, all staged changes are validated and applied as a single transaction.
-
Upon successful save, a single toast notification is displayed: "Pipeline settings saved successfully" regardless of the number of changes made.
-
If any validation fails during the save process, none of the changes are applied, and an error message is displayed.
Deletion Dependency Check (Immediate)
-
When a user clicks the trash icon to delete a custom status, the system immediately performs a dependency check before showing any dialog.
-
If the status has zero dependencies (no projects/events assigned and no automation rules referencing it), the system displays a confirmation dialog.
-
If the status has one or more dependencies, the system displays a blocked deletion modal dialog.
-
Default locked statuses cannot be deleted regardless of dependency status; the trash icon is not shown for these statuses.
Status Deletion Confirmation Dialog (Zero Dependencies)
-
When a custom status has zero dependencies, clicking the trash icon displays a confirmation dialog before staging the deletion.
-
Dialog title: "Delete Status"
-
Dialog message: "Are you sure you want to delete this status?"
-
Dialog buttons: "Delete" (to confirm) and "Cancel" (to abort)
-
If the user clicks "Delete", the deletion is staged locally and will be applied when the user clicks the Save button.
-
If the user clicks "Cancel", the dialog closes and no changes are made to the status.
-
The deletion is not immediate; it follows the batch save pattern where changes are applied only after clicking Save.
Status Deletion Blocked Dialog (Has Dependencies)
-
When a custom status has one or more dependencies, clicking the trash icon displays a blocked deletion modal dialog.
-
Dialog title: "Cannot Delete Status"
-
Dialog message: "Cannot delete status. One or more projects, events, or automation rules are using this status."
-
Action guidance: "To delete this status, first reassign all projects/events to a different status and update any automation rules."
-
Dialog button: "Close"
-
When the user clicks "Close", the dialog closes and no changes are made to the status.
-
The user must resolve all dependencies before the status can be deleted.
Status Name Validation
-
Status names have no minimum character requirement but are limited to a maximum of 50 characters.
-
The system allows typing beyond 50 characters but displays an inline validation error beneath the field when the limit is exceeded.
-
The Save button remains disabled until all staged changes pass validation (valid character count, unique names within stage).
-
Empty status names cannot be saved; at least one character is required.
-
Status names must be unique within the same stage to prevent confusion and ensure proper event assignment.
Automation Engine and Rules
-
Automation is enabled by default for all new projects, with the system applying predefined rules for common triggers such as proposal sending, contract signing, and payment receipt.
-
Automation rules operate on a trigger-action basis where specific events like email sends or payment confirmations automatically transition events to corresponding pipeline statuses.
-
Automation rules cannot target the Archived status; archiving must always be performed manually.
-
The automation engine respects a precedence hierarchy where automation rules override manual changes unless automation is explicitly disabled for a specific project or globally.
-
Pipeline automation rules can be configured with conditions such as time delays, where status changes occur X days after a trigger event rather than immediately.
Manual Control and Override Options
-
Users can disable automation at multiple levels including globally for all projects, per project, or per specific automation rule, providing flexible control over automated behaviors.
-
When automation is disabled, all status transitions require manual intervention, with the system maintaining an audit log of who made changes and when they occurred.
-
Manual status changes made while automation is active trigger a warning dialog informing users that their change may be overridden by automation rules unless disabled.
-
The system maintains conflict resolution logic where multiple automation rules might apply to the same event, using rule priority and timestamp to determine which rule executes.
Project and Event Synchronization
-
The pipeline automatically synchronizes project-level and event-level status changes, where updating a project status cascades to all associated events unless individual events are locked.
-
The Post-Production completion logic ties event completion status to deliverable completion, automatically reverting events to Post-Production status if deliverables are marked incomplete.
-
For events without defined deliverables, the system requires manual completion marking, acknowledging that not all events follow the standard deliverable-based workflow.
-
The module handles edge cases where payments are delayed beyond delivery by allowing manual override of completion status while maintaining payment pending indicators.
Bulk Operations and Performance
-
Bulk status updates are supported through multi-select functionality, allowing users to select multiple events and apply the same status change to all selected items.
-
The system tracks status duration metrics, recording how long events spend in each status for reporting and workflow optimization purposes.
-
Status transition validations can be configured to require certain fields to be completed before allowing movement to specific statuses, enforcing data quality.
-
The pipeline supports conditional visibility where certain statuses only appear for events meeting specific criteria, reducing clutter for irrelevant options.
Integration and Audit Trail
-
Pipeline settings changes require appropriate permissions, with the system preventing unauthorized users from modifying critical workflow configurations.
-
The module integrates with the activity log to record all pipeline changes, creating an audit trail that shows status progressions and automation triggers.
-
The system maintains audit logging for all pipeline-related actions, capturing user identity, timestamp, and the nature of changes for compliance and analysis purposes.
5. Field Details & Validations
Field Name
Field Type
Validation Rules
Stage Name
Text
Max 50 characters, Cannot be empty, System stages locked
Status Name (Default)
Text
Required, Maximum 50 characters, Unique within stage, Cannot be deleted
Status Name (Custom)
Text
Required, Maximum 50 characters, Unique within stage, Can be deleted
Event Stage Dropdown
Dropdown
Lists all pipeline statuses + Archived, Required selection
Status Order
Number
Auto-assigned, Can be reordered within stage
Automation Toggle
Boolean
Default: Enabled for new projects
Trigger Event
Dropdown
Required for automation rule, Predefined list
Target Status
Dropdown
Required for automation rule, Must exist, Cannot target Archived
Delay Days
Number
Optional, 0-365, For time-based triggers
Rule Priority
Number
1-100, Higher executes first, Default: 50
Completion Criteria
Dropdown
Options: Manual, Deliverables, Payment
Rule Active
Boolean
Default: True, Can be toggled per rule
Apply To
Multi-select
Projects, Events, or Event Types
Status Name Field Specifications
Property
Value
Field Type
Text Input
Minimum Characters
None (at least 1 character required)
Maximum Characters
50
Required
Yes
Allow Typing Beyond Max
Yes (shows inline error)
Error Display Location
Beneath the field (inline)
Duplicate Check
Real-time within same stage
Save Button Behavior
Disabled until all validations pass
Hover Interaction Specifications
Status Type
Pencil Icon (Edit)
Trash Icon (Delete)
Default Locked Status
Visible on hover
Not displayed
Custom Status
Visible on hover
Visible on hover
Project Management Widget - Archive/Unarchive Button
Project State
Button Displayed
Action
Active Project
ARCHIVE
Opens archive confirmation dialog
Archived Project
UNARCHIVE
Restores project and all events
Status Deletion Confirmation Dialog
Property
Value
Dialog Title
Delete Status
Dialog Message
Are you sure you want to delete this status?
Confirm Button
Delete
Cancel Button
Cancel
Trigger Condition
User clicks trash icon on custom status with zero dependencies
Post-Confirm Action
Deletion staged locally, applied on Save
Post-Cancel Action
Dialog closes, no changes made
Status Deletion Blocked Dialog (Has Dependencies)
Property
Value
Dialog Title
Cannot Delete Status
Dialog Message
Cannot delete status. One or more projects, events, or automation rules are using this status.
Action Guidance
To delete this status, first reassign all projects/events to a different status and update any automation rules.
Button
Close
Dialog Type
Modal popup
Trigger Condition
User clicks trash icon on custom status with one or more dependencies
Post-Close Action
Dialog closes, no changes made, status remains
6. Success Message Handling
Pipeline Settings Actions (Batch Save - Single Toast)
Operation
Success Message
Trigger Condition
Post-Success Action
Pipeline Settings Saved
"Pipeline settings saved successfully"
User clicks Save after making one or more changes (rename, add, delete, reorder statuses, or automation changes)
Apply all changes, update all displays, refresh pipeline view
Event Status Changes (Immediate - Individual Toasts)
Operation
Success Message
Trigger Condition
Post-Success Action
Event Status Updated
"Event status updated to [status]"
User selects new status from Event Stage dropdown
Refresh event display
Bulk Event Update
"[X] events updated to [status]"
User multi-selects events and changes status
Refresh affected events
Archive Actions (After Confirmation - Individual Toasts)
Operation
Success Message
Trigger Condition
Post-Success Action
Event Archived
"Event moved to archived successfully"
User confirms archive via Event Stage dropdown
Remove from active pipeline, add to Archived page
Project Archived
"Project archived successfully"
User confirms archive via ARCHIVE button
Archive project and all events, move to Archived page
Unarchive Actions (Immediate - Individual Toasts)
Operation
Success Message
Trigger Condition
Post-Success Action
Event Restored
"Event restored to [status] successfully"
User selects active status from dropdown for archived event
Remove from Archived page, add to active pipeline
Project Restored
"Project restored successfully"
User clicks UNARCHIVE button
Restore project and all events, remove from Archived page
7. Error Message Handling
Error Scenario
Error Message
Trigger Condition
Display Location
Status Name Too Long
"Status name cannot exceed 50 characters"
User types more than 50 characters
Beneath the field (inline)
Status Name Empty
"Status name is required"
User attempts to save with empty field
Beneath the field (inline)
Delete Status with Dependencies
Message: "Cannot delete status. One or more projects, events, or automation rules are using this status." Guidance: "To delete this status, first reassign all projects/events to a different status and update any automation rules."
Custom status has active projects, events, or automation rules (immediate check on trash click)
Modal popup (title: "Cannot Delete Status", button: "Close")
Delete Default Locked Status
Not applicable - trash icon not shown
User cannot attempt to delete default status
N/A
Duplicate Status Name
"A status with this name already exists in this stage"
Duplicate name entered within same stage
Beneath the field (inline)
Automation Target Archived
"Automation rules cannot target the Archived status"
User tries to set Archived as automation target
Inline error in automation settings
Automation Conflict
"Multiple automation rules conflict. Please review rule priorities."
Conflicting rules detected
Toast notification
Required Fields Missing
"Cannot move to [status]. Required fields: [list]"
Validation failure on status transition
Modal popup
Permission Denied
"You don't have permission to modify pipeline settings"
Insufficient permissions
Toast notification
Save Failed
"Unable to save pipeline settings. Please try again."
Database error during batch save
Toast notification
Validation Failed on Save
"Please fix the errors before saving"
One or more staged changes have validation errors
Toast notification
Archive Failed
"Unable to archive. Please try again."
Database error during archive
Toast notification
Unarchive Failed
"Unable to restore. Please try again."
Database error during unarchive
Toast notification
8. Edge Cases
Edge Case
System Behavior
Fallback Action
User Notification
Archive event with future date
Show Pre-Event confirmation with payment/contractor impacts
User must confirm
Pre-Event confirmation dialog
Archive event with past date
Show Post-Event confirmation with different impacts
User must confirm
Post-Event confirmation dialog
Archive project with mixed event dates
Apply appropriate impacts per event (pre/post)
Process each event individually
Project archive confirmation
Archive project with multiple events
All events archived automatically
N/A
"Project archived successfully"
Unarchive project with archived events
All events restored to last active status
N/A
"Project restored successfully"
Cancel archive confirmation
No changes made, dialog closes
Return to previous state
None
User selects active status for archived event
Event is unarchived/restored
N/A
"Event restored to [status] successfully"
Archive button for archived project
UNARCHIVE button shown instead
N/A
N/A
User makes multiple changes and clicks Save
All changes applied as single transaction
N/A
Single toast: "Pipeline settings saved successfully"
User tries to delete status with dependencies before saving other changes
Immediate block popup, deletion not staged
User must resolve dependencies
Block popup with dependency details
User makes changes but navigates away without saving
Prompt user to save or discard changes
Discard if user confirms
"You have unsaved changes. Save before leaving?"
Save fails due to network error
No changes applied, all staged changes preserved
User can retry save
"Unable to save pipeline settings. Please try again."
Partial validation failure on save
No changes applied, highlight invalid fields
User must fix errors
"Please fix the errors before saving"
Rename default locked status to existing name
Prevent staging, show duplicate error immediately
Keep original name
"A status with this name already exists in this stage"
Status name with exactly 50 characters
Allow save, validation passes
N/A
None (valid input)
Status name with 51+ characters
Allow typing, prevent save, show error
Keep text in field, highlight error
"Status name cannot exceed 50 characters"
User clears status name completely
Prevent save, show required error
Keep field in edit mode
"Status name is required"
Delete custom status with 0 dependencies
Show confirmation dialog, stage deletion on confirm
N/A
Dialog: "Are you sure you want to delete this status?" then on Save: "Pipeline settings saved successfully"
Cancel status deletion confirmation
Dialog closes, no changes made
Return to previous state
None
Delete custom status with 1+ dependencies
Show blocked modal with message and guidance, Close button
User must resolve dependencies
Modal: Title "Cannot Delete Status", Message "Cannot delete status. One or more projects, events, or automation rules are using this status.", Guidance included, Close button
Attempt to set Archived as automation target
Prevent save, show error
Keep current target
"Automation rules cannot target the Archived status"
Hover over default locked status
Show pencil icon only
N/A
N/A
Hover over custom status
Show both pencil and trash icons
N/A
N/A
Circular automation rules
Detect and prevent infinite loops
Disable conflicting rule
"Circular automation detected and prevented"
Status with 100+ events renamed
Allow rename, batch update on save
Batch update in background
Single toast: "Pipeline settings saved successfully"
Simultaneous status updates by multiple users
Last write wins with audit trail
Log all attempts
"Event was updated by another user"
Network loss during archive
Revert to previous state
Show connection error
"Unable to archive. Please try again."
Max custom statuses (50) per stage
Prevent additional creation
Display limit message
"Maximum number of custom statuses reached for this stage"
9. Acceptance Criteria
Pipeline Structure
-
The three main pipeline stages (Lead Stage, Booked Stage, Post-Event Stage) must be permanently visible and cannot be deleted.
-
Archived items must be stored in a separate Archived page, not displayed in the active pipeline view.
-
Status changes via Event Stage dropdown must be applied immediately.
Event Stage Dropdown
-
The Event Stage dropdown must display all pipeline statuses from Lead, Booked, and Post-Event stages, plus "Archived" as an option.
-
Selecting a status from the dropdown must update the event immediately with appropriate success message.
-
Selecting "Archived" must trigger a confirmation dialog before archiving.
Archive Functionality
-
Archiving an event must be done via the Event Stage dropdown by selecting "Archived".
-
Archiving a project must be done via the ARCHIVE button in the Project Management widget.
-
Drag-and-drop archiving is not supported.
-
Archive confirmation dialog must show appropriate message based on event date (pre-event vs post-event).
-
Confirmation dialog must have "Archive" and "Cancel" buttons.
-
When a project is archived, all its events must be automatically archived.
-
Archived events must display success message: "Event moved to archived successfully"
-
Archived projects must display success message: "Project archived successfully"
Unarchive Functionality
-
Unarchiving an event must be done by selecting an active status from the Event Stage dropdown.
-
Unarchiving a project must be done via the UNARCHIVE button (which replaces ARCHIVE button for archived projects).
-
When a project is unarchived, all its events must be restored to their last active status.
-
Restored events must display success message: "Event restored to [status] successfully"
-
Restored projects must display success message: "Project restored successfully"
Default Locked Status Behavior
-
Default locked statuses must display only the pencil icon on hover; trash icon must not be shown.
-
Default locked statuses must be renameable with updates applied globally upon Save.
-
Default locked statuses cannot be deleted under any circumstances.
Custom Status Behavior
-
Custom statuses must display both pencil and trash icons on hover.
-
Custom statuses can be created within the three main stages only.
-
Clicking trash icon on a custom status with zero dependencies must display a confirmation dialog with title "Delete Status" and message "Are you sure you want to delete this status?"
-
Confirmation dialog must have "Delete" and "Cancel" buttons.
-
If user confirms deletion, the deletion must be staged locally and applied when user clicks Save.
-
If user cancels deletion, the dialog must close with no changes made.
-
Deleting a custom status with one or more dependencies must immediately display a blocked deletion modal with:
- Title: "Cannot Delete Status"
- Message: "Cannot delete status. One or more projects, events, or automation rules are using this status."
- Guidance: "To delete this status, first reassign all projects/events to a different status and update any automation rules."
- Button: "Close"
Batch Save Behavior
-
All Pipeline Settings changes (rename, add, delete, reorder) must be staged locally until the user clicks Save.
-
Upon clicking Save, all staged changes must be applied as a single transaction.
-
A single toast notification "Pipeline settings saved successfully" must be displayed regardless of the number of changes made.
Automation Restrictions
-
Automation rules must not be configurable to target the Archived status.
-
Archiving must always be a manual action.
Status Name Validation
-
Status names must allow any length up to 50 characters with no minimum requirement.
-
Status names exceeding 50 characters must display an inline error beneath the field.
-
Empty status names must be prevented from saving with appropriate error messaging.
-
Duplicate status names within the same stage must display an inline error.
10. Manual Test Cases
Test cases have been created in a separate Excel file: Pipeline_Management_Complete_Test_Cases.xlsx
Additional Test Cases for Archive Functionality
Test Case ID
Scenario
Test Steps
Expected Result
TC-PM-ARC-01
Archive event via dropdown (future date)
1. Open event with future date 2. Click Event Stage dropdown 3. Select "Archived" 4. Verify confirmation dialog 5. Click "Archive"
Pre-Event confirmation shown, event archived, toast: "Event moved to archived successfully"
TC-PM-ARC-02
Archive event via dropdown (past date)
1. Open event with past date 2. Click Event Stage dropdown 3. Select "Archived" 4. Verify confirmation dialog 5. Click "Archive"
Post-Event confirmation shown, event archived, toast: "Event moved to archived successfully"
TC-PM-ARC-03
Cancel archive confirmation
1. Open event 2. Select "Archived" from dropdown 3. Click "Cancel" on confirmation
Dialog closes, event status unchanged
TC-PM-ARC-04
Archive project via button
1. Open project 2. Click ARCHIVE button 3. Verify confirmation 4. Click "Archive"
Project and all events archived, toast: "Project archived successfully"
TC-PM-ARC-05
Archive project with multiple events
1. Open project with 3 events 2. Archive project
All 3 events automatically archived
TC-PM-ARC-06
Unarchive event via dropdown
1. Go to Archived page 2. Open archived event 3. Select "New Lead" from dropdown
Event restored, toast: "Event restored to New Lead successfully"
TC-PM-ARC-07
Unarchive project via button
1. Go to Archived page 2. Open archived project 3. Click UNARCHIVE button
Project and all events restored, toast: "Project restored successfully"
TC-PM-ARC-08
Verify UNARCHIVE button for archived project
1. Go to Archived page 2. Open archived project
UNARCHIVE button displayed (not ARCHIVE)
TC-PM-ARC-09
Verify ARCHIVE button for active project
1. Open active project
ARCHIVE button displayed in widget
TC-PM-ARC-10
Event Stage dropdown shows all statuses
1. Open event 2. Click Event Stage dropdown
All pipeline statuses + "Archived" option visible
TC-PM-ARC-11
Automation cannot target Archived
1. Go to Pipeline Automation 2. Try to set Archived as target
Error: "Automation rules cannot target the Archived status"
TC-PM-ARC-12
Drag-drop archiving not supported
1. Open pipeline view 2. Try to drag event to archived
No Archived column in pipeline view, drag not possible
Pipeline Settings Test Cases
Test Case ID
Scenario
Test Steps
Expected Result
TC-PM-SET-01
Hover on default locked status
1. Navigate to Pipeline Settings 2. Hover over "New Lead" status
Only pencil icon displayed, no trash icon
TC-PM-SET-02
Hover on custom status
1. Navigate to Pipeline Settings 2. Hover over any custom status
Both pencil and trash icons displayed
TC-PM-SET-03
Edit default locked status name
1. Hover on default status 2. Click pencil icon 3. Enter new name 4. Click Save
Status renamed, single toast: "Pipeline settings saved successfully"
TC-PM-SET-04
Delete custom status - no dependencies (confirm)
1. Create new custom status 2. Click trash icon 3. Verify confirmation dialog 4. Click "Delete" 5. Click Save
Confirmation dialog shown, deletion staged, then applied on Save, single toast: "Pipeline settings saved successfully"
TC-PM-SET-05
Delete custom status - no dependencies (cancel)
1. Create new custom status 2. Click trash icon 3. Verify confirmation dialog 4. Click "Cancel"
Dialog closes, status not deleted, no changes made
TC-PM-SET-06
Delete custom status - has dependencies
1. Find custom status with assigned projects/events or automation rules 2. Click trash icon
Modal: Title "Cannot Delete Status", Message "Cannot delete status. One or more projects, events, or automation rules are using this status.", Guidance shown, Close button
TC-PM-SET-07
Multiple changes then Save
1. Rename status A 2. Add new status B 3. Delete status C (no deps, confirm) 4. Click Save
All changes applied, single toast: "Pipeline settings saved successfully"
TC-PM-SET-08
Status name max 50 characters
1. Edit any status 2. Type 51+ characters
Inline error: "Status name cannot exceed 50 characters", Save disabled
TC-PM-SET-09
Empty status name
1. Edit any status 2. Clear the name field 3. Attempt to save
Inline error: "Status name is required", Save disabled
TC-PM-SET-10
Navigate away with unsaved changes
1. Make changes in Pipeline Settings 2. Click to navigate away
Prompt: "You have unsaved changes. Save before leaving?"
11. Dependencies
Dependency Type
Component/Module
Description
Fallback Behavior
Internal Module
Events Management
Provides events for pipeline
No events to display
Internal Module
Project Management
Links pipeline to projects
Project status not synced
Internal Module
Project Management Widget
Provides Event Stage dropdown and Archive/Unarchive buttons
Cannot change status or archive
Internal Module
Archived Page
Stores and displays archived items
Archived items not accessible
Internal Module
Email System
Triggers automation on email events
Email triggers disabled
Internal Module
Payment System
Triggers automation on payments, handles payment cancellation on archive
Payment triggers disabled
Internal Module
Contract Management
Triggers on contract signing, disables links on archive
Contract triggers disabled
Internal Module
Contractor Management
Handles contractor removal and notification on archive
Contractor changes not applied
Internal Module
Client Portal
Handles portal deactivation on archive
Portal remains active
Internal Module
Post-Production Board
Links to deliverable completion
Manual completion only
Internal Module
Activity Log
Records all pipeline changes including archive actions
No audit trail
Internal Module
User Permissions
Controls access to settings
Default to view-only
System Component
Database
Stores pipeline configuration
Complete failure
System Component
Real-time Sync
Updates across user sessions
Manual refresh required
External Service
Webhook System
Triggers external automations
External automation disabled
12. References
- Figma: Figma Design Link
Document Change Log
Version
Date
Changes
1.0
Original
Base document
1.1
March 2026
Added status name validation (max 50, no minimum)
1.2
March 2026
Updated: Default locked statuses editable but not deletable; Hover shows pencil only for default, both icons for custom; Deletion blocking for projects/events/automation; No minimum character requirement
1.3
March 2026
Updated: Batch save logic for Pipeline Settings with single toast; Immediate deletion dependency check
1.4
March 2026
Updated: Archive via Event Stage dropdown and ARCHIVE button only (no drag-drop); Archive confirmation dialogs with Pre-Event and Post-Event messages; Project archive cascades to all events; Unarchive via dropdown (events) and UNARCHIVE button (projects); Archived items stored in separate Archived page
1.5
March 2026
Updated: Status deletion requires confirmation dialog for zero-dependency statuses; Dialog title "Delete Status", message "Are you sure you want to delete this status?", buttons "Delete" and "Cancel"; Deletion staged on confirm, applied on Save
1.6
March 2026
Updated: Blocked deletion dialog for statuses with dependencies; Title "Cannot Delete Status", combined message for all dependency types, action guidance included, Close button, modal popup
5. Archived Listing
FRD #5: Archived Listing
1. Module Overview
Module Name: Archived Listing
Purpose: The Archived Listing module provides a dedicated interface for viewing and managing archived projects and events, enabling users to access historical data, restore archived items when needed, and maintain a clean active workspace while preserving complete project history.
Business Goals: Maintain organized project management by separating completed or inactive projects from active work while ensuring historical data remains accessible for reference, reporting, and potential reactivation, supporting long-term client relationship management and business analytics.
2. User Roles & Permissions
Role
View Archived
Restore Projects
Permanently Delete
Export Archived Data
Search Archived
Owner
Yes
Yes
Yes
Yes
Yes
Admin
Yes
Yes
Yes
Yes
Yes
Project Manager
Yes
Yes
No
Yes
Yes
Other Roles (TBD for Phase 2)
TBD
TBD
TBD
TBD
TBD
3. User Flow
Archive Access and Display
3.1 The user navigates to the Archived section by clicking on the "Archived" tab within the Project Management module.
3.2 The system loads the Archived Listing page displaying all archived projects with their associated events and details.
3.3 The user views the archived projects list showing the archive date, original project dates, and client information.
3.4 The system displays archived projects in reverse chronological order based on the archive date by default.
Viewing Archived Project Details
3.5 The user expands an archived project by clicking the expand arrow to view all associated archived events and services.
3.6 The system reveals the nested structure showing all events that were archived with the project.
Search and Filter Operations
3.7 The user searches for specific archived projects using the search bar at the top of the archived listing.
3.8 The system performs a search across archived project names, client names, and event details in real-time.
3.9 The user applies filters to narrow down the archived listing based on archive date range, brands, or service types.
3.10 The system updates the display to show only archived projects matching the selected filter criteria.
Bulk Selection and Actions
3.11 The user selects one or more archived projects using checkboxes for bulk operations.
3.12 The system enables bulk action buttons including restore and export options for selected items.
Project Restoration Process
3.13 The user clicks the "Restore" button next to a specific archived project to reactivate it.
3.14 The system displays a confirmation dialog explaining the implications of restoring the project.
3.15 The user confirms the restore action after reviewing the restoration details.
3.16 The system moves the project and all associated events back to the active projects listing with their previous status.
Historical Information Access
3.17 The user clicks "View Details" on an archived project to see comprehensive historical information.
3.18 The system opens a read-only view of the archived project showing all historical data and activity logs.
Export and Navigation
3.19 The user exports archived project data by clicking the export button and selecting the format.
3.20 The system generates an export file containing all selected archived project information.
3.21 The user navigates through pagination controls when viewing large numbers of archived projects.
3.22 The system loads the requested page of archived projects while maintaining filter settings.## 4. Functional Logic
4. Functional Logic
Archive Repository Management
- The Archived Listing module operates as a separate repository for projects that have been completed, cancelled, or manually archived, removing them from active project views while preserving all data.
- When a project is archived, the system automatically archives all associated events and services as a single unit, maintaining the hierarchical relationship structure.
- The archival process preserves all project data including client information, contractor assignments, payment records, activity logs, and status history for future reference.
- Archived projects remain searchable and accessible but are excluded from active project counts, dashboard widgets, and operational reports unless specifically included.
Visual Presentation and Identification
- The listing displays archived projects with a visual indicator showing they are archived, using muted colors or an "Archived" badge to distinguish them from active projects.
- When displaying the archive date, the system shows both the date the project was archived and the original project creation and event dates for historical context.
- The archived listing supports the same collapsible row structure as the active projects listing, maintaining UI consistency across the module.
- The system implements a 90-day default view for archived projects, initially showing only projects archived within the last 90 days with an option to view all.
Search and Filter Functionality
- The search functionality in the Archived Listing operates independently from the active projects search, searching only within the archived items pool.
- Filtering capabilities in the archived section include archive date ranges, original project date ranges, brands, service types, and client names for comprehensive filtering.
- Performance optimization ensures that large volumes of archived projects do not impact system performance, using lazy loading and pagination.
Restoration Process and Validation
- When a user restores an archived project, the system performs validation to ensure no conflicts exist with current active projects or system constraints.
- The restoration process reactivates the project in its last known status rather than resetting to initial status, preserving the project's progression state.
- If a project's associated brand, services, or event types have been deleted since archiving, the system displays a warning during restoration about missing configurations.
- The module prevents restoration of projects with date conflicts where the event dates are now in the past and the system is configured to prevent past events.
Bulk Operations and Management
- Bulk restoration allows users to restore up to 10 archived projects simultaneously, with the system processing them sequentially and reporting any failures.
- Archived projects can be permanently deleted only by users with appropriate permissions, with a two-step confirmation process to prevent accidental deletion.
- Export functionality generates comprehensive reports of archived projects in CSV or PDF format, including all project details and associated event information.
Data Integrity and Retention
- The system maintains archived projects indefinitely unless manually deleted, with no automatic purging of archived data to preserve business history.
- When viewing archived project details, the system displays all information in read-only mode, preventing modifications to maintain data integrity.
- The activity log for archived projects remains accessible, showing the complete history including the archival action, who performed it, and when.
- The system maintains referential integrity where archived projects referenced by other modules remain accessible through those references.
Automation and Status Management
- Archived projects do not trigger any automation rules or scheduled actions, with all automations suspended upon archiving and optionally resumed upon restoration.
- The system allows archiving projects from any status without restrictions, supporting flexible project lifecycle management based on business needs.
- When an entire project is archived, the system checks if all events within the project are complete, warning users if active events are being archived.
Metrics and Reporting Integration
- The module tracks metrics on archived projects such as average project lifespan, common archival reasons, and restoration frequency for business insights.
- Integration with reporting modules allows archived projects to be included in historical reports and analytics when specifically requested.
- The module implements data retention policies where archived projects older than a configured period can be flagged for review or permanent deletion.## 5. Field Details & Validations
5. Field Details & Validations
Field Name
Field Type
Validation Rules
Archive Date
DateTime
Auto-populated, Read-only, Format: MM/DD/YYYY HH:MM AM/PM
Project Name
Text (Display)
Read-only, Inherited from original project
Client Name
Text (Display)
Read-only, Linked to client record
Original Event Date
DateTime
Read-only, Shows original event dates
Archive Reason
Dropdown
Optional, Options: Completed, Cancelled, Other
Archived By
Text (Display)
Read-only, Shows user who archived
Brand
Text (Display)
Read-only, Shows associated brand
Search Query
Text
No character limit, Searches archived items only
Archive Date Range
Date Range
Start must be before end date
Restoration Notes
Textarea
Optional, Max 500 characters, For restoration log
Export Format
Dropdown
Options: CSV, PDF, Excel
Items Per Page
Dropdown
Options: 10, 25, 50, 100, Default: 25
6. Success Message Handling
Operation
Success Message
Trigger Condition
Post-Success Action
Project Restored
"Project '[name]' successfully restored to active projects"
Restoration completed
Remove from archived list
Bulk Restoration
"[X] projects successfully restored"
Multiple projects restored
Update both listings
Export Generated
"Export file generated successfully"
Export completed
Download file
Search Completed
"Found [X] archived projects matching '[query]'"
Search executed
Display results
Filter Applied
"Showing [X] archived projects"
Filters applied
Update display
Permanent Delete
"Project permanently deleted"
Deletion confirmed twice
Remove completely
7. Error Message Handling
Error Scenario
Error Message
Trigger Condition
Required Action
Restoration Failed
"Unable to restore project. Please try again."
Database error
Retry restoration
Date Conflict
"Cannot restore project with past event dates"
Past dates in Phase 1
Cannot restore
Missing Configuration
"Project references deleted brand/services"
Deleted dependencies
Review before restore
Export Failed
"Unable to generate export. Please try again."
Export generation error
Retry export
No Archive Results
"No archived projects found"
Empty archive
No action needed
Bulk Restore Limit
"Maximum 10 projects can be restored at once"
>10 selected
Reduce selection
Permission Denied
"You don't have permission to restore projects"
Insufficient rights
Contact admin
Permanent Delete Failed
"Cannot delete project with active references"
Referential integrity
Remove references first
8. Edge Cases
Edge Case
System Behavior
Fallback Action
User Notification
10,000+ archived projects
Implement server-side pagination
Load in chunks of 100
"Large archive. Use filters to narrow results."
Restore with duplicate name
Allow duplicate names
Append (Restored) suffix
"Project restored with duplicate name"
Brand deleted post-archive
Show with "Deleted Brand" label
Warn during restoration
"Original brand no longer exists"
Corrupted archive data
Skip corrupted records
Log error for admin
"Some archived data could not be displayed"
Simultaneous restore
Process sequentially
Queue operations
"Restoration in progress by another user"
Archive during restoration
Block conflicting operation
Show error message
"Project is being restored"
Network loss during restore
Rollback partial restore
Maintain archived state
"Restoration failed. Project remains archived"
Circular event references
Detect and handle gracefully
Archive all related items
"Related events also archived"
9. Acceptance Criteria
- The Archived Listing must load within 2 seconds for up to 500 archived projects.
- All archived projects must maintain their complete data structure including events and services.
- Search functionality must return results within 500ms for archived projects.
- Restoration process must complete within 5 seconds and immediately reflect in active listings.
- The system must prevent restoration of projects that violate current business rules.
- Export functionality must generate files within 10 seconds for up to 100 projects.
- Archived projects must be completely excluded from active project operations and counts.
- The module must maintain a complete audit trail of all archive and restore operations.
- Pagination must work seamlessly with applied filters and search criteria.
- Bulk operations must process successfully for up to 10 projects simultaneously.
- The archived listing must clearly distinguish archived items from active ones visually.
- All archived data must remain read-only to preserve historical integrity.
10. Manual Test Cases
Test cases have been created in a separate Excel file: Archived_Listing_Complete_Test_Cases.xlsx
11. Dependencies
Dependency Type
Component/Module
Description
Fallback Behavior
Internal Module
Projects Management
Source of archived projects
No projects to archive
Internal Module
Events Management
Manages archived events
Events not archived
Internal Module
Activity Log
Tracks archive operations
No audit trail
Internal Module
User Permissions
Controls archive access
Default to view-only
Internal Module
Export Service
Generates export files
Export unavailable
Internal Module
Brand Management
References for archived projects
Show as deleted brand
Internal Module
Client Management
Links to client records
Client info unavailable
System Component
Database
Stores archived data
Complete failure
System Component
File Storage
Stores export files
Export download fails
External Service
Backup Service
Long-term archive storage
Local storage only
12. References
- Figma: Figma
No tickets linked — generate test cases directly from this FRD instead.